@echo off
setlocal enabledelayedexpansion
for /l %%i in (0,1,4) do (
SET count=1
FOR /F "tokens=* USEBACKQ" %%F IN (`wmic /node:'SERVER_NAME' cpu get loadpercentage`) DO (
SET var!count!=%%F
SET /a count=!count!+1
)
set var=%% %var2%
echo CPU Usage: %var%
)
endlocal
pause
大家好。我正在BAT文件中運行一個簡單的循環,並想讓CPU%顯示超過5個循環。外觀正如預期的那樣工作 - 但是 - %var%未被填充。在BAT文件中循環/節點
如果我刪除了do函數並且只有wmic命令,它會生成並循環正常。
我錯過了一些在這裏顯而易見的東西,但看不到它。你能幫忙嗎?
完美 - 謝謝。所以 !將數據保存在變量中? (要求我理解而不是僅僅有答案) – Pez
另外 - 如果我可能會問 - 如何將每個值加起來!var2!我可以得到一個總數? – Pez
當'delayedexpansion'被調用時''var!'返回變量的* run-time *值(因爲它通過循環的操作而改變)。 '%var%'是* parse-time *值 - 它在解析* entire *語句時的值 - 檢查其有效性。假設'total'在到達外部'for'之前的值爲'0',那麼'set/a total = total + var2'會將遇到的'var2'的所有值總和爲total。 echo!total!'會顯示var2的總數。在嵌套'for's完成之後,!total!==%total%。 – Magoo