當使用Get-Process時,我如何使用字符串作爲-Name?Powershell Get-Process字符串作爲名稱
$program = "MyProgram"
Get-Process $program
而不是
Get-Process -MyProgram
當使用Get-Process時,我如何使用字符串作爲-Name?Powershell Get-Process字符串作爲名稱
$program = "MyProgram"
Get-Process $program
而不是
Get-Process -MyProgram
PowerShell的將接受的名稱,不管是什麼。
Get-Process Firefox
將返回所有正在運行的Firefox。同樣,陣列將工作太:
Get-Process Firefox, iexplore
或者
$Proc = @("Firefox","iexplore")
Get-Process $Proc
明確聲明的陣列,然後檢查每個正在運行的進程。
當然,如前所述,您可以和應該使用-Name爲清晰。但沒有什麼改變。該腳本還是應該讀的東西,如:
$Proc = @("Firefox","iexplore")
Get-Process -Name $Proc
也有位置對象的方法:
Get-Process | Where-Object {$_.Name -eq "Firefox"}
要做到「東西」有了它,只是管對象爲腳本塊。
位置對象:
PS C:\> Get-Process | Where-Object {$_.Name -eq "Firefox"} | fl $_.ID
返回:
Id : 7516
Handles : 628
CPU : 1154.1421983
Name : firefox
得到處理$ PROC | FT ID,名稱
將返回:
Id Name
-- ----
7516 firefox
12244 iexplore
12640 iexplore
或者,你可以最後再使用通過他們所提到的的foreach對象,循環:
Get-Process $Proc | ForEach-Object {If($_.Path -contains "C:\Program Files*"){Write-host "Bad Directory"} else{ write-host "Safe"}}
如果.exe文件上面運行的是從C:\ Program Files *運行,然後寫出「Safe」,否則寫入「Bad Directory」。
似乎通過普及協議,回答你的問題是爲-Name
參數Get-Process
像這樣提供一個字符串數組:
Get-Process -Name MyProgramA,MyProgramB
你可以
Get-Process -Name MyProgramA,MyProgramB | ForEach-Object {$_}
:然後通過使用管道循環
你也可以使用一個變量:
Get-Process -Name $MyProgramStringArrray
爲什麼不使用'Get-Process -Name MyProgram'? –
例如,我試圖做的是創建一個數組爲字符串與不同的程序名稱,並做一個foreach循環,該foreach它將得到的過程,然後做一些事情 – ThingWings
'-Name'參數接受和字符串數組:'' Get-Process -Name powershell,chrome'。然後你可以通過管道輸出到'ForEach-Object'來循環。 –