Es gibt ein paar Möglichkeiten, dies von der Kommandozeile aus zu tun, und ich stelle zwei zur Verfügung, an die ich weiter unten denken kann, damit Sie nachschlagen und testen können, wann Sie eine Chance haben. Ich werde zusätzliche Ressourcen für weitere Studien hinzufügen.
Beispiel eins
for %a in ("C:\x-folders\y-folder\z-folder\song.mp3") do set var=%~dpa
Dann %var%
wird die gesetzte Variable also nur Referenz %var%
für den anwendbaren Wert sein.
Beispiel zwei
Wenn Sie einen Ordner mit vielen .mp3
Dateien durchlaufen müssen, können Sie diese Syntax verwenden
for /f "tokens=*" %a in ('dir /b "C:\SomeFolder\*.mp3"') do set var=%~fa\
Dann %var%
wird die gesetzte Variable also nur Referenz %var%
für den anwendbaren Wert sein. Sie können auf diese Weise referenzieren !var!
, wenn Sie EnableDelayedExpansion benötigen, je nachdem, was genau Sie mit der Schleife erreichen müssen, wenn Sie auf viele Dateien und den darin enthaltenen Ordnerpfad verweisen möchten . Schließlich können Sie auch dir /s /b
das Verzeichnis rekursiv durchlaufen.
Weitere Ressourcen
- Dir
-
Variablensubstitutionen (FOR /?)
Darüber hinaus wurde die Ersetzung von FOR-Variablenreferenzen verbessert. Sie können jetzt die folgende optionale Syntax verwenden:
%~fI - expands %I to a fully qualified path name %~dI - expands %I to a drive letter only %~pI - expands %I to a path only
-
Bei einer verzögerten Erweiterung werden Variablen in einer Batchdatei nicht zur Analysezeit, sondern zur Ausführungszeit erweitert. Diese Option wird mit dem Befehl SETLOCAL EnableDelayedExpansion aktiviert.
Wenn die verzögerte Erweiterung aktiviert ist, können Variablen sofort mit! Variable_name gelesen werden! Sie können auch noch% variable_name% lesen und verwenden, der den Anfangswert (erweitert am Anfang der Zeile) anzeigt.