这是一个示例 PowerShell 脚本(它不起作用),它说明了我想要做什么:
$BuildRoot = '_Provided from script parameter_'
$Files = 'a.dll', 'b.dll', 'c.dll'
$BuiltFiles = $Files | Join-Path $BuildRoot
我有一个文件名列表和一个目录名,我想将它们全部连接在一起,很简单。问题是这样不行,因为Join-Path
参数-ChildPath
接受来自管道ByPropertyName的输入,所以报如下错误:
输入对象不能绑定到命令的任何参数,因为命令不接受管道输入,或者输入及其属性与接受管道输入的任何参数都不匹配。
我可以通过将行更改为以下内容来“修复”它:
$BuiltFiles = $Files | Select @{ Name = "ChildPath"; Expression = {$_}} | join-path $BuildRoot
基本上,select
操作是将对象转换为属性值。这行得通,但它引入了很多句法噪音来完成一些看似微不足道的事情。如果这是唯一的方法,那就这样吧,但我想让这个脚本在未来可供人们维护,乍一看这有点难以理解。
有没有更干净的方法来完成我在这里尝试做的事情?