PowerShellからBATに制御を戻す方法

このQ&Aのポイント
  • PowerShellからBATに制御を戻す方法をご教示頂けますでしょうか。
  • BATファイルにてメニューを作成し、PowerShellでテストイベントを送信するために作成したスクリプトを実行していますが、PowerShellが実行完了後にBATに戻らずに止まってしまいます。
  • PowerShellの実行後にBATに制御を戻す方法を教えていただけないでしょうか。
回答を見る
  • ベストアンサー

PowerShellからBATに制御を戻す方法

【環境】 OS:Windows Server 2008 R2 SP1 【状況】 BATファイルにてメニューを作成しており、表示されたメニューの中からPowerShellで作成したテストイベントを送信するスクリプトを実行するための番号を入力後、Enterキーを押すとテストイベントが送信されるようになっております。 PowerShellが実行された後、呼び出し元のBATファイルに戻りメニューを表示させたいと考えておりますが、PowerShellが実行完了後、BATファイルに戻りません。 ※ JP1の動作定義ファイル(ntevent.conf)を修正しており、修正したフィルタが正常に動作することおよび既存のフィルタが影響がないかを確認するためにBATファイルからPowerShellでテストイベントを発行するためにBATおよびPowerShellでプログラムを作成しております。 【ご教示頂きたい点】 PowerShellが実行後、BATファイルに戻り、メニューを表示させるようにしたいと考えており、どのようにしたらBATに制御を戻すことができるかご教示頂けますでしょうか。

noname#242248
noname#242248

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

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

powershell -file foo.ps1 dir などでちゃんとBATファイルに制御が戻りますが、どうやってPowershellスクリプトを実行しているのでしょうか?

noname#242248
質問者

お礼

ありがとうございます。 以下のようにしたらBATに制御が戻り、イベント発行後、メニューが表示されるようになりました。 ---------------------------------------- echo イベントログの出力を行います PowerShell .\event.ps1 cls goto MENU ----------------------------------------

noname#242248
質問者

補足

