作者tonyhsie (一筆揮毫天下定)
看板EZsoft
標題Re: [打屁] 批次把檔案放到資料夾的最上層
時間Sun Dec 7 19:41:21 2025
※ 引述《hirokofan (笠原弘子 命!)》之銘言:
: 呃....簡單的說就是壓縮檔案的時候多壓了一層,解開後要跑兩層才會找到檔案
: 用這個批次檔可以一次解決一堆目錄
: 功能:把指定目錄裡面的檔案不管幾層都放到最上層
: 如R:\folder1\folder2\*.txt
: 把R:\folder1\拿去處理後 *.txt 會移到R:\folder1\下面
: 檔案撞名就無法移動,檔案移動無法復原,風險自負QQ
: 會產生很多暫存檔案
突然想到
七年前用 C# 也寫過一個同樣功能的小程式:
MoveFilesUp
(程式更新了四年,使用了七年多,應該沒什麼問題...)
把所有子目錄的檔案,不管幾層,通通搬到第一層目錄下
如
R:\folder1\folder2\...\folderX\file1~Y,不管哪一層的所有檔案
通通搬到
R:\folder1 下
移動檔案後的
空目錄會自動刪除,若有
檔案無法移動,則留給使用者
自己處理
若第一層目錄下已有
同名檔案的話,會
自動比對檔案是否完全相同
(兩個檔案相同的話,
只留一份;不同的話,
不移動第二個檔案)
若
路徑名稱過長的話,先把最後一層目錄整個搬到根目錄,然後再把檔案搬到第一層目錄
如:前例的
R:\folder1\...\folderX 先搬到
R:\0,再從
R:\0 搬到
R:\folder1
(搬移目錄時,會自動避開根目錄下的同名目錄)
另一個功能是,搬移檔案時
把目錄名稱保留在檔名內,(參數
-k 或
/k)
如
R:\folder1\folder2\...\folderX\file1 ~ fileY 變成
R:\folder1\folder2$...$folderX$file1 ~ fileY (反斜線變成$字)
原始碼:
https://pastebin.com/E7mKrN0t
執行檔:
https://mega.nz/file/6EF1gTBA#Bc-VXyubmRvqzEMbgC74-6-WwrcpiNuQJqCMQ66zgKg
使用方式:把你想處理的一個(或多個)目錄拖曳到
MoveFilesUp.exe 上
或是在命令列下指令:
MoveFilesUp <dir1> <dir2> ...
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.226.11.177 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/EZsoft/M.1765107690.A.225.html
1F:→ cancelpc: 這用不著特別寫程式吧 12/07 20:30
2F:→ cancelpc: 原樓主提到有時壓縮某目錄時下檔案時, 12/07 20:31
3F:→ cancelpc: 會連同整理用的目錄也進去,導致多一層。 12/07 20:31
4F:→ cancelpc: 應該不是要把目錄下的檔案都放在同一層吧 12/07 20:32
5F:→ cancelpc: 類似建了「報告2025」,把相關檔案都放進去 12/07 20:33
6F:→ cancelpc: 壓縮時,有人希望包含「報告2025」,但有些人不希望有這 12/07 20:34
7F:→ cancelpc: 目錄,而是所有相關的檔案(含子目錄) 12/07 20:35
8F:→ tonyhsie: 我一開始理解跟你一樣,但後來仔細看內文,才發現他的 12/08 07:22
9F:→ tonyhsie: 敘述前後不一樣 12/08 07:22
10F:→ tonyhsie: 原文前三行跟第四行,是兩回事 12/08 07:23