這個問題在這里已經有了答案: 使用 MS 批處理檔案將程式的輸出分配給變數 10 個答案 昨天關門。
使用以下答案中的資訊,我嘗試了
set curlsnum=tasklist /FI "IMAGENAME eq curl.exe" 2>NUL | find /I /C "curl.exe"
echo %curlsnum%
這會回傳
set curlsnum=tasklist /FI "IMAGENAME eq curl.exe" 2>NUL | find /I /C "curl.exe"
0
echo
ECHO is on.
所以它正確地計算它,但由于某種原因,零并沒有進入變數。Set /a 也沒有任何區別。我一定遺漏了一些明顯的東西,但無法弄清楚是什么。變數必須是自然數還是奇怪的東西?!
如何使用批處理檔案計算當前正在運行的同名行程的數量
uj5u.com熱心網友回復:
set將變數設定為字串。如果該字串恰好是命令,則變數將包含命令,而不是其輸出。
要將輸出批量捕獲到變數,您需要一個for /f回圈(請參閱 參考資料for /?):
for /f %%a in ('tasklist /FI "IMAGENAME eq curl.exe" 2^>NUL ^| find /I /C "curl.exe"') do set "curlsnum=%%a"
echo %curlsnum%
uj5u.com熱心網友回復:
您也可以嘗試使用 powershell 進入批處理檔案,如下所示:
@echo off
Title count instances of process
Set MyProcess=curl
Call :Count_Process "%Myprocess%" Count
echo There are %Count% of "%Myprocess%"
pause
Exit /B
::-------------------------------------------------------------------
:Count_Process <ProcessName> <Count>
@for /f "delims=" %%# in (
'PowerShell -C "(Get-Process | Where {$_.Name -ieq '%1'}).count"'
) do Set "%2=%%#
Exit /B
::-------------------------------------------------------------------
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/484356.html
上一篇:如何在不將其包含在pom.xml中的情況下運行maven插件?
下一篇:如何在方法中傳遞引數列舉?
