Ich versuche herauszufinden, wie man ein Skript schreibt, das Dateien wie diese akzeptiert:
img123
img123back
img124
img125
img125back
img126
img127
Ich muss alle Dateien, die dieselbe Nummer haben wie die Dateien mit dem Wort „back“, in einen separaten Ordner verschieben. Beispiel für die Ergebnisse:
img123
img123back
img125
img125back
Antwort1
Sie können einfür /fum die Ausgabe desdirBefehl für das Quellverzeichnis. Sie können einige bedingteWennLogik- und For-Schleifenvariablensubstitutionen, um zu bestätigen, dass die Dateien mit der einzelnen Zeichenfolge „back“ vorhanden sind. Wenn dies der Fall ist, kopieren Sie diese Datei und die Datei mit dem gleichen Namen abzüglich der Zeichenfolge entsprechend.
@ECHO ON
SET "srcPath=C:\Source\Path"
SET "destPath=C:\Copy\Path"
SET "keyword=back"
FOR /F "TOKENS=*" %%A IN ('DIR /B /A-D "%srcPath%\*"') DO (
IF EXIST "%%~DPA%%~NA%keyword%%%~XA" XCOPY /Y /F "%%~DPA%%~NA%keyword%%%~XA" "%destPath%\" & XCOPY /Y /F "%%~FNXA" "%destPath%\"
)
PAUSE
EXIT
Weitere Ressourcen
- Für /F
- Dir
Batch-Ersetzungen (FOR /?)
Darüber hinaus wurde die Ersetzung von FOR-Variablenreferenzen verbessert. Sie können jetzt die folgende optionale Syntax verwenden:
%~I - expands %I removing any surrounding quotes (") %~fI - expands %I to a fully qualified path name %~dI - expands %I to a drive letter only %~pI - expands %I to a path only %~nI - expands %I to a file name only %~xI - expands %I to a file extension only
- Umleitung