2016-04-04 3 views
0

einen Batch-Skript benötigen, die rekursiv das gesamte C sucht: Antrieb für eine bestimmte Datei mit Namen Datei und benennt die Datei dannBatch-Skript-Datei zu finden und benennen Sie es

Das ist, was ich bisher haben. Es scheint die Datei zu finden, aber sie wird nicht umbenannt.

@echo off 

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

Mögliches Duplikat [Benennen Sie alle Dateien in einem Verzeichnis mit einem Skript Windows-Batch] (http://stackoverflow.com/questions/9383032/rename-all-files-in-a-directory-with-a -windows-batch-script) – shoover

+1

'für/F" delims = "%% i in ('dir/s/b/ad" C: \ test.pdf "') tue ...' anstatt 'für/r' – JosefZ

Antwort

0

Windows Server 2003 und später (das heißt etwas nach Windows XP 32 Bit) stellen die where.exe, passt es alle Arten von Dateien. Es werden sogar Platzhalter akzeptiert. Versuchen Sie where /? für Hilfe.

@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 
Verwandte Themen