BATファイルでstartからcallを行う方法

このQ&Aのポイント
  • BATファイルを使用して、イベントログの抽出を行う方法について質問しています。
  • 今まではMainBATとSubBATを使用して作業を行っていましたが、台数が多いためMainBATを分割し、一度に起動するBATファイルを作成した結果、SubファイルのCallが認識されなくなりました。
  • 具体的な作業の流れとしては、MainBATからSubBATを呼び出し、Subファイル内でアプリケーションを起動するというものです。%1の部分が認識されなくなったため、Callの部分を認識する方法を知りたいとのことです。
回答を見る
  • ベストアンサー

BATファイルでstartからcallを行う方法

現在BATファイルにて指定されたアプリケーションを使用して、イベントログの抽出を行っています。 元々MainBATとSubBATの作成を行い、1台毎に作業を行っていたのですが 台数が非常に多い為、MainBatの分割を行い、その上にMainBatを一度に起動するBAtファイルを作成した所 SubファイルのCallが認識できなくなりました。 申し訳ありませんが、作業を行う方法がございましたら教えて下さい。 本来の作業方法 MainBAT Call sub サーバー名 Call sub サーバー名 Call sub サーバー名 Call sub サーバー名 Call sub サーバー名 Call sub サーバー名 Call sub サーバー名 Call sub サーバー名 Call sub サーバー名 Subファイルにてアプリケーションの起動 アプリケーション名 %1 上記をMain1、Main2、MAin3、Main4と分割しその上に4つのBATを実行するALLBATの作成し実行 ALLBAT start Main1.bat start Main2.bat start Main3.bat srart Main4.bat Main1.bat Call sub サーバー名 Sub.batの中身 アプリケーション名 %1 この%1の部分が認識できなくなってしまいました(他に%2 ~ %9まで変更してみたが不可能) このcallの部分を認識できる方法がありましたら教えて下さい。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4844/10253)
回答No.2

#1です。 「具体的・客観的」というのは、「みたまんま」を書いて欲しかったのですが。 質問にお書きのようなファイル構成で実行すると、Main*.bat の個数だけのコマンドプロンプトが新たに開いて、そこでは本来、 Call sub サーバー名 アプリケーション名 サーバー名 と表示されるはずですが、これが Call sub サーバー名 アプリケーション名 となるのですか?いずれにせよ、どこかで何らかのミスがあるんでしょうが、とりあえず、アプリケーションが関係していないこと、また%1が空になっているか確認するために、sub.batの中身を notepad "%1" に一時的に変更してやってみてください。どういう現象が起こりますか? 質問文を見た限りどこもおかしくないので、実際にテストしているスクリプトを書き換えて質問文に書いていると思いますが、そのときに情報が失われている可能性もあります。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4844/10253)
回答No.1

バッチの仕様的には問題なさそうに思えます。 「この%1の部分が認識できなくなってしまいました」とは具体的・客観的にどんな現象なのでしょうか? 「何らかのエラーになった」という意味なら、このアプリケーションが同時起動に対応していないだけかもしれません。

mytora1
質問者

補足

具体的には%1の部分がブランク状態になっており、環境変数が設定されていない状態になっております。 その為、コマンドラインがまったく起動できない状態になってしまっています。

