Dividir la salida del comando en lotes

Dividir la salida del comando en lotes

Tengo este comando que proporciona listas de directorios y su ruta de archivo:

for /d %%D in (C:\OS\system\DisplayLanguages) do echo %%~fD

Necesito separar la última parte de la salida, por ejemplo. "C:\OS\system\DisplayLanguages\en", por lo que solo tendría los nombres de las carpetas.

Respuesta1

En el lote de Windows, las %%~fDdevolucionesNombre de ruta completo, para que puedas usar

for /d %%D in (C:\OS\system\DisplayLanguages\*) do @echo %%~nxD

Por ejemplo, en mi Windows desde la línea de comando:

FOR /D %G in (%windir%\system32\*) DO @Echo %~nxG

Lo mismo que

FOR /F "tokens=*" %G in ('dir /B /AD %windir%\system32\*') DO @Echo %~nxG

Respuesta2

Me acabo de dar cuenta de que puedes obtener el resultado deseado con un simple comando:

dir /a:d /b

información relacionada