- ベストアンサー
バッチ処理するには?
初心者です。 DOS窓で動くデータの変換プログラムでフォルダ内の膨大なデータ(ファイル名ばらばら)をバッチ処理でまとめて変換したいんですが、時間も無くどうしていいかわかりません。 例えばd:\export.exe d:\dat\sozaia001.dat > d:\dat\sozai001.text というふうに手入力でやってます。 これを一括処理できますでしょうか? よろしくお願いします。
- みんなの回答 (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 /?"でヘルプを参照してください。
その他の回答 (3)
- sakusaker7
- ベストアンサー率62% (800/1280)
処理対象のファイル名(この例でいうと d:\data\sozaia001.datと d:\dat\sozai001.txt)に 規則性とかありますか? ファイル名が変化したり、ファイルが増えたりしないなら dir /b とかでファイル一覧をつくり、それをもとにバッチファイルを 作って済ませてしまうとか。 sedとか使えると楽できますが…無理ですよね?
お礼
解決しました。 ありがとうございました。
補足
回答ありがとうございます。 >規則性とかありますか? 間違ってましたsozai001.datをsozai001.txtと拡張子だけ変えます >dir /b とかでファイル一覧をつくり、それをもとにバッチファイルを >作って済ませてしまうとか。 その方法がわかりません、sed???というレベルです。
メモ帳で、 d:\export.exe d:\dat\sozaia001.dat > d:\dat\sozai001.text 次の処理 次の処理 と、どんどん列記して、 ファイル名を ファイル名.bat にして、そのファイルを実行すると、連続で実行されたりしますが。これで行けませんかね?
お礼
この方法はできないようです。 ありがとうございました。
- Kurouto
- ベストアンサー率28% (96/338)
おはようございます。 ワイルドカードをつかってそのフォルダ内のすべてのファイルを変換できますよ。 例:) C:\aaa>rename *.bat *.txt ここで、C:\aaa> をminotaさんでいう d:\datにかえてやればOKです。
補足
回答ありがとうございます。 >例えばd:\export.exe d:\dat\sozai001.dat > d:\dat\sozai001.text これをd:\export.exe d:\dat\*.dat > d:\dat\sozai*.text とやってみたんですがだめでした。 export.exeがワイルドカード使えないってことでしょうか。
お礼
この方法で行けました! ヘルプで確認後%を%%にして処理できました。 大変お世話になりました、ありがとうございました。