新しく質問する

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

役に立った:1件
  • 質問者:ikutame
  • 投稿日時:2008/11/10 18:51
  • 困り度:すぐに回答が欲しいです

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

よろしくおねがいします。

この質問への回答は締め切られました。
このQ&Aは役に立ちましたか?(役に立った:1件)
  • 参考になった:0件
  • 回答者:redfox63
  • 回答日時:2008/11/11 00:16

指定のフォルダー内のサブフォルダーのフルパスの一覧が欲しいのなら

@for /F "delims=" %%f in ('dir C:\test\* /B /S /A:D') do @(echo %%f)

でいいように思いますけど ・・・

通報する

  • 参考になった:0件

No.1ベストアンサー20pt

  • 回答者:Tacosan
  • 回答日時:2008/11/10 22:16

「フルー名」とか「フルーフォルダ」って何だろ?
さておき「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! )
と同じことをいってるような気がする.

通報する

  
このQ&Aは役に立ちましたか?(役に立った:1件)

このページのトップへ