我正在尝试找到一种方法来在一个字符串中获取进程的完整命令行,以检测java应用程序是否已在运行。该程序允许多个实例,但我想阻止打开多个实例。该命令的输出添加了4个我想要删除的返回车厢。这是我使用的:
$processRunning = Get-WmiObject Win32_Process -Filter "name= 'javaw.exe'" | select -ExpandProperty CommandLine
我遇到的问题是上面的行添加了返回支架,因为命令行很长。
我尝试使用Format-Table和Format-List进行不同的格式化。
我还尝试了 -replace "`r", ""
和 | Out-String -Width 2048
。
我想像这样匹配结果:
$startProcess = ([wmiclass]"win32_process").Create($processToStart)
if ($processRunning -like $commandLine )
{
Write-Output "Program is already running"
}
else
{
Write-Output "Starting Process"
$startProcess
Wait-Process -Id $startProcess.ProcessId
}
Wait-Process
命令不起作用,因为显然 $startProcess.ProcessId
为空或为空。
谢谢