有没有办法删除具有相同进程名称的条目?

有没有办法删除具有相同进程名称的条目?,第1张

概述有没有办法删除具有相同进程名称的条目

我正在试图获得前10个内存消耗过程,并使用在这个问题中提供的代码作为答案。 它工作正常,但我不希望多个进程消耗不同的内存大小,我无法sorting,因为它的内存消耗是不同的。 代码是:

@echo off setlocal EnableDelayedExpansion (for /F "skip=1 tokens=1,2" %%a in ('wmic process get name^,workingsetsize') do ( set "size= %%b" echo !size:~-10!:%%a )) > wmicc.txt set i=0 for /F "skip=1 delims=" %%a in ('sort /R wmicc.txt') do ( echo %%a set /A i+=1 if !i! equ 25 goto :end ) :end

我可以得到的输出为:

96931840:IExplore.exe 82161664:explorer.exe 42319872:svchost.exe 31469568:DWm.exe 25690112:SearchIndexer.exe 17002496:taskhostex.exe 11007590:VCExpress.exe 8033894:avp.exe 7190528 :Skype.exe 7000416 :SkypebrowserHost.exe

代替现有代码的输出:

96931840:IExplore.exe 82161664:explorer.exe 42319872:svchost.exe 33656832:svchost.exe 31469568:DWm.exe 26943488:IExplore.exe 25690112:SearchIndexer.exe 18550784:svchost.exe 17002496:taskhostex.exe 16343040:svchost.exe

是否有可能从脚本知道cpu利用率

从.bat调用Gradle会导致批处理执行停止

windows批处理和Java:结合-XX:OnOutOfMemoryError命令和批处理参数

windows批处理命令选项卡分隔符

replacestring中的字符

批量编码开始命令错误

两个inputvariables在一个简单的bat文件中

我怎么能通过批处理窗口效果

批次扫描dirs需要跳过定义的dirs

具体的文件大小检查与batch file

@echo off setlocal EnableDelayedExpansion set num=25 set /A skip=-num for /F "skip=1 tokens=1,workingsetsize') do ( set "size= %%b" set "size=!size:~-10!" if not defined proc[%%a] ( set "proc[%%a]=!size!" set "size[!size!:%%a]=1" set /A skip+=1 ) else if %%b gtr !proc[%%a]! ( set "size[!proc[%%a]!:%%a]=" set "proc[%%a]=!size!" set "size[!size!:%%a]=1" ) ) if %skip% lss 1 (set "skip=") else set "skip=skip=%skip%" for /F "%skip% tokens=2 delims=[]" %%a in ('set size[') do echo %%a

输出示例:

5517312:NisSrv.exe 5537792:HD-LogrotatorService.exe 5939200:spoolsv.exe 6062080:WUDFHost.exe 6168576:igfxpers.exe 6279168:conhost.exe 6369280:wmpnetwk.exe 6533120:hkcmd.exe 6692864:igfxtray.exe 8073216:notepad.exe 8077312:WMIC.exe 8105984:taskhost.exe 9306112:lsass.exe 11157504:winlogon.exe 11767808:taskhostex.exe 13402112:SkyDrive.exe 16629760:TabTip.exe 17121280:SearchIndexer.exe 26120192:HD-Agent.exe 32325632:csRSS.exe 36429824:svchost.exe 43114496:DWm.exe 101998592:explorer.exe 110260224:MsMpEng.exe 114425856:Chrome.exe

@echo off setlocal EnableDelayedExpansion for /f "delims==" %%a in ('set @ 2^>nul') do set "%%a=" (for /F "skip=1 tokens=1,workingsetsize') do ( set "size= %%b" echo !size:~-10!:%%a )) > wmicc.txt set i=0 for /F "skip=1 delims=" %%a in ('sort /R wmicc.txt') do ( for /f "tokens=1*" %%p in ("%%a") do ( rem the following line doesn't work rem if not defined "@%%q" rem the preceding line doesn't work SET "flag=" FOR /f "tokens=1*delims==" %%v IN ('set @%%q 2^>nul') DO IF /i "%%v"=="@%%q" SET "flag=Y" IF NOT defineD flag ( set "@%%q=Y" echo %%a set /A i+=1 if !i! equ 25 goto :end ) ) ) :end

这将整个行标记为读入%%p,q因此%%q包含进程名称。 然后它检查变量@processname是否被定义,如果不是,则生成报告行并设置@processname以便第一次提到是现在定义的变量的最后一个。

第一行设计为将任何现有的@*变量设置为空 ; 如果不存在@*变量,并且脱字符号>来告诉cmd , >是要执行的命令的一部分,而不是for ,则2^>nul抑制错误消息。

[后来]

看来, if defined "varname"我if defined "varname"我发明并不实际工作,虽然它似乎工作,当我测试它。 我已经用那些能够正常工作的代码替换掉了这个指令。

总结

以上是内存溢出为你收集整理的有没有办法删除具有相同进程名称的条目?全部内容,希望文章能够帮你解决有没有办法删除具有相同进程名称的条目?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1278998.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-09
下一篇2022-06-09

发表评论

登录后才能评论

评论列表(0条)

    保存