
Ich habe mehrere PDF-Dateien in einem bestimmten Format in einem bestimmten Ordner und bei diesen bestimmten Dateien muss ich die mittlere Nummer mithilfe einer Bat-Datei kürzen und sie in den Zielordner mit dem neuen Namen verschieben.
Detail
Quellverzeichnis:
C:/roger/brawn
Ziel:
D:/var/lag
Datei Format:
eAWI_12345678_89101112_01Mar2018.pdf
Erwünschtes Ergebnis
Ich muss die89101112
vom ursprünglichen Quelldateinamen und erhalten Sie ein Ergebnis voneAWI_12345678_01Mar2018.pdf
Dieses Dateinamennummernformat wird dynamisch mithilfe von Variablen in einer Anwendung generiert.
Antwort1
Sie können einFÜR /FSchleife und setze den Unterstrich in den Dateinamen als Trennzeichen. Du kannst Token verwenden, 1,2,3,*
um später Variablen zu verketten, um den Quell- und Zieldateinamen entsprechend zu erstellen und zu analysieren, für die spätere Verwendung mit demXKOPIERENBefehl, um das gewünschte Ergebnis zu erhalten.
Batch-Skript
@ECHO ON
SET Source=c:/roger/brawn
SET Destination=D:/var/lag
FOR /F "TOKENS=1,2,3,* DELIMS=_" %%F IN ('DIR /B /A-D "%source%\*.pdf"') DO ECHO F | XCOPY /Y /F "%source%\%%F_%%G_%%H_%%I" "%Destination%\%%F_%%G_%%I" && IF EXIST "%Destination%\%%F_%%G_%%I" DEL /Q /F "%source%\%%F_%%G_%%H_%%I"
EXIT
Notiz:DerECHOBefehlsleitungen an F
dieXKOPIERENBefehl, so dass er implizit F
"file" auswählt, da er explizit den neuen Zieldateinamen angibt, indem er das 3. Token in der Schleife analysiert, um den gewünschten Dateinamen zu erhalten. DerXKOPIERENAuf den Befehl folgt derbedingte Ausführung (&&)Es wird bestätigt, dass der Vorgang erfolgreich war. Anschließend wird die Existenz der neuen Zieldatei bestätigt, bevor die ursprüngliche Quelldatei gelöscht wird.