Re: [問題] 檔名更改

看板Programming作者 (謊言接線生)時間4年前 (2019/12/26 04:31), 編輯推噓2(201)
留言3則, 3人參與, 5年前最新討論串4/7 (看更多)
※ 引述《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 -- 「去質疑親眼所見的事是最愚昧的行為。這又分為兩種--質疑自己所見是不是 真的,或是用見到的事去質疑沒見到的事。呵。」 --芙莉雅,謊言事務所實現使者 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.250.172.15 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1577305868.A.AB8.html

12/26 17:22, 4年前 , 1F
謝謝 幫忙很大
12/26 17:22, 1F

01/02 11:51, 5年前 , 2F
大大好強大
01/02 11:51, 2F

01/03 11:54, 5年前 , 3F
想學shell了
01/03 11:54, 3F
文章代碼(AID): #1U0ySCgu (Programming)
文章代碼(AID): #1U0ySCgu (Programming)