Dividi l'output del comando in batch


0

Ho questo comando che fornisce elenchi di directory e il loro percorso file:

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

Devo separare l'ultima parte dell'output, ad es. "C: \ OS \ system \ DisplayLanguages ​​\ en", quindi avrei solo i nomi delle cartelle.


Lo strumento migliore per questo è una delle porte di Windows seddell'utilità Unix (cercare sed.exeo ottenere i servizi MS per Unix ): basta reindirizzare l'output sedcon un comando di modifica appropriato e ogni riga verrà modificata man mano che viene generata. Aiuta a conoscere le espressioni regolari.
AFH,

Risposte:


1

Nel batch di Windows, viene %%~fDrestituito il nome percorso completo , quindi è possibile utilizzare

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

Ad esempio nel mio Windows dalla riga di comando:

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

Lo stesso di

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

0

Ho appena capito che puoi ottenere l'output desiderato con un semplice comando:

dir /a:d /b
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.