• ベストアンサー

バッチ処理するには?

初心者です。 DOS窓で動くデータの変換プログラムでフォルダ内の膨大なデータ(ファイル名ばらばら)をバッチ処理でまとめて変換したいんですが、時間も無くどうしていいかわかりません。 例えばd:\export.exe d:\dat\sozaia001.dat > d:\dat\sozai001.text というふうに手入力でやってます。 これを一括処理できますでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • deadline
  • ベストアンサー率63% (1239/1943)
回答No.4

『DOS窓』というのが、Windows 2000/XPの『コマンドプロンプト』なら、"for"ループ内で変数にワイルドカードを指定して各ファイル名に展開する方法で出来ますが、Windows 9x/MEの『MS-DOSプロンプト』だと無理かも・・・。("for"コマンドに変数の展開機能があったかどうか不明なので) for %f in (d:\dat\*.dat) do d:\export.exe d:\dat\%~nf.dat > d:\dat\%~nf.text (↑"%f"はファイル名を展開するための変数。"%~nf"は展開したファイル名を拡張子を除いたファイル名に展開する修飾子付の変数) 詳しくは、"for /?"でヘルプを参照してください。

minota
質問者

お礼

この方法で行けました! ヘルプで確認後%を%%にして処理できました。 大変お世話になりました、ありがとうございました。

その他の回答 (3)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

処理対象のファイル名(この例でいうと d:\data\sozaia001.datと d:\dat\sozai001.txt)に 規則性とかありますか? ファイル名が変化したり、ファイルが増えたりしないなら dir /b とかでファイル一覧をつくり、それをもとにバッチファイルを 作って済ませてしまうとか。 sedとか使えると楽できますが…無理ですよね?

minota
質問者

お礼

解決しました。 ありがとうございました。

minota
質問者

補足

回答ありがとうございます。 >規則性とかありますか? 間違ってましたsozai001.datをsozai001.txtと拡張子だけ変えます >dir /b とかでファイル一覧をつくり、それをもとにバッチファイルを >作って済ませてしまうとか。 その方法がわかりません、sed???というレベルです。

noname#20623
noname#20623
回答No.2

メモ帳で、 d:\export.exe d:\dat\sozaia001.dat > d:\dat\sozai001.text 次の処理 次の処理 と、どんどん列記して、 ファイル名を ファイル名.bat にして、そのファイルを実行すると、連続で実行されたりしますが。これで行けませんかね?

minota
質問者

お礼

この方法はできないようです。 ありがとうございました。

  • Kurouto
  • ベストアンサー率28% (96/338)
回答No.1

おはようございます。 ワイルドカードをつかってそのフォルダ内のすべてのファイルを変換できますよ。 例:) C:\aaa>rename *.bat *.txt ここで、C:\aaa> をminotaさんでいう d:\datにかえてやればOKです。

参考URL:
http://ykr414.com/dos/dos02.html#14
minota
質問者

補足

回答ありがとうございます。 >例えばd:\export.exe d:\dat\sozai001.dat > d:\dat\sozai001.text これをd:\export.exe d:\dat\*.dat > d:\dat\sozai*.text とやってみたんですがだめでした。 export.exeがワイルドカード使えないってことでしょうか。

関連するQ&A

専門家に質問してみよう