コマンド出力をバッチで分割する

コマンド出力をバッチで分割する

ディレクトリとそのファイルパスのリストを表示する次のコマンドがあります:

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

出力の最後の部分、たとえば「C:\OS\system\DisplayLanguages\en」を分離して、フォルダー名だけを残す必要があります。

答え1

Windowsバッチでは、%%~fD戻り値は完全修飾パス名、つまり

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

たとえば、Windows のコマンド ラインからの場合:

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

と同じ

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

答え2

簡単なコマンドで必要な出力が得られることがわかりました:

dir /a:d /b

関連情報