为特定命名的 PowerShell 命令提供警告
Provide warning for specifically named PowerShell commands
是否可以配置一个 PowerShell 会话,以便在我 运行 特别命名为 command/function 时随时警告我?
举个例子(我希望每次使用以 "Set-" 开头的命令时收到警告):
If I run a Get-foo command, it runs that command without warning.
If I run a Set-foo command, then it provides a warning about changes being made.
您可以使用 $PSDefaultParameterValues
变量来定义默认值,许多 Set-
命令包含 'Confirm' 参数或 'WhatIf' 参数。你可以这样做:
$PSDefaultParameterValues = @{
"Set-*:Confirm"=$true
"Set-*:WhatIf"=$true
}
它的格式是一个哈希表,其中键是“:”,值是您要设置的值。 cmdlet 名称允许使用通配符,因此您可以轻松地将设置应用于所有 Set-
cmdlet。
如果你想使用 'WhatIf' 如果你想让命令实际做事而不是仅仅告诉你它会做什么,你只需 运行 带有 -WhatIf:$false
的命令已经完成了。
Get-Item C:\Temp\*.docx | Copy-Item -Dest "$home\desktop" -WhatIf:$false
有关该主题的详细信息,请参阅 this page。
是否可以配置一个 PowerShell 会话,以便在我 运行 特别命名为 command/function 时随时警告我?
举个例子(我希望每次使用以 "Set-" 开头的命令时收到警告):
If I run a Get-foo command, it runs that command without warning.
If I run a Set-foo command, then it provides a warning about changes being made.
您可以使用 $PSDefaultParameterValues
变量来定义默认值,许多 Set-
命令包含 'Confirm' 参数或 'WhatIf' 参数。你可以这样做:
$PSDefaultParameterValues = @{
"Set-*:Confirm"=$true
"Set-*:WhatIf"=$true
}
它的格式是一个哈希表,其中键是“:”,值是您要设置的值。 cmdlet 名称允许使用通配符,因此您可以轻松地将设置应用于所有 Set-
cmdlet。
如果你想使用 'WhatIf' 如果你想让命令实际做事而不是仅仅告诉你它会做什么,你只需 运行 带有 -WhatIf:$false
的命令已经完成了。
Get-Item C:\Temp\*.docx | Copy-Item -Dest "$home\desktop" -WhatIf:$false
有关该主题的详细信息,请参阅 this page。