该方法同样需要前一个命令的输出结果传递给下一个命令。但是与ByValue不同的是,通过ByPropertyName传输,第二个命令的多个参数可以被同时使用。如下命令:
Get-Service -Name *s | Stop-Process
我们再次将命令A的输出结果传递给gm, 之后再查看命令B的帮助语法。
其实该传输方式是很简单的,仅仅是寻找能够匹配参数名称的属性名称。不过shell也需要检查命令B中的该参数是否可以接收来自ByPropertyName管道传输过来的结果。这些信息我们都可以在帮助文档中看到。
比如,我们可以用记事本创建一个这样的CSV文档,并命名为Alias.csv
通过import-csv 命令我们可以看到我们可以看到这些内容;
我们将Import-Csv .\Alias.csv的输出结果传递给gm命令,这样就可以看出通过管道传输的到底是哪些内容了
通过help new-alias -full 命令,我们可以查看new-alias的哪些参数可以接收通过ByPropertyName传输过来的参数。
可以看出new-alias的-Name and -value参数可以接收通过ByPropertyName管道传输过来的数据,而且名称和数据类型与我们Alias.csv文件传输过来的相匹配。那么运行:Import-Csv .\Alias.csv | New-Alias 以后我们就成功的为csv文件中的三个命令创建了alias.