Dateien werden ohne Erweiterung im Stapel sortiert

494
user2254436

Ich möchte eine Option haben, um alle Dateien im Ordner abzurufen, nur die Namen (kein Pfad und keine Erweiterung) und nach Namen sortiert in einer einfachen Batchdatei.

Ich weiß, wie ich alle Namen bekomme, aber es ist nicht sortiert:

for %%i in (*.mxf) do @echo %%~ni >> names.txt 

Und ich weiß, wie man die Namen sortiert bekommt, aber es kommt mit der Erweiterung:

dir /b /o:n >> names.txt 

Wie kann ich die beiden Befehle kombinieren? Nur die Namen und sortiert.

Vielen Dank

1

2 Antworten auf die Frage

2
Pimp Juice IT

Sie können den dirBefehl mit den anwendbaren Sortieroptionen in eine for / f- Schleife legen und die Ausgabe von dort in eine Datei umleiten, um das erwartete Ergebnis zu erhalten. Auf diese Weise können Sie die beiden wie gewünscht kombinieren.

Skriptbeispiel

for /f "tokens=*" %%i in ('dir /b /o:n "*.mxf"') do @echo %%~ni >> names.txt 

Weitere Ressourcen

2
mxttie

Sie können die Ausgabe an den Sortierbefehl weiterleiten:

(for %%i in (*.mxf) do @echo %%~ni) | sort /o names.txt

Auf meinem System waren die Dateien bereits standardmäßig sortiert, daher habe ich es getestet, indem ich die Reihenfolge mit der Sortieroption stornierte /r.