バッチ処理でフォートランのプログラムを効率化する方法

このQ&Aのポイント
  • フォートランでプログラミングされたプログラムをバッチ処理で効率化する方法を教えてください。
  • 大量の解析作業を行うため、バッチ処理の効率化方法を知りたいです。
  • フォルダ内の複数のファイルをリネームし、計算結果を移動する効率的な方法を教えてください。
回答を見る
  • ベストアンサー

バッチ処理のプログラム

フォートランでプログラミングされたプログラムをexe形式で受領しており、それを使って大量の解析をします。 繰り返し作業が多く、効率がよくないので、バッチ処理などで効率化する方法をご教示いただけないでしょうか? <作業の流れ> フォルダ1の中に、 インプットデータファイル60個(01-aaaA1.dat,02-abcA1.dat,03-abgA1.dat,...,60-xxx.dat) a.exe,使用するインプットデータ(a-input.dat) b.exe,使用インプットデータ(b-input.dat) があります。 なお、a.exeを実行するには、それぞれのインプットデータをその都度a-input.datに書き換える必要があります。 (1)01-aaaA1.datをa-input.datにリネーム (2)a.exeを実行すると、outフォルダが自動で作成され、その中に計算結果(a.out,b.out,c.out,d.out,e.out,f.out....10ファイル位)が格納されます。 (3)計算結果のファイル名の頭にa-input.datに変える前の名前に-を付け加え(例えば、01-aaaA1-...)を先頭に追加します。 (4)リネームした計算結果ファイルをフォルダ1の中にフォルダ2、フォルダ3、フォルダ4を作成してそのなかに移動させます。 フォルダ2 → 01-aaaA1-a.out フォルダ3 → 01-aaaA1-b.out フォルダ4 → 01-aaaA1-c.out、01-aaaA1-d.out、01-aaaA1-e.out、01-aaaA1-f.out・・・・ という具合です。 ここまでが1ケースの計算の流れになります。 次に02-abcA1.datをa-input.datにリネームして同様に繰り返します。 別処理で、このあと、b-input.datを実行しますが、b-input.datはフォルダ2内のファイル名を書く必要があるため、 フォルダ2内のファイル名を取得して、b-input.datの4行目以降に付け加える処理もお願いできると助かります。 この作業を500ケース程度するのですが、時間もなく、リネーム→実行→リネーム→移動といった作業が非効率のため、 どうがご教示願います。 OS win7

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

  • ベストアンサー
  • usami33
  • ベストアンサー率36% (808/2210)
回答No.1

dosコマンドは理解してますか? ここで紹介されている、ファイルを順次処理する方法 http://tounderlinedk.blogspot.jp/2011/05/for-f-dir-b-windowsbatcmd.html と リネーム http://www.adminweb.jp/command/file/index3.html フォルダーを作る http://www.k-tanaka.net/cmd/md.php この組み合わせで完成 ※後々の修正のため、詳細は自分で考えてみましょうね

kayakayakaya1
質問者

お礼

usami33様 ご回答ありがとうございます。 他力本願で申し訳ありません。 関係する処理リンク先まで貼っていただきありがとうございます。 dosコマンドは、多少触れたことがありますが、ずいぶん昔のことで、ほとんど理解できていません。 上記リンク先等を参考にさせていただき、作成してみようとおもいます 。

