PowerShell "an error occurred while creating the pipeline" #Requires -Version 3.0
PowerShell "an error occurred while creating the pipeline" #Requires -Version 3.0
尝试使用任何 #Requires 命令时,例如:
#Requires -Version 3.0
文本错误:
An error occurred while creating the pipeline.
+ CategoryInfo : NotSpecified: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : RuntimeException
我在 ISE 和控制台上测试了这个,结果相同,我的版本如下:
Name Value
---- -----
PSVersion 5.1.14409.1012
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.14409.1012
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
我在发布问题之前的最终测试提供了答案:
似乎“#Requires”命令旨在在脚本不满足要求时中断脚本而不是发布错误,并且在单行上测试它会导致错误。
要进行测试,请找到您的 PowerShell 版本(例如 5.1)并将以下转置 5.1 保存为您的 (major.minor) 版本:
#Requires -version 5.1
$PSVersionTable.PSVersion
Read-Host
这将适用于 ISE 和控制台,即使 'Run with PowerShell' 也能提供输出。
- 单独使用#Requires -(anything) 行将显示错误。
- 在 ISE 中 'Run selection' 可以工作,只要它伴随着另一行代码。
- 使用 ISE,如果 #Requires 参数与您的参数不匹配,它会抛出更具描述性的错误。如果在控制台中 运行,它将中断并关闭。
$versionMinimum = [Version]'5.0'
if ($versionMinimum -gt $PSVersionTable.PSVersion) {
throw "You need Powershell Version $versionMinimum to run this script"
}
尝试使用任何 #Requires 命令时,例如:
#Requires -Version 3.0
文本错误:
An error occurred while creating the pipeline. + CategoryInfo : NotSpecified: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : RuntimeException
我在 ISE 和控制台上测试了这个,结果相同,我的版本如下:
Name Value ---- ----- PSVersion 5.1.14409.1012 PSEdition Desktop PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...} BuildVersion 10.0.14409.1012 CLRVersion 4.0.30319.42000 WSManStackVersion 3.0 PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1
我在发布问题之前的最终测试提供了答案:
似乎“#Requires”命令旨在在脚本不满足要求时中断脚本而不是发布错误,并且在单行上测试它会导致错误。
要进行测试,请找到您的 PowerShell 版本(例如 5.1)并将以下转置 5.1 保存为您的 (major.minor) 版本:
#Requires -version 5.1
$PSVersionTable.PSVersion
Read-Host
这将适用于 ISE 和控制台,即使 'Run with PowerShell' 也能提供输出。
- 单独使用#Requires -(anything) 行将显示错误。
- 在 ISE 中 'Run selection' 可以工作,只要它伴随着另一行代码。
- 使用 ISE,如果 #Requires 参数与您的参数不匹配,它会抛出更具描述性的错误。如果在控制台中 运行,它将中断并关闭。
$versionMinimum = [Version]'5.0'
if ($versionMinimum -gt $PSVersionTable.PSVersion) {
throw "You need Powershell Version $versionMinimum to run this script"
}