PowerShell并发控制-命令行参数之四问

时间:2023-12-21 20:04:32

传教士问:

win下如何 获取进程命令行,及命令行参数?

传教士答:

可以用这个powershell命令(实际上是wmi查询):

(get-wmiobject -query "select * from win32_process").commandline

传教士问:

俺觉得这样用挺不爽,为啥么任务管理器中有,“命令行”这个列(任务管理器--》点详细信息---》点名称---》点右键---》选择列---》选中命令行),

但powershell中的get-process命令却没有.commandline属性?

传教士答:

对,但目前只坐等powershell mvp,吃人饭拉点人屎,跟微软呼吁下。

传教士问:

win下如何获取脚本并发数?及进程并发数?

可以检测任何进程,如exe等。可以检测任何(扩展名)脚本的并发数。但是感脚用wmi有点别扭。

传教士答:

#检测ps脚本进程并发数.ps1
[string]$想要检测的_运行中的脚本名 = 'txt电子书阅读器v3.ps1'
$当前用户下_所有命令的命令行 = (get-wmiobject -query "select * from win32_process").commandline
#当前用户权限下运行,则获得当前用户的。管理员权限运行,则获取所有用户的。 $检测出的脚本进程并发数 = 0
foreach ($temp001 in $当前用户下_所有命令的命令行)
{
  if ($temp001 -like "*$想要检测的_运行中的脚本名*")
  {  
    $检测出的脚本进程并发数++
  }
}
write-host "检测出的脚本进程并发数 $检测出的脚本进程并发数" 

powershell 传教士 原创文章 2015-10-17 允许转载,但必须保留名字和出处,否则追究法律责任

传教士问:

win下获取脚本并发数,有啥么用捏?

传教士答:

获取脚本并发数量这个功能,还是比较常用的。

比如我4有个cpu核心,我就想让脚本4进程跑。每个进程一个脚本,每个脚本,通过给脚本传递参数,分给它一个任务块。

这样我就可以用任务计划+一个ps脚本,定期检查脚本并发数。 如果分发给某脚本的任务块跑完了,即这脚本退出了,就可以增加脚本任务进程。