No hay un solo comando de archivo por lotes que haga lo que desea, pero podría usar un archivo por lotes para realizar la tarea y call
hacerlo usted mismo. La respuesta de Ansgar Wiechers tuvo la idea básica correcta (veo que arregló su versión después de que publiqué la mía).
De todos modos, aquí hay una versión que producirá una lista delimitada por punto y coma de subcarpetas de primer nivel en el directorio actual o en uno que se le pase como argumento. Elegí usar un delimitador de punto y coma en lugar de, por ejemplo, una coma, porque nunca podría ser parte de un nombre de archivo válido (y las comas pueden ser, aunque es poco común).
Si un nombre de carpeta dado tiene espacios, debe citarse así (de lo contrario, la ruta del directorio de la carpeta es opcional):
subdirs "C:\Documents and Settings"
Tenga en cuenta que solo imprime la lista en la consola (stdout), por lo que si desea guardar eso en un archivo, deberá agregar un > filename.ext
después del nombre del archivo de script (y cualquier nombre de carpeta) para redirigir la salida al archivo de su elección :
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
Si desea generar la ruta completa a cada nombre de carpeta, puede cambiar set n=!n!;%%d
a set n=!n!;%%~fd
en la for
línea de bucle.