[打屁] 批次把檔案放到資料夾的最上層

看板EZsoft (小軟體)作者 (笠原弘子 命!)時間3周前 (2025/11/28 20:31), 編輯推噓1(1030)
留言31則, 4人參與, 2周前最新討論串1/3 (看更多)
呃....簡單的說就是壓縮檔案的時候多壓了一層,解開後要跑兩層才會找到檔案 用這個批次檔可以一次解決一堆目錄 功能:把指定目錄裡面的檔案不管幾層都放到最上層 如R:\folder1\folder2\*.txt 把R:\folder1\拿去處理後 *.txt 會移到R:\folder1\下面 把以下內容用utf-8存成批次檔(如move.bat), 要用的時候把一個或多個資料夾拖到批次檔上面就可以了 chcp 65001 echo off for %%d in (%*) do if exist "%%~d"\ ( @echo 產生檔案清單 %%d echo ### Move files to %%~d\ > templist.txt dir "%%~d" /b /a:d > templist0.txt for /f "delims=" %%f in (templist0.txt) do ( dir "%%~d"\"%%f" /b /s /a:-d >> templist.txt ) @echo 依照清單搬移檔案 for /f "skip=1 delims=" %%i in (templist.txt) do ( move "%%i" "%%~d"\ ) @echo 備份檔案清單 %%~nd-backup.txt copy templist.txt "%%~nd-backup.txt" ) pause 檔案撞名就無法移動,檔案移動無法復原,風險自負QQ 會產生很多暫存檔案 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.239.32.18 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/EZsoft/M.1764333096.A.6C9.html

11/29 23:44, 3周前 , 1F
不如把第一層改名,在把第二層移動到上層.
11/29 23:44, 1F

11/29 23:44, 3周前 , 2F
速度快得很,不會真搬資料.
11/29 23:44, 2F

11/29 23:45, 3周前 , 3F
ren folder1 folder_tmp
11/29 23:45, 3F

11/29 23:46, 3周前 , 4F
move folder_tmp\folder2 folder1
11/29 23:46, 4F

11/29 23:46, 3周前 , 5F
rd folder_tmp
11/29 23:46, 5F

11/30 03:03, 2周前 , 6F
直接去掉多的一層
11/30 03:03, 6F

11/30 07:17, 2周前 , 7F
如果有兩個子資料夾呢?
11/30 07:17, 7F

11/30 17:50, 2周前 , 8F
把目標移去臨時目錄,再把剩下空目錄刪除,之後移回來
11/30 17:50, 8F

11/30 17:52, 2周前 , 9F
同分割區內移動只會修改索引不會真的搬移
11/30 17:52, 9F

11/30 17:52, 2周前 , 10F
但移動項目一多還是須要一段等待時間
11/30 17:52, 10F

11/30 17:54, 2周前 , 11F
如果有多層重複目錄,你可能要改用powershell比較好做
11/30 17:54, 11F

11/30 17:55, 2周前 , 12F
一層層檢查內容是不是單一資料夾
11/30 17:55, 12F

11/30 18:01, 2周前 , 13F
cmd要很難做一些比較複雜的操作
11/30 18:01, 13F

11/30 18:13, 2周前 , 14F
但改用PS要注意很多不直覺的行為,例如Move-Item指定目的
11/30 18:13, 14F

11/30 18:13, 2周前 , 15F
地,若是現有檔案則提示衝突;現有目錄則放入其中;不存
11/30 18:13, 15F

11/30 18:13, 2周前 , 16F
在則是將來源重新命名為目標名稱
11/30 18:13, 16F

11/30 21:37, 2周前 , 17F
2個目錄一樣啊,樓主只想去掉多的一層(root)
11/30 21:37, 17F

11/30 21:38, 2周前 , 18F
同磁碟,把上面那隻程式改成loop 壓縮根目錄做一遍就行
11/30 21:38, 18F

11/30 21:42, 2周前 , 19F
for /d %i in (*) do (
11/30 21:42, 19F

11/30 21:42, 2周前 , 20F
robocopy "%i" . /S /MOVE
11/30 21:42, 20F

11/30 21:42, 2周前 , 21F
rd "%i"
11/30 21:42, 21F

11/30 21:43, 2周前 , 22F
)
11/30 21:43, 22F

11/30 21:44, 2周前 , 23F
透過 robocopy 參數改變同檔名規則.
11/30 21:44, 23F

11/30 21:44, 2周前 , 24F
就算不用 robocopy, 用原本基本指令也是做的到
11/30 21:44, 24F

12/01 02:21, 2周前 , 25F
因為樓主不管幾層都放到最上層,我就認為是不定層數
12/01 02:21, 25F

12/01 02:26, 2周前 , 26F
聽起來是每個壓縮檔可能多一到二不定冗餘層數
12/01 02:26, 26F

12/01 02:30, 2周前 , 27F
感覺很像解壓又壓縮沒操作好堆疊出來的
12/01 02:30, 27F

12/01 02:44, 2周前 , 28F
樓主沒說來源是樹狀目錄還是單層多檔案,如果是後者根本
12/01 02:44, 28F

12/01 02:44, 2周前 , 29F
不需要管路徑修剪範圍,直接把檔案都往第一層子目錄丟就
12/01 02:44, 29F

12/01 02:44, 2周前 , 30F
12/01 02:44, 30F

12/02 16:20, 2周前 , 31F
你這功能其實和很老的小程式suction.exe很像哦~
12/02 16:20, 31F
文章代碼(AID): #1fAPOeR9 (EZsoft)
文章代碼(AID): #1fAPOeR9 (EZsoft)