関連するQ&A

  • batファイル callを連続実行したい

    batファイルを作っています。 batファイルの中で、2つのファイルを実行したいのですが、1つ目は実行しますが、2つ目に自動で行きません。 どうすればよいでしょうか? 実行したいファイル 1つ目:batファイル 2つ目:mdbファイル(の起動) 現在の状況 ---------------- @echo off call D:\aaa.bat call D:\ccc.MDB ---------------- と記述しています。

  • BATファイル内で、他のネットワークドライブにある

    BATファイル内で、他のネットワークドライブにあるBATファイルを実行させたいのですが、うまくいきません。 どなたかご教授お願いします。 【詳細内容】 環境 サーバA  winserver2008 サーバB  winserver2003 ネットワークはworkgroupです Aにあるfile-backup.batを実行するのですが、その時にBにあるfile-backup2.batという別の BATファイルを実行させたく、以下のようにしました。 file-backup.bat ~他の処理~ @echo off call \\サーバB\bat\file-backup2.bat するとcall先も実行しませんし、処理も戻ってきません。 ネットワーク間のBATファイル実行には何か別の方法があるのでしょうか?。 よろしくお願いします。

  • batファイルで、call使っても戻ってこない

    こんにちは 教えてほしいことがあります。 batファイルで他のbatファイルを実行するためにcallで呼び出すと、処理がまた戻ってくる事を知り、 以下のようにやってみたのですが、戻ってきている様子がありません。 どこが間違っているのか教えていただければと思います。 以下file-backup.bat echo 処理開始 >> %LOG% date /t >> %LOG% time /t >> %LOG% C:\****\Backup\FastCopy198\fastcopy.exe /cmd=force_copy /auto_close /open_window /error_stop=TRUE /log /from_date="-2D" "D:\file2" "/to=\\********\file2" @echo off call "Z:\file-backup2.bat" echo 処理終了 >> %LOG% ←---これ以下がログファイルに表示されない time /t >> %LOG% echo. >> %LOG% ログに「処理終了」が入ってきませんので、callで戻ってきていないと判断しました。 環境はwinserver2008です。 ご教授お願いします。

  • batファイルからアプリケーションを終了させるには

    現在、USBフラッシュメモリから複数のアプリケーションを実行させて使用しようと考えています。 そのとき、USBフラッシュメモリを抜くためにアプリケーションを一つ一つ閉じる手間を省くために、batファイルを作成しようとしているのですが、batファイルからアプリケーションを終了させる方法がわかりません。 回答をよろしくお願いします。

  • ファイル名を指定して、batファイルを実行したい。

    C♯、PostgresSQL環境です。 フォームのボタンを押した時、batファイルを実行したいと 考えています。 処理の内容は、DBのバックアップ・リストアです。 現在は、Process.Startを使ってバックアップ用のbatファイルを 実行していますが(処理としてはpg_dumpallをしています)、 リストア時はファイル名を指定してリストアさせたいのです。 (ファイル名を指定してリストア用batファイルを動かしたい) Process.Startの第二引数でファイル名を渡せば良いかと思ったの ですが、バッチファイルでそれを受け取って処理に入れるには どうすれば良いのでしょうか? (バッチファイルはコンソールアプリとして作ったわけではなく、 メモ帳で作成したものです) ヒントをいただけると助かります。 宜しくお願いします。

  • batファイルからアプリケーションを終了させるには

    現在、USBフラッシュメモリから複数のアプリケーションを実行させて使用しようと考えています。 そのとき、USBフラッシュメモリを抜くためにアプリケーションを一つ一つ閉じる手間を省くために、batファイルを作成しようとしているのですが、batファイルからアプリケーションを終了させる方法がわかりません。 Killコマンドなど調べましたが私のPCはXP-Home Edition なので使えません。他にコマンドがありましたら教えてください。 回答をよろしくお願いします。

  • .batファイルが実行できません[VB2005]

    お世話になってます。 VB2005にて、.batファイルの中身を書換え、他アプリケーションを 実行する処理を行っています。 しかし.batの書換えは正確に行われているのですが .bat実行中プロンプト内に出力されたテキストと異なる文字列が入っており 処理が完了しませんでした。 正しく処理するにはどのようにしたらよろしいでしょうか。 コードは下記の通りです。 'BATCHファイルの書換え処理 Dim Bat_f As New System.IO.StreamWriter(Cur_dir + "LT-AutoP1.BAT", False, System.Text.Encoding.Default) For Each line As String In ListBox1.Items Bat_f.WriteLine("CALL ACLT " + line + " /b AutoP.scr") Next Bat_f.Close() Dim psInfo As New ProcessStartInfo() psInfo.FileName = "C:\Program Files\AutoCAD LT 2002\LT-AutoP1.BAT" ' 実行するファイル psInfo.CreateNoWindow = False psInfo.UseShellExecute = False Process.Start(psInfo) 尚、正確に出力された.BATを直接ダブルクリックすると正常に処理されます。 CALL ACLT Z:\hoge\hoge1\hogehoge.dwg /b AutoP.scr コマンド実行中は下記のように表示されていました Z:\hoge\hoge1\>CALL ACLT Z:\hoge\hoge1\hogehoge.dwg /b AutoP.scr 'ACLT'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません

  • batファイルに関して

    教えて下さい。 batファイルを作成し、実行しようと考えていますが、命令文 が複数あった場合、1つのbatファイルに記載する事は可能でしょうか? 例えば、  copy と pushd 等を一度に行いたい。 よろしくお願いします。

  • BATファイル実行にフォーカスを当てたい

    Windows2008サーバにRDPでWindows7から実行しています。 サーバにBATファイルを作成し、(XCOPYコマンド)データのバックアップを行います。 この時ですが、クライアント(Windows7)で実行させたBATファイルですが(コマンドプロンプト)画面が なぜか背面にかくれてしまい、BATの実行内容がみれなくなることがあります。また、BATの終了時に、正常終了かどうかの表示を行い、Pauseコマンドで止めていますが、これが、背面にかくれてしまい、いつ終ったのかわからない状態です。ずーっとBAT自動されたコマンドプロンプトの表示にフォーカスを当てたいのですが、BATに記述することにより、再度フォーカスを取り戻すようなコマンドはあるでしょうか?よろしくお願いします。

  • batファイルの作成方法について

    batファイルの作成方法について A.htmlとB.htmlファイルを同時にブラウザで開きたいのですが、 下記のバッチファイルを作成したところ for %%x in ("C:\test\*.html") do start "C:\Program Files\Internet xplorer\iexplore.exe" %%x WEBページが同一ウィンドウで開いてしまうので、先に開いたA.htmlが消えてしまい、B.htmlだけが表示されます。 そしてなぜか同じbatファイルをもう一度実行すると、1回目に残ったB.htmlに追加して、今度は A.html、B.htmlがそれぞれ別のタブで開いて3つのタブになります。 一度にA.html、B.htmlを2つのタブで開く方法はないでしょうか? 【補足】 A、Bのファイル名は変更することがあるので「*.html」としています。 IEバージョンは8、Windows7です。 IEバージョン7、WindowsXPのPC上では、問題なく2つのタブで開くことができます。 全くの初心者なので、どなたか教えてください。