Ich habe eine ganze Weile ohne Glück gesucht, um mein Skript zum Laufen zu bringen. Ich fühle mich, als wäre ich ziemlich nah dran, brauche aber ein wenig Hilfe. Ich versuche eine FOR-Schleife zu verwenden, um "srcdir" (am Anfang meines Skripts) rekursiv zu scannen, und sobald die Schleife Dateien/Pfade (%% f) zurückgibt, kann ich einen Teil des Dateipfads durch etwas anderes ersetzen (zB; C: \ rootpath \ src für C: \ rootpath \ des).Dateipfad im Stapel aufteilen mit For-Schleife und Variablensubstitution
Ich bin in der Lage, etwas wie dies zu tun, indem Sie ein Skript wie diese verwenden:
set subdir=C:\rootpath\src
set subdir=%subdir:src=des%
echo %subdir%
jedoch, was dies schwierig macht, ist, dass der Root-Pfad meines „srcdir“ ändern kann (zB; C : \ roothpath) und alles rekursiv, nachdem sich das "srcdir" geändert hat (zB alles nach dem Ordner "src" in C: \ rootpath \ src). Die einzigen konstanten Pfade der Ordner src und der Ordner des (im selben Verzeichnis, in dem ich meine Batch-Datei ausführen).
Also, mit der gleichen Technik im vorherigen Beispiel, ich möchte eine FOR-Schleife rekursiv finden Sie den vollständigen Pfad der Dateien in "srcdir" (%% f) und ersetzen Sie den Ordner "src" mit der Ordner "des" in der Pfadzeichenfolge. Daher versuche ich "%% f" als Variable (Unterverzeichnis) zu setzen und die Ordner durch Variablensubstitution zu ersetzen.
Hier ist mein aktuelles nicht-verarbeitendes Script:
set srcdir=C:\rootpath\src
for /r "%srcdir%" %%f in (*.txt) do (
set subdir=%%f
set subdir=%subdir:src=des%
echo %subdir%
)
Jede Hilfe wäre sehr dankbar! Vielen Dank!
Sie werden [verzögerte Erweiterung] (http://ss64.com/nt/delayedexpansion.html) benötigen, sobald Sie Variablen innerhalb eines Codeblocks wie eine 'for' Schleife setzen und lesen ... – aschipfl
also ich sollte "Setlocal EnableDelayedExpansion" vor dem Start der for-Schleife verwenden? –
Ja, das ermöglicht es; Um es tatsächlich zu benutzen, müssen Sie Variablen wie '! variable!' statt '% variable%' expandieren; das gilt auch für die Substring-Substitutionssyntax ... – aschipfl