Es gibt keinen einzelnen Stapelverarbeitungsdateibefehl, der das tut, was Sie wollen, aber Sie können eine Stapelverarbeitungsdatei verwenden, um die Aufgabe auszuführen, und zwar callvon Ihrer eigenen. Die Antwort von Ansgar Wiechers hatte die richtige Grundidee (ich sehe, er hat seine Version repariert, nachdem ich meine veröffentlicht habe).
Wie auch immer, hier ist eine Version, die eine durch Semikolons getrennte Liste von Unterordnern der ersten Ebene entweder im aktuellen Verzeichnis oder als Argument an dieses übergibt. Ich habe ein Semikolon-Trennzeichen anstelle eines Kommas gewählt, weil es niemals Teil eines gültigen Dateinamens sein könnte (und Kommas können es sein, obwohl es ungewöhnlich ist).
Wenn ein bestimmter Ordnername Leerzeichen enthält, muss er wie folgt in Anführungszeichen gesetzt werden (andernfalls ist die Angabe des Verzeichnispfads des Ordners optional):
subdirs "C:\Documents and Settings"
Beachten Sie, dass die Liste nur auf der Konsole (stdout) gedruckt wird. Wenn Sie diese also in einer Datei speichern möchten, müssen Sie > filename.extnach dem Skriptdateinamen (und einem beliebigen Ordnernamen) ein anhängen , um die Ausgabe in eine Datei Ihrer Wahl umzuleiten :
subdirs C:\Windows > dirlist.txt
== subdirs.bat ==
@echo off
setlocal EnableDelayedExpansion
pushd %1
for /D %%d in (*.*) do set n=!n!;%%d
if defined n echo %n:~1%
popd
endlocal
Wenn Sie möchten , den vollständigen Pfad zu jedem Ordnernamen erzeugen, können Sie die Änderung set n=!n!;%%dan set n=!n!;%%~fdder forRingleitung.