2016-04-04 191 views
0

需要一個批處理腳本遞歸搜索整個C:驅動器通過文件名的特定文件,然後重命名該文件批處理腳本查找文件並重新命名它

這是我到目前爲止所。它似乎找到該文件,但它不重命名它。

@echo off 

for /r "delims=" %%i in ('dir /s /b /a-d "C:\test.pdf"') do (ren "%%i" test2.pdf) 
+0

的[重命名的目錄與Windows批處理腳本中的所有文件]可能的複製(http://stackoverflow.com/questions/9383032/rename-all-files-in-a-directory-with-a -windows-batch-script) – shoover

+1

'for/F「delims =」%% i in('dir/s/b/ad「C:\ test.pdf」')do ...'而不是'for/r' – JosefZ

回答

0

的Windows Server 2003及更高版本(即Windows XP中32位之後的任何東西)提供where.exe,它匹配所有類型的文件。 它甚至會接受通配符。 嘗試where /?尋求幫助。

@echo off 
setlocal enableDelayedExpansion 
Set Location=C:\ 
Set PatternName=test.pdf 
for /f "delims=" %%F in ('Where /R %Location% /F %PatternName%') do (
    set MyFilename=%%F 
    ren !MyFilename! "test2.pdf" 
) 
pause