0

使用 Windows 7 .bat 文件,我想将特定任务的 I/O 读取计数转换为变量。

我试过 tasklist.exe 但它只显示内存使用情况,我不确定如何将该输出重定向到批处理文件变量,即使它显示 I/O 读取。

所以,基本上我想在命令提示符下运行一个 bat 文件,该文件会将特定任务(模块名称)的 I/O 读取放入 %var% 变量中,我稍后可以在 bat 文件中使用。

这是一种可以将日、月和年转换为变量的方法。

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 命令来做到这一点?

4

1 回答 1

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

于 2014-11-05T21:08:09.420 回答