天使と悪魔選手権

MS-DOSでのバッチコマンドについての質問です。
パスを引数で指定して、そのパスのディレクトリ以下(サブディレクトリも含む)のファイル名を全て取得し、加工して表示するバッチを作りたいのですが・・。
例えばコマンド名を jcm をすると
C:\>jcm C:\temp
と入力すると(「C:\temp」は引数)、C:\temp以下(サブフォルダも含めて)にある全てのファイル名を取得し、ファイル名がA.txt,B.txtだったとすると
java A.txt
java B.txt
のように加工して表示したのです。
バッチファイルの中身はどのように記述すればよいでしょうか?

A 回答 (3件)

 バッチファイルは、コマンドラインでの使用を前提にしているコマンドを繋ぎ合わせ、簡単な制御構造を与えるものです。


 Windowsに標準添付のコマンドだけでは無理っぽいです。
 Windowsでファイル名の一覧を取得するには、cmd.exeのDIRコマンドを使用する訳ですが、そのままバッチファイルだけで加工できるような形式では出力されません。
 よって、DIRコマンドの出力をリダイレクトして、文字列に何らかの編集を加えるコマンドを用意する必要があります。
 このような用途に向いている汎用コマンドとしては、sed.exeやawk.exeが扱いやすくて良さそうです。
 Vectorを「sed」「awk」をキーワードにサーチすれば幾つも引っ掛かると思います。
 それらの応用については、webをサーチして見て下さい。

 あるいは・・・。
 WindowsにはWSH(Windows Scripting Host)がありますよね。
 WSHには、VBScriptとJAVAScriptの二つのインタプリタが標準添付されています。
 特にVBScriptは、アプリケーションソフトウエア開発環境であるVB(Visual Basic)に匹敵するような高度な処理能力を持った言語なので、これを使ってバッチ処理を行う、あるいはバッチファイル中で使用できるようなコマンドを作成してしまうと言う手もあります。

参考URL:http://www.vector.co.jp/
    • good
    • 0
この回答へのお礼

参考になりました。ありがとうございます。

お礼日時:2010/05/18 02:04

冒頭に固定文字「java」をつけるには工夫を要しますが、


ファイル名の一覧を出すだけなら、次の1行です。

dir /b %1

ただし、瞬間的に画面に表示されてすぐに消えますよ。
リダイレクトでファイルに落とすなどをしてください。
    • good
    • 0
この回答へのお礼

参考になりました。ありがとうございます。

お礼日時:2010/05/18 02:04

過去にほとんど同じ質問に回答していますので


そちら(参考URL)をご覧ください。

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=399828
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!