如何讓 Windows 命令列程式像 Linux & 命令那樣在後臺執行
阿新 • • 發佈:2021-01-26
技術標籤:devopslinuxwindowsdevops tooling
一般來說如果我們想讓一個 Windows 命令列程式在後臺執行,我們需要把這個程式寫成一個 Windows 服務程式。然後使用 sc 命令或者把它安裝成 Windows 服務,它才能在後臺執行。
Windows 沒有像 Linux 那樣直接在命令最後加一個 & 字元就可以讓命令在後臺運行了。比如下面的命令可以讓打包操作在後臺執行,即使關掉視窗也不會關掉程序。
tar -czf home.tar.gz . &
在 Windows 上要達到類似的效果需要一些技巧。下面的命令可以讓你的 Windows 命令列程式在後臺執行,即使關掉了命令列視窗,你在工作管理員裡還是能看到它。
要注意的是我們必須做一個批處理檔案讓這兩行程式一起執行,一個一個在命令列裡執行這兩個命令是沒有效果的。
@ECHO OFF
%1 start mshta vbscript:createobject("wscript.shell").run("""%~0"" ::",0)(window.close)&&exit
start /b your_command.exe
我們需要做的就是用自己的程式替換掉 your_command.exe 。
要停止已經開始執行的後臺程序可以使用下面的指令碼:
@ECHO OFF
taskkill /im ladderapi.exe /f
ping -n 2 127.1 >nul