システムwiki

windows7:バッチファイルですべてのコマンドを実行できません

F.Wu 受付中 最終更新日:2021-04-29 07:36

HI、

バッチファイルを実行するのに問題があります.アプリの実行と監視UPS信号があります.その信号がTRUEになると、アプリはバッチファイルを起動して自分自身を閉じてから、30秒後にPCをシャットダウンします.

バッチファイルの内容は次のようなものです.

@echo

app.exe-exit

30停止30

shutdown.exe/s/t 5

しかし、システムは最初の2行のコマンドのみを実行したようです
app.exe、それはアプリを閉じて、PCをシャットダウンしませんでした.バッチファイルをダブルクリックしてバッチファイル自体を実行すると、すべてのコマンドが実行され、PCシャットダウンが正しく実行されます.

返信リスト(回答:5)

1 #
Frederi

キーを押すまで「pause」はバッチファイルをpauseします.30秒間pauseするには、このコマンドを使用する必要があります.

タイムアウト30

Shutdown.exeを使用した5秒のpauseを30秒かけて5秒のpauseをした理由を尋ねることがあります.pauseを削除しないと、シャットダウン遅延を35秒間削減しますか?

応答1# ->にスキップ
2 #
F.Wu

HI、

確かに、私が "30停止30"を削除しても、shutdownコマンドは実行されません.私はバッチファイルがApp自体によって呼び出されると思いますので、それ自体を閉じるとバッチファイルスレッドも終了しますか?

応答2# ->にスキップ
3 #
Frederi

app.exeは、制御をバッチファイルに返さない場合があります.その場合は、次のように別のシェルで起動する必要があります:

@echo off

start/b "App" app.exe-exit

shutdown.exe

app.exeのパスが含まれていないことに注意してください.これは、他のApplicationによって呼び出されるバッチファイルには必須です.完全修飾パスがないと、どのapp.exeが呼び出されるかわかりません.

応答3# ->にスキップ
4 #
F.Wu
ありがとうございました.後でテストします.パスは実際のバッチファイルに含まれています.
応答3# ->にスキップ
5 #
F.Wu

スクリプトを次のように変更しました:

@echo off

app.exe-exit

start/b "Shutdown" shutdown.exe/s/t 35

これで機能します!