如何将I / O从任务列表中的指定任务读取到bat文件变量中

时间:2014-11-05 16:14:57

标签: windows batch-file cmd tasklist

使用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命令?

1 个答案:

答案 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进程。