2015-11-16 67 views
0

嗨,我想在文件夾中的所有文件重命名爲隨機的名字,但它想要的所有文件重命名爲相同的名稱如何爲批處理文件中的文件夾中的每個文件隨機生成名稱?

ren "c:\Test\*.txt" %Random%.txt 
pause 

輸出:

C:\Users\Oliver\Desktop>ren "c:\Test\*.txt" 9466.txt 
A duplicate file name exists, or the file 
cannot be found. 
A duplicate file name exists, or the file 
cannot be found. 
A duplicate file name exists, or the file 
cannot be found. 
A duplicate file name exists, or the file 
cannot be found. 
A duplicate file name exists, or the file 
cannot be found. 
A duplicate file name exists, or the file 
cannot be found. 

C:\Users\Oliver\Desktop>pause 
Press any key to continue . . . 

知道有人How to randomly generate names for each file in folder in batch file?

回答

1

在像ren "C:\Test\*.txt" "%RANDOM%.txt",%RANDOM%這樣的命令行只擴展一次,因此它會嘗試將每個文件重命名爲相同的名稱。

要分別重命名每個文件,您需要遍歷所有文件。
爲此,需要延遲擴展 - 請參閱set /?

這裏是批處理文件的解決方案:

@echo off 
setlocal EnableDelayedExpansion 
for %%F in ("C:\Test\*.txt") do (
    ren "%%~F" "!RANDOM!.txt" 
) 
endlocal 

這裏是命令行變異:

cmd /V:ON /C for %F in ("C:\Test\*.txt") do ren "%~F" "!RANDOM!.txt" 

注意!RANDOM!也可能返回未在上述代碼視爲重複值。

相關問題