powershell - powersehll 中的变量、比较和运算符
问题描述
我希望这个问题能让你身体健康,
我有一个 powershell 代码,将列出我的计算机中的所有进程,内存消耗以 mb 为单位,它现在工作得很好,但问题是我想添加 -gt 操作以仅查找消耗大于 100mb 的进程
Get-Process | Select-Object Name,@{Name='WorkingSet(MB)';Expression={($_.ws / 1024kb)}} | format-table -autosize
这段代码的结果是:
Name WorkingSet(MB)
---- --------------
AppleMobileDeviceService 8.85546875
ApplicationFrameHost 32.40625
armsvc 3.6328125
atmgr 38.98828125
atmgr 38.83984375
audiodg 11.2109375
当我尝试添加 -gt 100mb 时:
PS C:\Users\Documents> Get-Process | Select-Object Name,@{Name='WorkingSet(MB)';Expression={($_.ws / 1024kb) -gt 100}} | format-table -autosize
Name WorkingSet(MB)
---- --------------
AppleMobileDeviceService False
ApplicationFrameHost True
armsvc False
atmgr False
所以结果是真或假,这不是我的期望,因为我只想拥有内存消耗超过 100 的进程(必须提到消耗不仅是真还是假:/)
解决这个问题后,我的计划是让脚本每隔一小时运行一次,并记录输出以防有超过 100mb 的进程使用,如果是,一旦我登录到笔记本电脑,将使用波纹管弹出警告消息代码 :
powershell -WindowStyle hidden -Command "& {[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('Some Services are using more than 100mb of memory','WARNING')}"
我感谢任何想法或建议,
任何人都可以在这里提供帮助,我真的很感激。
解决方案
#您可以这样做以获取超过 100MB 的进程
Get-Process |
? {(($_.ws/1mb) -ge 100) -eq $true} |
select name, @{name = 'Memory';expression = {($_.ws/1mb)}}
推荐阅读
- wordpress - Show posts from two specific category in WP_Query
- android-databinding - Is it possible to throw data to liveData via others class?
- c++ - syntax for calling a templated method
- java - How to create a Verification Key for my web Service from android?
- java - Is there a way to have an option that can run all previous cases in a switch statement?
- java - How to you justify/ center text in a showOptionDialog
- android - Can I add my layout map data to application android?
- flutter - flutter: getx RxList not run obx builder
- python - mysql.connector.errors.ProgrammingError: 1064 (42000): 你的 SQL 语法有错误;仍然
- python - 列表序列的最小差