使用Windows 7 .bat文件,我想将特定任务的I / O读取次数计入变量。
我已尝试过tasklist.exe,但它只显示内存使用情况,我不知道如何将该输出重定向到批处理文件变量,即使它显示了I / O读取。
所以,基本上我想在命令提示符下运行一个bat文件,它将特定任务(模块名称)的I / O读取放入%var%变量中,我稍后可以在bat文件中使用。 / p>
这是我可以将日,月和年变为变量的方法。
For /f "tokens=1-4 delims=/ " %%a in ("%DATE%") do (
SET DAY=%%a
SET YYYY=%%d
SET MM=%%b
SET DD=%%c
)
我需要包含I / O读取的%TASKDATA%(而不是%DATE%),因此我可以将其拉出并将其分配给另一个变量,如下所示:SET IOREADS = %% d
有没有办法在bat文件中使用windows命令?
答案 0 :(得分:1)
我找到答案,发布以防以后帮助别人:
@echo off
wmic process where name="mstsc.exe" get readoperationcount /format:csv>tempuni.txt
type tempuni.txt>temp.txt
del tempuni.txt
setLocal EnableDelayedExpansion
for /f "skip=2 tokens=2 delims=, " %%a in (temp.txt) do (
set /a N+=1
set v%N%=%%a
)
del temp.txt
set IOREADS=%v2%
echo I/O Reads = %IOREADS%
请注意,wmic输出是unicode,我必须将文件“键入”到另一个文件以将其转换为ascii。然后我解析文件内容以获取ioread计数,在本例中为mstsc.exe进程。