2013-08-26 186 views
0

我試圖用特定文件夾中的某種格式重命名文件。我會通過創建一個帶有文件名的文本文件並在循環語句中引用該文本文件來完成此操作。當我在cmd中逐行運行命令時,它工作正常,但是當我嘗試作爲批處理文件運行時,它不起作用。批處理文件保存在我要完成操作的文件夾中,因此我假設我不需要聲明目錄。任何幫助將非常感激!使用批處理文件重命名文件夾中的文件

dir > file.txt 
for /f "tokens=1,2,3,4 delims=_." %i in (file.txt) do ren "%i_%j_%k.%l" "%date:~10%%date:~4,2%%date:~7,2%_%time:~0,2%h%time:~3,2%m%time:~6,2%s_%k.%l" 

:END 

回答

1

當在CMD腳本循環的變量寫入(例如:%I)需要使它成爲能與一個額外%轉義:

for /f "tokens=1,2,3,4 delims=_." %%i in (file.txt) do ren "%%i_%%j_%%k.%%l" "%date:~10%%date:~4,2%%date:~7,2%_%time:~0,2%h%time:~3,2%m%time:~6,2%s_%%k.%%l" 

要了解更多如何爲作品類型for /?以cmd爲單位。

有趣的部分:

要使用FOR命令在批處理程序,指定%%變量而不是%變量的 。變量名稱區分大小寫,所以%i與%I的 不同。

+0

我的錯誤,忘了%。現在工作很好。謝謝!!! – AsEeD

+0

@AsEeD很高興聽到!如果這是一個好的和正確的,你可能想把它作爲答案。 – NiKiZe

+0

完成。再次感謝! – AsEeD

相關問題