※ 引述《JokePtt (思辨成魔)》之銘言:
: https://i.imgur.com/3r69LqW.jpg
: 不好意思 又上來叨擾各位
: 我用軟體把pdf轉jpg 生成了數千個子資料夾
: (1)我想把檔案全部一次命名 圖中B部分比如是caseABC以下數千個子目錄下的檔案
: 圖中A部的hottest只是其一子目錄 如當中檔案1.jpg 2.jpg 3.jpg 檔案數不固定
: 重命名為 子目錄名 + 分隔號 _ + 檔案流水號*2-1
: 如 hottest_1.jpg hottest_3.jpg hottest_5.jpg...
: 在B部分的caseABC下所有子目錄檔案皆找各自的子目錄(A部分名)重新命名
: 該如何用cmd或powershell??
: (2)我要將F:\Data\Projects\caseABC 數千個子目錄下改好名的各檔案
: 一起移至與B同階的 子目錄1 以圖例是 F:\Data\Projects\1
: 又該怎麼下指令?!
: 當然移完後的動作 我會直接在caseABC上點內容 確認沒有檔案後移除
: 再把資料夾 1 改名為 caseABC 手動就可以完成
: 只是前兩點對於數千個生成的資料夾 及裡面總數上萬個檔案
: 有點不知所措 還請各位賢德不吝賜教 感恩
: → ddavid: 那個流水號 *2-1 我不知道用cmd解決的辦法 111.250.172.15 12/26 03:55
: → ddavid: ,若是沒這要求其他都還可以輕鬆cmd搞定 111.250.172.15 12/26 03:55
: → ddavid: 有那個要求的話,別考慮cmd,找人用python 111.250.172.15 12/26 03:58
: → ddavid: 之類的寫個小程式來做可能比較實在XD 111.250.172.15 12/26 03:58
我還是先講一下如果沒有那個流水號*2-1取代問題的話,只靠cmd完成的方法。
我cmd沒熟到那個程度,也許有人知道cmd就能搞定完整要求的方式XD
在caseABC裡面建立個批次檔(就假定是ren_and_move.bat吧),內容為:
for /d %%i in (*) do (
cd %%i
for %%j in (*) do ren %%j %%i_%%j
cd ..
mv %%i F:\Data\Projects\1
)
第一行跟上一個回答前半很像,但加入 /d 是表示找的不是檔名而是子目錄。
找到了caseABC下面的一個子目錄名取代後面四行裡面全部的%%i後,第二行進去
那個子目錄。
第三行跟上次回答幾乎一樣,只不過上次指定RSI_,這次用找到的目錄名%%i取
代,檔案名則是取代%%j,所以在目錄hottest下找到1.jpg的話就會取代為
hottest_1.jpg了。
第四行再回上一層也就是回到caseABC這一層裡面。
第五行就把已經處理完裡面檔案改名的這個目錄%%i搬動到你的新目標目錄
F:\Data\Projects\1 下面去。
第六行的右小括號不要忘記掉。
這個批次檔ren_and_move.bat建立好,就在caseABC目錄裡面執行,就會一次搞
定改名跟搬動了。至於那個*2-1要求我真的沒熟悉到可以只靠cmd做到XD
我姑且初步嘗試了用set /a來弄個一次+2的變數,但嘗試失敗了XD