2016-04-04 153 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