2016-04-04 8 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'ではなく' for/F "delims ="%/ i "(" dir/s/b/ad "C:\ test.pdf" ') – 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 
関連する問題