2017-01-02 1 views
-2

Ich habe eine Reihe von PDF-Dateien mit Namen wie so:Batch Umbenennen von Dateien vor bestimmten Zeichen

Malcolm Gaskill - History.pdf 
Manfred B. Steger - Globalization; A Very Short Introduction.pdf 

Ich möchte, dass sie umbenennen, bevor der erste Bindestrich los, alles zu bekommen, so dass sie wie am Ende:

History.pdf 
Globalization; A Very Short Introduction.pdf 

Wie gehe ich dabei vor? Dank

Antwort

0
@ECHO OFF 
SETLOCAL 
SET "sourcedir=U:\sourcedir" 
FOR /f "delims=" %%a IN (
'dir /b /a-d "%sourcedir%\*-*.pdf" ' 
) DO (
FOR /f "tokens=1*delims=-" %%b IN ("%%a") DO (
    FOR /f "tokens=*" %%d IN ("%%c") DO (
    ECHO(REN "%sourcedir%\%%~a" "%%~d" 
) 
) 
) 
GOTO :EOF 

Sie müssten die Einstellung von sourcedir zu ändern, um Ihre Umstände anzupassen.

Die erforderlichen REN-Befehle sind lediglich ECHO für Testzwecke. Nachdem Sie überprüft haben, dass die Befehle korrekt sind, ändern Sie ECHO(REN zu REN, um die Dateien tatsächlich umzubenennen.

Nicht besonders einfach für einen Anfänger, da die Dateinamen enthalten können;, die einen Separator wie Raum ist

zunächst eine dir /b führen alle erforderlichen Dateinamen zu erhalten, die zu %%a angewendet werden ohne Trennzeichen verwenden for /f. Verwendung tokens=* Anwendung erforderliche Dateinamen %%d

nächst tokenise - Verwendung in %%b und %%c, entfernt dann Separatoren von %%c führt.

Dann mix-and-match, um den erforderlichen Befehl umzubenennen.

+0

Ich würde 'eol' auf': 'oder' | 'setzen, die ungültige Zeichen für Dateinamen sind; Dies würde Dateinamen erlauben/beginnen mit Semikolon ';' ... – aschipfl

Verwandte Themen