• ベストアンサー

バッチコマンドを作りたい

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

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

  • ベストアンサー
  • craftsman
  • ベストアンサー率49% (166/336)
回答No.2

 バッチファイルは、コマンドラインでの使用を前提にしているコマンドを繋ぎ合わせ、簡単な制御構造を与えるものです。  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/
masa1214
質問者

お礼

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

その他の回答 (2)

  • Spur
  • ベストアンサー率25% (453/1783)
回答No.3

冒頭に固定文字「java」をつけるには工夫を要しますが、 ファイル名の一覧を出すだけなら、次の1行です。 dir /b %1 ただし、瞬間的に画面に表示されてすぐに消えますよ。 リダイレクトでファイルに落とすなどをしてください。

masa1214
質問者

お礼

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

  • timber
  • ベストアンサー率29% (218/739)
回答No.1

過去にほとんど同じ質問に回答していますので そちら(参考URL)をご覧ください。

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

関連するQ&A