我正在努力学习Powershell . 我有以下脚本:
$cmd = {
param($pid)
Write-Host $pid
}
$processes = Get-Process -Name notepad
foreach ($process in $processes)
{
$pid = $process.ID
Start-Job -ScriptBlock $cmd -ArgumentList $pid
}
我收到以下错误:
无法覆盖变量PID,因为它是只读或常量 . 在行:7 char:1 $ pid = 1 ~~~~~~~~ CategoryInfo:WriteError:(PID:String)[],SessionStateUnauthorizedAccessException FullyQualifiedErrorId:VariableNotWritable无法覆盖变量PID,因为它是只读或常量 . 在行:11 char:1 $ pid = $ process.ID ~~~~~~~~~~~~~~~~~~ CategoryInfo:WriteError:(PID:String)[],SessionStateUnauthorizedAccessException FullyQualifiedErrorId:VariableNotWritable Start-作业:无法覆盖变量pid,因为它是只读或常量 . 在行:12 char:5 Start-Job -ScriptBlock $ cmd -ArgumentList $ pid
我在这做错了什么?
1 回答
$PID
是reserved, automatic variable,其中包含会话的进程ID . 你无法设置它 .看到:
有关自动变量的完整列表和说明 .
编辑:
要输出所有记事本进程的进程ID: