26

これは、以前の私の質問 (リンク) へのフォローアップのようなものです。

テストするために、この単純なバッチ ファイルを作成して、タスク スケジューラがバッチ ファイルを適切に実行していることを確認しました。

cd "C:\Users\user\Desktop"
echo. 2>test.txt

そのため、test.txtドキュメントがデスクトップ上に作成された後、バッチ ファイルは終了するはずですが、実行は継続します。

実行中のタスク リスト

バッチ ファイルの最後またはタスクのプロパティの設定のいずれかに、cmd プロセスを確実に終了させる方法はありますか?

ありがとう!

4

6 に答える 6

14

スクリプトの最後の行に「exit」を追加できます

cd "C:\Users\user\Desktop"
echo. 2>test.txt
exit
于 2015-11-06T08:46:02.250 に答える
6

実行TASKKILL /F /IM cmd.exeすると、このバッチ ファイルを作成したプロセスであるかどうかに関係なく、すべての cmd.exe プロセスが強制終了されます。それはおそらく望ましくない動作です。:-)

あなたの最後の質問から判断すると、あなたはまだ でタスクを実行していると思います。cmd.exe /kこれにより、そのウィンドウが無期限に開いたままになります。無人タスクの場合cmd.exe /cは、 を選択することをお勧めします。バッチ ファイルが終了すると、プロセスは終了します。

于 2012-07-26T23:41:58.347 に答える
5

Windows 7 でも同じです。すべてのバッチ ファイルをユーザーのディレクトリに配置します。タスクを実行するユーザー固有のパス

run programm = " cmd.exe " (パスなし)

あなたのエクストラ、鉱山 where = " /c "C:\Users[username]\whatever\your_batchfile.bat" >> log.txt" "

>> log.txt」バッチの出力を見ることができるように...

start in = " C:\Users[ユーザー名]\whatever "

「最高の権限で実行する」ボックスもチェックしました

その後、すべてがうまくいきました:)

于 2016-11-25T11:17:55.493 に答える
-2

私が見つけた解決策は、バッチファイルの最後に次の行を追加することでした。

TASKKILL /F /IM cmd.exe

これで、バッチファイルタスクが実行されて完了すると、そのタスクは[すべての実行中のタスク]リストに表示されなくなり、ステータスは[実行中]のままではなく[準備完了]に戻ります。

警告:

そのコマンドは、実行中のすべてのコマンドプロセッサインスタンスを強制終了するため、潜在的に有害である可能性があります。

于 2012-07-26T21:35:12.123 に答える