- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想在批处理脚本中汇总所有名为“test.exe”的程序的已用内存。我可以使用以下命令获取所有相应进程的内存使用情况:
C:\> wmic process where name="test.exe" get workingsetsize | findstr /v "WorkingSetSize"
55758848
66174976
所以,我想我想用 FOR 循环将所有这些值相加。以下命令只会显示 i 变量,但我仍然收到附加错误。
C:\> for /F %i IN ('wmic process where name="test.exe" get workingsetsize ^| findstr /v "WorkingSetSize"') DO echo %i
test.exe - Invalid alias verb.
我如何更改该命令以将所有使用的内存加在一起并输出它并且它必须在 CMD 中工作,最好与我的命令非常相似。
谢谢
最佳答案
您的 FOR 语句失败,因为 =
是一个标记定界符,它正在被批处理解析器删除。如果您将其转义为 ^=
,它将起作用。
WMIC 有一个不幸的“特性”,即每当它的输出通过管道传输时,它都会在每行输出的末尾包含一个额外的回车符 (0x0D),并在输出末尾加上一个额外的行。这可能会导致 FOR 循环中出现额外不需要的行的问题。通过更改 FINDSTR 以查找至少一位数字而不是缺少标题行,您的情况很容易解决。
要获得总和,您只需在循环中使用 SET/A(在首先初始化 SUM 变量之后)。
>set SUM=0
>for /F %i IN ('wmic process where name^="test.exe" get workingsetsize ^| findstr "[0-9]"') DO set /a SUM+=%i
但是 - Windows CMD 中的数学仅限于 32 位有符号整数支持。您的总和很容易超过允许的最大值 2,147,483,647。您最好使用 PowerShell 或 CSCRIPT 来执行 VBS 或 JScript 程序。所有这些替代方案都支持长整数(64 位)。
关于Windows + wmic + 内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10197204/
Windows 任务管理器的“进程”选项卡显示了几列信息,其中之一是拥有该进程的用户的用户名。 使用命令 WMIC 进程(来自管理员启动的 cmd.exe)为我提供了相同类型的信息,但我找不到任何用户
我已经搜索并搜索过,但无法弄清楚为什么会返回无效查询错误: wmic datafile where name='c:\\program files (x86)\\Mozilla Firefox\\Fi
是否可以在平面旧 wmic 命令中执行此 powershell 脚本?如果可能,我需要根据路径或驱动器盘符获取磁盘模型信息,但在运行 powershell 脚本时遇到问题。 Get-WmiObject
当我通过命令行运行 wmic 查询时,我检测到一行具有 ThreadCount 值。 我不知道ThreadCount的含义。 我正在运行这个 wmic 查询: wmic process where (
我想在批处理脚本中汇总所有名为“test.exe”的程序的已用内存。我可以使用以下命令获取所有相应进程的内存使用情况: C:\> wmic process where name="test.exe"
我正在尝试运行批处理脚本来获取基本的计算机信息,如 CPU、RAM 和事件网卡。这是我的代码 @Echo OFF set newline=^& echo. echo Manufacturer Info
我希望能够运行如下查询: wmic 路径 Win32_Service where "DisplayName like 'FooBarService % (X, Y)'"get * 但是,由于 like
这个问题在这里已经有了答案: Variables are not behaving as expected (1 个回答) 去年关闭。 我正在尝试获取具有几乎相同名称的文件的最后修改日期(常见的 Co
我有一个奇怪的问题。我试图将硬盘序列号从 WMIC 返回到批处理文件中的变量;给我变量的那一行是: for /f "skip=2 tokens=2 delims=," %%a in ('wmic di
我试图确定Windows Docker容器中安装了哪些程序(从microsoft / windowsservercore中拉出)。因此,我遵循了本教程https://helpdeskgeek.com/
我有一个简单的问题,对于那些在 WMI 命令处理器方面比我有更多经验的人来说应该相对简单(而且因为我是一个绝对的初学者,所以并不难 :-)) 我不明白为什么 wmic/format 开关会这样工作。我
我试图使用进程生成器打印 chrome 的版本,当我直接在 Windows 命令提示符中执行 wmic 命令时,这在命令提示符下工作正常,同样不适用于进程生成器 String path= "C:\\P
我在 btach 文件中运行几个 wmic 命令来查找进程并将其终止。 wmic Path win32_process Where "CommandLine Like '%app1%'"Call Te
这是我获取 TeamViewer(任何版本)服务可执行文件位置的字符串: for /f "skip=1 delims=" %A in ('wmic path win32_service where "
这个问题在这里已经有了答案: Set the value of a variable with the result of a command in a Windows batch file [du
我想获取某种格式的 Windows 修补程序列表,其输出可以用一些分隔符分隔。到目前为止,我找到了一个 wmic 命令,它给了我想要的输出,但问题是 \s 定界符在这里不起作用。有没有一种方法可以放置
我目前正在编写一个脚本,该脚本必须同时从多台计算机上卸载一个程序,我唯一能找到有关如何针对该特定程序执行此操作的信息的地方是使用 wmic ,但是每次我运行命令时,机器都会硬重启。 有没有办法(使用
我没有在仅使用 W MIC 的批处理脚本中获得内存利用率百分比的结果。我只获得总内存和空闲内存(以字节为单位)。 那么如何获得以兆字节为单位的数据以及如何计算内存利用率百分比? 代码:- @echo
有没有办法以不同的用户身份在本地主机上使用 wmic 创建进程。使用类似这样的方法: wmic /node:localhost /user:user process call create "cm
我正在使用 Windows Management Instrumentation 命令行 (WMIC) 从计算机读取数据,例如硬件组件和 IP 设置。 因为我使用批处理文件 (Windows) 为每个
我是一名优秀的程序员,十分优秀!