我需要遞歸搜索目錄,並且當找到特定名稱的文件時,將其重命名。關鍵是我需要也可以稍後重新命名它。在Windows批處理腳本中重命名多個文件擴展名
for /r %%x in (*.aspx) do move %%x %%x.txt
上述工作向前發展,但我無法制定出語法來重新命名它之後。
我的下一個想法是,而不是增加一個擴展名,也許重命名擴展名,但我不能解決如何。
任何人有任何想法。我通過dos搜索從來不是我的好朋友。
我會很高興,如果這在哪裏vbs如果更容易。
我需要遞歸搜索目錄,並且當找到特定名稱的文件時,將其重命名。關鍵是我需要也可以稍後重新命名它。在Windows批處理腳本中重命名多個文件擴展名
for /r %%x in (*.aspx) do move %%x %%x.txt
上述工作向前發展,但我無法制定出語法來重新命名它之後。
我的下一個想法是,而不是增加一個擴展名,也許重命名擴展名,但我不能解決如何。
任何人有任何想法。我通過dos搜索從來不是我的好朋友。
我會很高興,如果這在哪裏vbs如果更容易。
看來你想以某種方式「隱藏」文件。這可以通過從文件名中去除擴展名來完成。不幸的是,這不能在for
循環中「內聯」,所以你需要這樣的東西。
for /r %%x in (*.aspx) do call :disable %%x
goto :eof
:disable
ren %1 %~n1.old
goto :eof
子例程是必需的,因爲你不能在for
循環中寫%〜NX。假設for
環發現了一個文件index.aspx
然後在子程序重命名將擴大到:
您可以通過「老」和「新」擴展爲參數
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
可能重複Changing all files' extensions in a folder with one command on Windows空格的目錄。
但它會是這樣的
ren *.X *.Y
其中「x」是原來的延伸和「Y」是您要更改擴展名。
注:這些是一個批處理文件內使用命令行,並直接從命令提示執行它們時再使用%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"
第二個命令返回「%% x此時意外。」 –
@MichaelFreidgeim你錯了。你把哪個批處理文件放入? http://i.imgur.com/eA51k2g.png這就是你在控制檯上看到的沒有回聲的情況。 – foxidrive
您的答案使用%% x,但在圖片中使用%x。單個百分比正在工作。 –
你能澄清你所說的「稍後能夠將其重命名回」是什麼意思? – aphoria
如果您正在尋找'''vbs'''解決方案,請使用Google或http://stackoverflow.com/questions/22636917/vbscript-for-moving-like-files獲取初始指針。 VBScript(或JScript)語言更富有表現力,可以更好地構建代碼。然後,您可以使用'''cscript.exe'''將vbs解決方案包含到您的批處理文件中。 – xmojmr