人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

DOSのtreeコマンドの表示結果から、パスを組み立てる方法はありませんか?
またはdir /S /B /A:D の結果からツリーを組み立てる方法はありませんか?
バッチファイルでなるべくシンプルな方法が良いです。
例)
C:.
├─hoge
│ └─abc
└─foo
└─bar


C:\hoge\abc
C:\foo\bar
※上記はすべてディレクトリです。

OSは、XPです。

●質問者: P-mako
●カテゴリ:コンピュータ インターネット
✍キーワード:ABC Bar Dir DoS hoge
○ 状態 :キャンセル
└ 回答数 : 2/2件

▽最新の回答へ

1 ● mutsuju

冗長なような気もしますけどこんなバッチファイルを書いたら動きました。

dir /ad/s > dir.txt

grep " のディレクトリ" dir.txt > temp1.txt

sed -e 's/ のディレクトリ//' -e 's/^ //' temp1.txt > result.txt

材料

grep

http://www.vector.co.jp/soft/dos/util/se008484.html

sed

http://www.vector.co.jp/soft/dos/util/se000880.html

以下ご参考

dir.txtの内容(一部略)

C:\cmds>more dir.txt

ドライブ C のボリューム ラベルは ******* です

ボリューム シリアル番号は ******** です

C:\cmds のディレクトリ

2006/12/20 17:44 <DIR> .

2006/12/20 17:44 <DIR> ..

2006/07/06 06:51 <DIR> 3pg-conv

2005/07/14 09:59 <DIR> binedit

2005/12/13 18:10 <DIR> cldx

2005/07/14 09:59 <DIR> Emigrant

temp1.txtの内容

C:\cmds>more temp1.txt

C:\cmds のディレクトリ

C:\cmds\3pg-conv のディレクトリ

C:\cmds\3pg-conv\3GP_Converter034 のディレクトリ

C:\cmds\3pg-conv\3GP_Converter034\cores のディレクトリ

result.txtの内容

C:\cmds>more result.txt

C:\cmds

C:\cmds\3pg-conv

C:\cmds\3pg-conv\3GP_Converter034

C:\cmds\3pg-conv\3GP_Converter034\cores

◎質問者からの返答

ちょっと要件とは違うような気がします。

テキストベースで構わないのでツリー表示したいんです。

それと私の環境だけで実行するとは限らないのでgrepやsedはなるべく使わない方法を探しています。(grepやsedがOS標準だといろいろ幅が広がるんですがねー)


2 ● utagawh

http://www.yahoo.co.jp

urlはダミー

コマンドプロンプトで下記を実行

バッチファイル中で用いるときは%は2つ重ねて%%とします。

for /r d:\ %i in (*.doc) do echo %i>>foo.txt

/rの次で指定したドライブ・ディレクトリ以下に存在する

()内の条件にヒットしたファイルのフルパス名がfoo.txtに

出力されます。

◎質問者からの返答

えーと、同じことは、質問文にもヒントはあるんですが、

dir /S /B *.doc > hoge.txt

で可能なんです。

※検索対象ディレクトリに移動してから実行が必要ですが。

質問が悪かったのかもしれません。

1.すでにtreeコマンドの結果がある場合に、そこから、フルパスを組み立てる方法

2.フルパスの一覧(今回お二人に回答いただいた出力結果)がある場合に、そこからツリー展開する方法

のどちらかを実現したいんです。

バッチファイルのみでは難しいのは承知の上なんですが・・・

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