関連するQ&A

  • バッチ処理するには?

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

  • バッチファイルでサブフォルダにあるexeを実行

    お世話になります。 バッチファイルをつかって サブフォルダにあるexeファイルの実行を 試みていますが、exeファイルの指定がうまくできず実行できないので、 ご教示いただけないでしょうか。 pushd %%0\.. でバッチファイル実行フォルダをカレントにしています。 バッチファイル実行ファイルがあるフォルダ000に サブフォルダA、そのなかにサブフォルダB、さらにその中にサブフォルダG1,G2,G3 があり、G1,G2,G3の中に、それぞれaaa.exeがあります。 フォルダ000のバッチファイルからaaa.exeを実行するために、 ファイルの指定をどのようにしたらよいかご教示いただけないでしょうか? よろしくお願いいたします。 フォルダ000  batファイル   フォルダA     フォルダB       フォルダG1          aaa.exe       フォルダG2          aaa.exe       フォルダG3          aaa.exe バッチファイル内は、 forループで以下のようにしています。 for /L %%i in (2,1,3) do ( A\B\G%%i\aaa.exe )

  • バッチファイルについて質問です

    フォルダ内にA、B、Cと言ったテキストファイルがあります。 Aファイルだったら、日付-A.txtといったファイルのリネーム処理を実施するにはどのように記載すればいいのでしょうか? ※現在、ファイルのリネーム、日付を取得するところまで出来ています。 宜しくお願いします。

  • IEで接続したサーバ内のバッチファイルを実行したい

    IIS8で仮想ディレクトリを作り、そのディレクトリの参照を有効にする設定にしました。 クライアントからIEでディレクトリの一覧を見ることができるようなったので、そのディレクトリの中のバッチファイルを実行することで、クライアントのPCに、あるソフトが入るようにしたいです。 仮想ディレクトリ(フォルダ名を「A」とします)のフォルダの構成は、フォルダ「A」の直下にあるフォルダ「B」の中に「123.exe」、フォルダ「A」の直下にあるフォルダ「C」に「環境設定.aen」、フォルダ「A」の直下にあるフォルダ「D」には「123.bat」が入っています。 「123.bat」は、「123.exe」を実行した後、PCを再起動させるバッチファイルです。 「環境設定.aen」は、「123.exe」を実行してインストールされるソフトの環境設定のファイルです。 フォルダ「A」 |-フォルダ「B」 | |-123.exe | |-フォルダ「C」 |   |-環境設定.aen | |-フォルダ「D」 |   |-123.bat サーバーは、Windows Server 2012 です。 現在、123.batを実行しようとすると、「404-ファイルまたはディレクトリが見つかりません。」とエラーが出ます。バッチファイルではなく、直接「123.exe」を実行すると、ファイルのダウンロードが始まり、困っています。 質問したいのは、そもそもIEで接続したサーバーのフォルダ内のバッチファイルやexeファイルを実行して、クライアントのPCにソフトをインストールすることはできるのでしょうか? もし、できるのでしたら、方法は問いませんので、こういうやり方があるよというのを教えていただけないでしょうか? よろしくお願いいたします。

  • MS-DOS or バッチ 一括実行

    フォルダー内に a.wav,b.wav,c.wav… と入っていて これらすべてを実行ファイル(Lame.exe) に渡す場合 lame.exe a.wav lame.exe b.wav を一括でする方法はありませんか?

  • バッチファイルの繰り返し処理プログラム

    ------------------------------------------------- @echo off for /d %%A in ( C:\Documents and Settings\ダウンロード専用\デスクトップ\mp3) do echo %%A START /D"I:\ゲーム\PCゲーム\ステップマニア\BTC (beat counter)\bpmcount\wavetone251" wavetone.exe %%A pause --------------------------------------------------- バッチファイルの繰り返し処理プログラムの書き方(組み方に)についての質問です 上記のようなプログラムを組み 特定のフォルダ内のファイルを1つずつ順番にある特定の実行プログラムに読み込むバッチファイルを作成しているのですが、なぜかファイルはあるのに読み込んでくれないためプログラムの組み方に詳しいベテランさんに質問します。 図書館の本やインターネットで独学して日々勉強はしているのですが、イマイチプログラムの組み方が分からずに詰まってしまっているため、この場をもって皆様方の丁寧なご指導やアドバイスをお待ちしております。 サンプルバッチ表記+解説付きなら大変ありがたいです。 よろしくお願い申し上げます。

  • 作業フォルダを指定してコマンドを実行するバッチについて

    とある実行ファイル(D:\aaa\a.exe)を作業フォルダ(D:\bbb)を指定して実行するバッチを作成したいのですが、コマンドラインからはどのようにすれば上記を実現できるのでしょうか? Windowsのショートカットだとプロパティに作業フォルダを指定できるのですが、どうすればよいでしょうか?

  • バッチファイルへのD&D

    バッチファイルを作成して、以下の作業の効率化を図ろうと考えていますが、初心者のため、上手くいきません。 アイディアの可否を含めて、参考になるサイト、例文など教えてください。 環境はWindows Xp SP3です。 [作業] 1.バッチファイルに任意のフォルダAをD&Dする 2.フォルダA内にフォルダB-1を作成する。 3.作成したB-1に、フォルダA内の[.jpg]ファイルを移動する 以上 フルパスを指定してのバッチファイルなら自分でも何とか作成できるのですが、 このアイディアのは全くできませんでした。 よろしくお願いします。

  • Illustrator CS6のバッチ処理

    どなたか知識のある方に質問です。 Illustrator CS6のバッチ処理でできるかどうかわかりませんが 下記の処理ができれば非常に助かるのでどなたかご教授ください。 PCはMacです。 1)フォルダAがあります。 2)フォルダAの中にさらにフォルダが100個あります。  (100フォルダの中身はそれぞれIllustratorファイルと配置用epsファイルの2ファイル) 3)このIllustratorファイルを開き配置用epsを配置します。 4)画像を埋め込みます。 5)別名保存で異なるフォルダBに保存します。 6)閉じます。 ここまでのアクションで画像配置・埋め込みをしたIllustratorファイルが できますが、このアクションをフォルダAの中の100個のフォルダに適応したいのです。 つまり、アクションの別名保存先フォルダBにアクション処理されたIllustratorファイルが 100ファイルできる、ということです。 この作業が無数にあるのでできればバッチ処理で行えば助かるのですが・・・。 また、この時にフォルダBの中のIllustratorファイルはフォルダAの中のフォルダ名、 例えば100フォルダの一番目のフォルダ名が「okwave_001」ならば、 アクション処理されたフォルダBの中のIllustratorファイル名も「okwave_001」と 順に名前が記述されていれば理想です。 こんなに都合のよい方法があるのかどうかわからないのですが、 あればとても助かるので質問させていただきました。 非常に分かりにくい解説ですが、どなたかご理解いただけご教授くだされば幸いです。 どうぞよろしくお願いいたします。

  • Windows ファイル名を別プログラムに渡したい

    単純作業の自動化のため、スクリプト化しようとしています。 多数のファイルを1つずつループして、 exeファイル(例:CMD.exe)に渡して実行したいだけです。 CMD.exeにはオプションを指定したいです。 (例: -a -b "C:\...\folder" "C:\...\file" (対象ファイル名) ) フォルダ名やファイル名には空白や&などの文字が含まれているケースがあります。 また、ファイル名は"でくくられていたり、いなかったりします。 まずbatで実施してみました。 test.bat "C:\...\CMD.exe" -a -b "C:\...\folder" %1 この場合、引数のファイルが"でくくられていればファイル名に空白が含まれていても大丈夫でしたが、 &が含まれているとそこでファイル名が分断され、ファイルが見つからずに エラーになってしまいました。 また、引数のファイル名が"でくくられず、かつ空白を含む場合にもファイル名が分断されエラーになります。 そこで以下のようにもしてみました。 "C:\...\CMD.exe" -a -b "C:\...\folder" "%1" 今度はファイル名が"でくくられている場合に、CMD.exeには""("を2つ)でくくられて渡されてしまい、ファイルが見つからないエラーになります。 回避方法が分からず、PowerShellで実施しようと以下のように実施しました。 test.ps1 $CMD = """C:\......\CMD.exe"" -a -b ""C:\...\folder"" """ + $file-path + """" Invoke-Expression $CMD これだと、「式またはステートメントのトークン'-a'を使用できません。」などの エラーになります。 -aなどのCMD.exeの実行オプションがInvoke-Expressionの実行オプションとして 判断されているようにも見えます。 ファイルの処理なんてほとんどの処理ですることですし、 "があろうとなかろうと、バッチやPowerShellの予約語があろうとなかろうと、 自動エスケープして処理する方法があっても良い気がするのですが、 見つかりませんでした。 一般的な処理方法についてご教示いただければ幸いです。

専門家に質問してみよう