Dividir a saída do comando em lote

Dividir a saída do comando em lote

Eu tenho este comando que fornece listas de diretórios e seus caminhos de arquivo:

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

Preciso separar a última parte da saída, por exemplo. "C:\OS\system\DisplayLanguages\en", então eu teria apenas os nomes das pastas.

Responder1

No lote do Windows, os %%~fDretornosNome do caminho totalmente qualificado, então você pode usar

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

Por exemplo, no meu Windows na linha de comando:

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

O mesmo que

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

Responder2

Acabei de descobrir que você pode obter a saída desejada com um simples comando:

dir /a:d /b

informação relacionada