我在一個非常複雜的目錄結構中有大量文件,並且出於不值得討論的原因,我需要重命名具有「.inp」擴展名的所有文件以使「.TXT」擴展。還有很多其他擴展名的文件,我不想被觸及,我想遞歸地至少5級。遞歸地批量重命名文件擴展名(windows批處理)
到目前爲止,我有:
for /d %%x in (*) do pushd %%x & Ren *.inp *.TXT & popd
...但是這僅下降目錄的一個級別。
任何人都可以幫忙嗎?提前致謝!
我在一個非常複雜的目錄結構中有大量文件,並且出於不值得討論的原因,我需要重命名具有「.inp」擴展名的所有文件以使「.TXT」擴展。還有很多其他擴展名的文件,我不想被觸及,我想遞歸地至少5級。遞歸地批量重命名文件擴展名(windows批處理)
到目前爲止,我有:
for /d %%x in (*) do pushd %%x & Ren *.inp *.TXT & popd
...但是這僅下降目錄的一個級別。
任何人都可以幫忙嗎?提前致謝!
for /r startdir %%i in (*.inp) do ECHO ren "%%i" "%%~ni.txt"
應該爲你工作。將startdir
替換爲您的起始目錄名稱,並且當您檢查完此作品後,請在ren
之前刪除echo
以實際進行重命名。
對於downvoters:執行批處理文件從命令excuting不同提示,每個%%x
其中x
是metavariable(循環控制變量)需要被減小到%
,所以
for /r startdir %i in (*.inp) do ECHO ren "%i" "%~ni.txt"
應該工作,如果你從提示執行此操作。請閱讀關於echo
的說明。
在Windows 7上,下面的一行命令的作品對我來說,要重命名的所有文件,遞歸,在* .js文件* .TXT:
FOR /R %x IN (*.js) DO ren "%x" *.txt
這工作,選定的答案沒有,說:「%%我沒有預料到」。感謝你! –
從接受的答案中的代碼中得到了同樣的錯誤「%%我未被預料到」。請注意,您必須cd到開始目錄 – brunettdan
@SteveChamaillard:這是因爲所選答案假定該行在批處理文件中。如果從提示符執行,則需要將每個'%%'更改爲'%' – Magoo
真棒!這就像一個黑魔法簡單而有效:) – myforums
@Magoo ...我想我愛你。感謝這個解決方案,解決了我生命中需要花費兩天的問題,非常感謝! – Neville