Sie können Schleife durch das „Stichwort“ -Liste einmal und verwenden Sie die iteriert Schlüsselwort Werte zusammen mit einigen eingeschlossenen Platzhalter als Suchzeichenketten, dh *<Keyword>*
. Sie können die Verzeichnisstruktur jedes UNC-Pfadwerts von seiner Dateiliste aus aufrufen und den Kopiervorgang nur für diejenigen ausführen, die mit der Suchzeichenfolge "Schlüsselwörter" übereinstimmen.
Im Wesentlichen aber ...
- Die erste for / f- Schleife liest jede Zeile der String-Dateiliste nacheinander, und der Wert jeder Zeile ist ein iterierter Wert, der beim ersten Argument an den Aufrufbefehl übergeben wird .
- Die zweite for / f- Schleife liest jede Zeile der UNC-Pfaddateiliste nacheinander und übergibt sie und den ersten Argumentwert, der von der ersten for / f- Schleife übergeben wird, als zwei Argumente mit ihrem Aufrufbefehl .
- Die letzte for / r- Schleife durchsucht den iterierten UNC-Pfad rekursiv mit dem iterierten String-Wert als separate Argumente, die übergeben wurden, und kopiert dann alle übereinstimmenden Dateien.
Batch-Skript
@ECHO ON SET "strList=\\server\Folder\Path\SearchStrings.txt" SET "pathList=\\server\Folder\Path\UNCPaths.txt" SET "targetPath=\\server\target\folder\path" FOR /F "USEBACKQ TOKENS=*" %%S IN ("%strList%") DO CALL :Paths "%%~S" PAUSE EXIT :Paths FOR /F "USEBACKQ TOKENS=*" %%P IN ("%pathList%") DO CALL :FileExist "%~1" "%%~P" GOTO :EOF :FileExist FOR /R "%~2" %%C IN (*%~1*) DO XCOPY /F /Y "%%~C" "%targetPath%\" GOTO :EOF
Weitere Ressourcen
-
Der CALL-Befehl übergibt die Steuerung nach der angegebenen Bezeichnung zusammen mit den angegebenen Parametern an die Anweisung. Um das Unterprogramm zu verlassen,
GOTO:eof
wird die Steuerung an das Ende des aktuellen Unterprogramms übergeben. -
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters] Walks the directory tree rooted at [drive:]path, executing the FOR statement in each directory of the tree. If no directory specification is specified after /R then the current directory is assumed. If set is just a single period (.) character then it will just enumerate the directory tree.