我试图在变量
中存储性能计数器的度量值FOR /F "tokens=1-2 delims==,¶" %%I IN ('typeperf "\Memory\Available bytes" -sc 1') DO (
ECHO I %%I, J %%J
)
但for循环的每次迭代都会覆盖前一行的变量。有什么建议吗?
答案 0 :(得分:1)
3x
这是你想要达到的目标吗?
答案 1 :(得分:1)
@ECHO OFF >NUL
SETLOCAL enableextensions enabledelayedexpansion
:: number of samples
set "iiIters=5"
:: iteration counter
set /A "iiCnt=0"
FOR /F "tokens=1-2 delims=," %%I IN (
'typeperf "\Memory\Available bytes" -sc %iiIters%^| findstr /R ".*\",\".*"') DO (
set "iiValName[!iiCnt!]=%%~I"
set "iiValValue[!iiCnt!]=%%~J"
set /A "iiCnt+=1"
)
:: display result
set ii
在上面的代码片段中,来自性能计数器的数据存储在类似数组的变量中:
iiValName[0]
:输出格式(CSV
标题); iiValValue[0]
:CSV
格式的效果计数器(\\Computer\Object(Instance)\Counter
标题)的全名; iiValName[n]
:特定的样本日期和时间(n >= 1
); iiValValue[n]
:对应的指标值(n >= 1
)。资源(必读):
答案 2 :(得分:0)
谢谢大家的回答。我选择使用Powershell并用此获得了我想要的结果 -
`$freespace = Get-Counter "\LogicalDisk(_Total)\% Free Space"
$f = $freespace.countersamples | Select-Object -Property RawValue
$fVal = $f.rawvalue`
我只需要一种方法将性能计数器的值存储在变量中。