Skript zum Verschieben von Dateien, die teilweise mit dem Namen einer anderen Datei übereinstimmen

Skript zum Verschieben von Dateien, die teilweise mit dem Namen einer anderen Datei übereinstimmen

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
  • Wenn

  • 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
    
  • XKopie

  • Umleitung

verwandte Informationen