以下のプログラムで2を選択したときにPowerShell .\event.ps1を呼び出して実行していますが、BATに制御が戻りませんでした。 @echo off :MENU echo □■□■□■□■□■□■□■□■□■□■□■□■□■□ echo ■                         ■ echo □ JP1 イベント転送/抑止 テストツール     □ echo ■                         ■ echo □ ☆ メニュー ☆ □ echo ■ ■ echo □ 1.動作定義ファイル(ntevent.conf)のリロード  □ echo ■                         ■ echo □   2.イベントログの出力         □ echo ■ 【注】事前に『eventtraptest.ps1』に ■ echo □ 転送/抑止するイベントを作成した上 □ echo ■ で実行してください ■ echo □ □ echo ■ 3.イベントデータベースファイルの出力     ■ echo □                         □ echo ■   4.終了                    ■ echo □                         □ echo ■□■□■□■□■□■□■□■□■□■□■□■□■□■ rem 空行を表示 echo, rem 初期値 set NUM=0 rem 標準入力 set /p NUM="選択してください >" rem 空行を表示 echo, rem /*-----------------------------------------------------*/ rem /* if文 */ rem /*-----------------------------------------------------*/ rem 1.動作定義ファイル(ntevent.conf)のリロード if "%NUM%"=="1" ( echo 動作定義ファイルのリロードを行います pause cls goto MENU rem 2.イベントログの出力 ) else if "%NUM%"=="2" ( echo イベントログの出力を行います PowerShell .\event.ps1 ) else if "%NUM%"=="3" ( rem 3.イベントデータベースファイルの出力 echo イベントデータベースをCSVファイルに出力します pause jevexport -t ON -a notepad imevent.csv cls goto MENU rem 4.終了 ) else if "%NUM%"=="4" ( exit ) else ( cls goto MENU

関連するQ&A

  • PowerShellからPowerShellを呼び出す方法

    PowerShellからPowerShellを呼び出す方法 次のバッチファイルと同等の事をPowerShellで行う方法を教えて下さい。 下記のような非常に簡易的なバッチファイルがあるとします。 ■ aaa.bat ■ echo test ■ aaa.bat ■ ■ bbb.bat ■ aaa.bat > aaa.log ■ bbb.bat ■ ■ コマンドプロンプト ■ cmd> aaa.bat ・・・ 下に「test」と出力される test cmd> bbb.bat ・・・ ファイルaaa.logに「test」と出力される ■ コマンドプロンプト ■ 同じ事をPowerShellでするとすれば ■ aaa.ps1 ■ echo "test" ■ aaa.ps1 ■ ■ PowerShellの画面から ■ PS > ./aaa.ps1 ・・・ 下に「test」と出力される test PS > ./bbb.ps1 ・・・ ファイルaaa.logに「test」と出力される ■ PowerShellの画面から ■ この時の「bbb.ps1」はどのようになりますか?

  • powershellでの改行方法について

    テキストファイルの特定の文字列の後の改行コードをカンマに変換するbatファイルを作成しようと思っているのですがうまくいきません。 DOSで用意されているコマンドだけでは実現は難しいと思って、powershellコマンドを使っています。 実現は一つのbatファイルで行いたいのですが、どなたか実現方法を知っていましたら教えていただけませんでしょうか。 [JIKKO.bat] powershell.exe "$(Get-Content TEST.txt) -replace '★`n',','" >TEST_RESULT.txt [TEST.txt] あああ,いいい,ううう★ えええ かかか,ききき,くくく★ けけけ [TEST_RESULT.txtの理想] あああ,いいい,ううう,えええ かかか,ききき,くくく,けけけ

  • PowerShellで処理を簡単にしたい

    PowerShellは、ど素人です。 PowershellであるPs1ファイルを実行するのに 現在下記の手順で行っています。 1)PowerShellを管理者権限で実行 2)以下のコマンドを最初に実行 powershell set-executionPolicy remoteSigned 3)次に以下のコマンドを実行 powershell -File C:\Users\Mic\Desktop\Keep\sample.ps1 毎回、2),3)をPowerShellの画面にコピペして処理しています。 もう少し簡単な手順になれば嬉しいのですが、 1),2),3)を一つのBATで処理するような方法はありませんか ? BATに限らず手順が減るような方法があれば教えてください。

  • powershellをバックグラウンド実行

    いつもお世話になっております。 とあるpowershellをバックグラウンド実行したいのですが、うまくいきません。 【実施したいこと】 background.ps1をバックグラウンド実行したい。 【前提条件】 background.ps1はbackground.batファイルより実行する想定で考えている。 background.batの中身(イメージ) (中略) powershel l-command "background.ps1" (中略) get-executionpolicyではremotesignedで~ps1ファイルは実行許可を与えている。 【確認していること】 1.start-jobコマンドを使用すればバックグラウンド実行ができることを確認済み 2.batの実行を以下にするも実行がうまくいかない。 powershell -executionpolicy remotesigned -command "start-job background.ps1" 3.間にpowershellをバックグラウンドするbackground_middle.ps1をかませてもうまくいかない。 batのコマンド実行をbackground_middle.ps1にし、background_middle.ps1を start-job backgroundと記載しており実行してもうまくいかない。 4.powershell上でstart-job background.ps1を手動で実施するとうまく実行される。 申し訳ございませんが、大変困っており、すぐ回答を頂きたいです

  • batが実行できない

    すいません、緊急で教えてください。 簡単なバッチを作成し、test.batとしてwinXPでtest.batをダブルクリックして実行しようとしましたが、 一瞬だけ黒い画面がひらいて、実行されません。 仕方なくプロンプト上で手動でtest.batを実行しようとしましたが 下記エラーでどうもtest.batの文字が認識されないようです。 C:\>r 'r' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 当方、初心者なので、調べてもわかりませんでした。 すいませんが、教えてください。

  • PowerShellを使ってキッテッングがしたい

    下記のコマンドをPowerShell(管理者)でテキストファイルからコピペして実行しています。 #(1)powershellの実行ポリシー変更 Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned -Force #(2)01_Kittingフォルダへの移動 net use X: \\filesever\user\01_Kitting pushd \\fileserver\user\01_Kitting 上記を例えば¥D(USB等)でPowerShell(管理者)を立ち上げて実行できるようなバッチファイル?を作りたいと思っていました。 01_Kittingの中にはキッテッングをするメニューが01~09まであり、PowerShell(管理者)で01と入力してTabを打つと01のメニューが実行できるようになります。 こんな都合よいバッチファイル?が出来るかわかりませんが、何卒、ご助言をいただければ幸いです。 何卒よろしくお願い申し上げます。

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

    初めてBATを作成する事になったのですが、こんなBATを作りたいのですがイマイチ分からず、 例えば: C:\にある○○のファイルと、 C:\WINDOWSにある○○のファイルを比較して、 もし、なければ、 C:\data\○○.exeを実行する もし、あれば C:\data\○○.exeを削除する 更に分かりましたら、 このファイルを実行する際に、 Windows修正プログラムに含まれている、update.exeのコマンドスイッチも付加できればありがたいのですが、 お分かりになる方どうか教えて下さい。 宜しくお願いします。

  • batファイルでのファイル名取得について

    おそれいります。ご教示くださいませ。 ファイル拡張子xxxをxxx.batに関連付けしました。 test.xxxをダブルクリックするとxxx.batが実行されるシカケです。 実行されたxxx.batでtest.xxxというファイル名を取得したいのですが方法がわかりません。 %0にはxxx.batがセットされてしまうからです。

  • batよりjava起動

    お世話になっております。 javaのclassを実行する 以下の処理を行うbatファイルを作成したところ (ディレクトリ移動→classpathの設定→javaコマンド) cmd.exeよりこのbatファイルを実行すると 正常に動作してくれるのですが batファイルをダブルクリックすると javaを正常に実行しません。 errorや例外も特に発生していません。 batファイルを cmd.exeからの実行するのと ダブルクリックで実行するのには 何か違いがあるのでしょうか? 最終的な目的はタスクにこのbatを登録し 指定した時間に定期的に実行する事なのですが、 タスクにbatを登録して実行した場合 batをダブルクリックした時と同様の現象になり 正常に動作しませんでした。 原因をご存知の方がいらっしゃいましたら 教えて頂けないでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • BATファイル起動について

    お世話になっております。 javaのclassを実行する 以下の処理を行うbatファイルを作成したところ (ディレクトリ移動→classpathの設定→javaコマンド) cmd.exeよりこのbatファイルを実行すると 正常に動作してくれるのですが batファイルをダブルクリックすると javaを正常に実行しません。 errorや例外も特に発生していません。 batファイルを cmd.exeからの実行するのと ダブルクリックで実行するのには 何か違いがあるのでしょうか? よろしくお願いします。

専門家に質問してみよう