2010-12-14 70 views
0

我無法找到任何參考文件來解釋如何遍歷作爲參數傳遞的文件夾並重命名每個文件。我見過的所有例子假設腳本運行在文件將被重命名的文件夾中,或硬編碼循環中的文件夾路徑。我怎樣才能做到這一點?這裏是什麼,我試圖做一個例子:重命名文件夾參數中的文件的批處理腳本

for /f %%a in (%1) do call :RenameFiles 

:RenameFiles 
Rename %%a "new filename" 
Goto :EOF 
+0

如果你的目標是一個文件夾重命名多個文件,可以考慮使用重命名大師http://www.joejoesoft.com/vcms/108/。 – 2010-12-14 06:14:26

回答

1

下添加前綴「renamed-」指定爲命令行參數目錄中的所有文件:

for %%F in (%~1\*) do ren "%%~F" "renamed-%%~nxF" 

編輯到無限循環的問題,最簡單的辦法是分兩個階段的工作:

  1. 準備操作的列表
  2. 執行計劃。

-

set OpList=%TEMP%\%~n0%RANDOM%.bat 
copy nul "%OpList%" 
for %%F in (%~1\*) do echo ren "%%~F" "renamed-%%~nxF" >> "%OpList%" 
call "%OpList%" 
del "%OpList%" 
+0

運行良好,除了我想通過將文件夾置於其前面來重命名文件。例如:/ 2009年秋季/ Notes.txt將成爲/ 2009年秋季/ 2009年秋季-note.txt當我使用:do ren「%%〜F」「%〜1 - %%〜nxF」時,它會陷入循環if文件夾名稱按字母順序排列在文件夾中的其他文件之前。例如:在一個名爲「Tax Forms」的文件夾中有兩個名爲「Fall 2009.pdf」和「Winter 2008.pdf」的文件,2009年秋季將更名爲「2009年秋季稅表」,然後是「Tax Forms-Tax Forms- 2009年秋季「等無限循環。這怎麼解決? – CoderJoe 2010-12-14 19:28:45

相關問題