我正在尝试从另一个开发人员调试powershell脚本。这是运行Powershell 5.1.16299.251这是给我问题的代码行(由 - >显示):
$CurrentProfile = $profile
$ConcourseSettings = Get-ChildItem $PSSessionRoot\Audatex.B2B.ConcourseUtilities.*\content\scripts\ConcourseSettings.ps1 -File
if($ConcourseSettings)
{
$ConcourseNugetPackage = Get-Item $PSSessionRoot\Audatex.B2B.ConcourseUtilities.*\content*
--> $ConcourseScriptsPath = $ConcourseNugetPackage | Get-Item -Path scripts
$ConcourseProjectTemplatesDir = "$ConcourseNugetPackage\dotnet" | Get-ChildItem -Filter templates
$GitIgnoreFile = "$ConcourseNugetPackage\dotnet" | Get-ChildItem -Filter gitignore -File
& $ConcourseSettings
}
如果我用test-path查看$ ConsourseSettings变量,它确实显示为true,所以我知道它正在获取该文件。这是我收到此错误的下一行:
Get-Item:输入对象不能绑定到命令的任何参数,因为该命令不接受管道输入或输入及其属性与任何接受管道输入的参数不匹配。
非常感谢任何帮助。
答案 0 :(得分:0)
您可以将可以转换为文件名字符串的对象传递给Get-Item
,也可以指定-Path
参数。但你无法做到这两点,这就是你得到错误的原因。 PowerShell可能无法知道要使用哪个值。
我想您正在尝试将$ConcourseNugetPackage
文件目录的路径分配给$ConcourseScriptsPath
。这样做:
$ConcourseScriptsPath = $ConcourseNugetPackage.DirectoryName