Entfernen Sie die mittlere Nummer aus mehreren Dateien und kopieren Sie sie

363
DINE

Ich habe die mehreren PDF-Dateien in einem bestimmten Ordner in einem bestimmten Ordner. Für diese Dateien muss ich die mittlere Zahl mit der bat-Datei abschneiden und in den Zielordner mit dem neuen Namen wechseln.

Detail

  • Quellverzeichnis: C:/roger/brawn

  • Ziel: D:/var/lag

  • Datei Format: eAWI_12345678_89101112_01Mar2018.pdf

Erwünschtes Ergebnis

Ich muss den 89101112Namen der ursprünglichen Quelldatei kürzen und ein Ergebnis davon erhalteneAWI_12345678_01Mar2018.pdf

Dieses Dateinamen-Nummernformat wird dynamisch mit Variablen in einer Anwendung generiert.

2
Was ist jetzt mit dem Status? Pimp Juice IT vor 6 Jahren 0

1 Antwort auf die Frage

0
Pimp Juice IT

Sie können eine FOR / F- Schleife verwenden und den Unterstrich in den Dateinamen als Trennzeichen festlegen. Mithilfe von Token können Sie 1,2,3,*Variablen später verketten, um den Namen der Quell- und Zieldatei entsprechend zu erstellen und zu analysieren, um sie später mit dem Befehl XCOPY verwenden zu können, 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 

Hinweis: Der ECHO- Befehl leitet ein Fan den XCOPY- Befehl weiter, sodass er implizit Fnach "Datei" auswählt, da er explizit den neuen Zieldateinamen angibt, der das dritte Token in der Schleife analysiert, um den gewünschten Dateinamen zu ermitteln. Der Befehl XCOPY wird von der bedingten Ausführung (&&) gefolgt, die bestätigt, dass er erfolgreich war, und dann das Vorhandensein der neuen Zieldatei bestätigt, bevor die ursprüngliche Quelldatei gelöscht wird.


Weitere Ressourcen