批次檔進程使額外的命令提示字元保持開啟狀態

批次檔進程使額外的命令提示字元保持開啟狀態

我有這個批次文件,它在啟動資料夾中建立一個批次文件,用於打開網站的特定 URL。我的問題是,每當它運行時,它也會打開一個空的命令提示字元。

批次腳本運作良好,它使用網頁瀏覽器打開網站 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 的命令,它會開啟第二個命令視窗並使其保持開啟。在大多數情況下,您希望批次腳本完成,然後只需關閉其 CMD 控制台即可恢復初始批次腳本。這可以透過明確地運行 CMD /C ... 來完成

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

來源

相關內容