
我正在嘗試編寫一個腳本來檢查進程是否正在運行(在我的例子中是虛擬機器)
@echo off
wmic process where name="VirtualBox.exe" | find "GitHubEnterprise" /c > tmpcount
set /p count= < tmpcount
echo Number of instances = %count%
因此,這樣做可以讓我查看我的 GitHub 實例是否正在運行,但它要求我能夠將 find 的輸出寫入文件,然後將其讀回並刪除該文件。 (應該注意的是,有兩個 VirtualBox.exe 副本隨時運行,因此我嘗試驗證 GitHubEnterprise 實例是否正在運行)。
我想做的是將查找到的計數直接儲存到變數中,或以某種形式的 if 語句使用它。
現在,從我自己對此的研究中,我看到了許多for
為此使用循環的建議,並且我已按照以下方式進行了嘗試,但沒有成功:
@echo off
setlocal enableextensions
for /f "tokens=*" %%a in (
'wmic process where "name='VirtualBox.exe'" ^| find "GitHubEnterprise" /c'
) do (
@set count = %a
)
echo Number of instances = %count%
pause
endlocal
任何人都可以看到/告訴我我在這裡做錯了什麼,或提出更好的建議。
謝謝大家,祝你有美好的一天。
京東
答案1
嘗試使用 SETX,
設定環境變數,塞克斯可用於設定機器(HKLM)或目前登入使用者(HKCU)的環境變數:
在使用者環境中將變數 _my_count 設定為「5」:
SetX _my_count 5
然後稍後讀取環境變數...
IF "%_my_count%" == "" 前往 DOTHIS
另一種方法是使用註冊表和 REG 命令。