Mittlere Nummer aus mehreren Dateien entfernen und kopieren

Mittlere Nummer aus mehreren Dateien entfernen und kopieren

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 die89101112vom 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 FdieXKOPIERENBefehl, 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.


Weitere Ressourcen

verwandte Informationen