首页 > 解决方案 > Powershell 参数绑定 ByPropertyName 和 ByValue

问题描述

我想停止一个名为“ALG”的服务,所以我使用: "alg" | stop-service 它有效。Get-help stop-service -parameter name说:管道输入:true(ByPropertyName,ByValue)和“alg”是“ByPropertyValue”对吗?我想停止一个名为记事本的进程,所以我使用: "notepad" | stop-process,我得到一个错误。 Get-help stop-process -parameter name 说:管道输入真(ByPropertyName)和“记事本”是“ByPropertyName”?为什么会出现这个错误?谢谢你的帮助

标签: powershellparameterbinding

解决方案


如果要通过属性名称将对象的值绑定到参数,则:

  1. 传递一个具有适当命名属性的对象:
[pscustomobject]@{Name='notepad'} |Stop-Process
# or, for older versions of powershell:
'notepad' |Select @{Name='Name';Expression={$_}} |Stop-Process
  1. 将管道表达式显式绑定到命名参数:
'notepad' |Stop-Process -Name {$_}

推荐阅读