• ベストアンサー

Dosでフォルダのパスの処理

現在Dosを勉強していますが、以下のようなバッチを書いていますが、 C:\testフォルダとその下のファルダのフルー名を表示したいです。 @for /F "delims=" %%f in ('dir C:\test\* /B /S /A-D') do @( echo %%~dpf ) しかし、この書き方は、いつもフルーフォルダの名前の最後に\が入っています。 たとえば、C:\text\A\のように表示されますが、 どうやって、\を除いて、表示する文字列の最後に\をいれないようにしますか? 以上の例だと、C:\text\Aがほしいですね よろしくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「フルー名」とか「フルーフォルダ」って何だろ? さておき「DOS」といってもどれかわからんのですが, 例えば手元の Windows XP の cmd.exe では「環境変数の遅延展開」(/v:on) が有効になっている状況でコマンドラインから for /F "delims=" %f in ('dir c:\test\* /B /S /A-D') do @ (set filename=%~dpf & echo !filename:~0,-2! ) でそれっぽくなってるような気がします. 詳細は set /? あたりかな. でもこの for って, 実は for /R c:\test %f in (*) do @ (set filename=%~dpf & echo !filename:~0,-2! ) と同じことをいってるような気がする.

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

指定のフォルダー内のサブフォルダーのフルパスの一覧が欲しいのなら @for /F "delims=" %%f in ('dir C:\test\* /B /S /A:D') do @(echo %%f) でいいように思いますけど ・・・

関連するQ&A