[英]renaming multiple files extensions in a Windows batch script
我需要遞歸搜索目錄,找到特定名稱的文件后,將其重命名。 關鍵是我還需要稍后再將其重命名。
for /r %%x in (*.aspx) do move %%x %%x.txt
上面的工作可以繼續進行,但是我無法算出語法來重命名。
我的下一個想法是,而不是添加擴展名,或者重命名該擴展名,但是我不知道該怎么做。
任何人都有任何想法。 Dos搜索到的我從來都不是我的好朋友。
如果這更容易,我很高興。
注意:這些是在批處理文件中使用的命令行,當直接從命令提示符執行它們時,請使用%x
而不是%%x
這將重命名* .apsx以將.txt
添加到末尾。
for /r %%x in (*.aspx) do move "%%x" "%%x.txt"
編輯:下面有一個更改來處理被遺漏的遞歸重命名。
這將重命名* .apsx以從末尾刪除.txt
。
for /r %%x in (*.aspx.txt) do move "%%x" "%%~dpx%%~nx"
看來您想以某種方式“隱藏”文件。 這可以通過從文件名中刪除擴展名來完成。 不幸的是,這不能在for
循環中“內聯”完成,因此您需要類似這樣的東西。
for /r %%x in (*.aspx) do call :disable %%x
goto :eof
:disable
ren %1 %~n1.old
goto :eof
該子例程是必需的,因為您無法在for
循環內寫入%〜nX。 假設for
循環找到文件index.aspx
則子例程中的重命名將擴展為:
ren c:\some\dir\where\the\files\are\stored\index.aspx index.old
您可以將“舊”和“新”擴展名作為參數傳遞
for /r %%x in (*.%1) do call :disable %%x %2
goto :eof
:disable
ren %1 %~n1.%2
goto :eof
假設將以上內容存儲在名為“ my_rename.cmd”的批處理文件中,則可以運行
my_rename aspx old
“隱藏”文件。
要再次“啟用”它們,可以運行:
my_rename old aspx
如果文件存儲在包含空格的目錄中,則需要將ren %1 %~n1.%2
更改為ren "%1" %~n1.%2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.