Excel VBA の Shell コマンドを使用して、特定の .bat ファイルを実行しました。CMD が表示されますが、すべての行が実行されると自動的に終了します。バットの最後に PAUSE コマンドを追加しました。ファイルですが、機能していません。コマンドプロンプトが自動的に閉じないようにする方法は?
3 に答える
/K スイッチを使用して、次のようにバッチ ファイルを実行した後に終了しないようにしてください。
cmd /K "ファイル名と拡張子を含むバッチ ファイルへのパス"
例えば
cmd /K "C:\FOLDER\BATCH FILE.BAT"
また
cmd /K "C:\FOLDER\BATCH FILE.CMD"
明らかに、バッチ コードの障害は明らかになりませんが、コマンド ラインからバッチ ファイルを実行するのと同じように、実行後に終了しません。
実行中の進行状況を示し、トラブルシューティングを行うために、いくつかの ECHO 出力行を必ず追加してください。詳細については、ここにファイルを投稿してください。
投稿された質問に実際に回答していない可能性がありますが、非常に関連する質問を検索してこの質問に出くわしました。また、エラーが発生してすぐに閉じていたため、コマンドプロンプトが閉じないようにしようとしていました。私にとっては、デバッグのためにエラーを表示できるようにすることが本当に必要だったので、出力を表示するだけで十分でした。
私が見つけた解決策は、次のように、コマンド プロンプトの出力をテキスト ファイルにパイプすることでした。
MyScript.bat >> text.txt
これにより、取得していたエラーを確認できました。
コマンド プロンプトを開き、バッチ ファイルを実行してみてください。dos シェルでエラーが発生して終了している可能性があります。実行が一時停止コマンドに到達する前にエラーが発生した場合、エラーを読み取るために一時停止せず、すぐに閉じます。
それでもうまくいかない場合は、いずれかのブランチに終了コマンドがあるかどうかを確認してください。または、さまざまな場所にエコー ステートメントを配置し、実行制御がこれらのエコーに到達するかどうかを確認します。このようにして、スクリプトが他のブランチで終了しているかどうかを確認できます。