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