バッチファイルプロセスにより余分なコマンドプロンプトが開いたままになる

バッチファイルプロセスにより余分なコマンドプロンプトが開いたままになる

このバッチ ファイルがあり、スタートアップ フォルダーに Web サイトの特定の URL を開くバッチ ファイルを作成します。問題は、実行するたびに空のコマンド プロンプトが開いたままになることです。

バッチ スクリプトは正常に実行され、Web ブラウザーで Web サイトの URL を開きますが、発生してほしくない追加の CMD ウィンドウが開いたままになります。注: CMD ウィンドウをバックグラウンドで実行する方法を尋ねているのではありません。

コードは次のとおりです:

@echo off

cd C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

echo @echo off > startup.bat

echo start (link) >> startup.bat

start startup.bat

この問題を解決するために何を変更すればよいか教えていただけませんか?

答え1

使用できる電話/MINスイッチを追加して始めるコマンドをより隠蔽し、実行時にCMDウィンドウが消えるようにする上記の例のロジック設定に従って

私が使用したものの正確な例を示し、動作する必要があると説明したとおりに動作することが確認されたため、いくつかの簡単な調整を行ってこのロジックを追加しました。

サンプルスクリプト

@echo off

CD /D C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

echo @echo off > startup.bat
echo START /MIN "" "https://google.com">> startup.bat
echo EXIT /B>> startup.bat

CALL startup.bat
EXIT /B

その他のリソース

答え2

以下のリンクをご覧ください。

「コマンド ウィンドウ」を起動せずにバッチ ファイルを実行するにはどうすればよいでしょうか?

リンクにアクセスできない場合は、次の内容を含む vbs スクリプトを作成するようにという回答があります。

CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True

ここで、「your_batch_file.bat」はバッチ ファイルの名前です。

上記を Visual Basic スクリプト (例: example.vbs) として保存し、実行します。

答え3

その理由と対処法は次のとおりです。

デフォルトでは、START は CMD /K と同等の機能を実行し、2 番目のコマンド ウィンドウを開いてそのままにします。ほとんどの場合、バッチ スクリプトを完了してから CMD コンソールを閉じて、最初のバッチ スクリプトを再開します。これは、CMD /C を明示的に実行することで実行できます...

Echo Starting
START /wait "demo" CMD /c demoscript.cmd
Echo Done

ソース

関連情報