我正在编写一个Powershell脚本(在Win10机器上),需要向后兼容到Win7机器-它们附带了Powershell版本2.0。 我想在ISE中仅限于使用2.0版本可用的命令,或者在编写脚本时如果我越出了该版本范围,则抛出错误-有没有简单的方法来实现这一点?
我正在编写一个Powershell脚本(在Win10机器上),需要向后兼容到Win7机器-它们附带了Powershell版本2.0。 我想在ISE中仅限于使用2.0版本可用的命令,或者在编写脚本时如果我越出了该版本范围,则抛出错误-有没有简单的方法来实现这一点?
我不确定ISE中是否有这种方法(我认为没有),但您可以单独以2.0模式启动提示符(控制台宿主):
powershell.exe -Version 2.0
您可以将此与ISE结合使用,通过在ISE中编辑和保存脚本,然后在控制台主机中执行它。虽然不是理想的,但这也算是一种比较好的解决方法。
Set-StrictMode -Version 2.0
-版本2.0
请注意,您可以使用它来限制某些特定方法的功能。
关于命令行。这里没有任何解决方案。
我建议您使用Get-Help检查每个命令行。在那里可以在描述中获得版本。
例如:
Get-Help -Name "Invoke-RestMethod"
回答如下: ... 此 cmdlet 是在 Windows PowerShell 3.0 中引入的。 ...
您还可以在脚本顶部包含 requires 指令。
#requires -version 5
使用脚本所需的正确版本号,如2、3、4等。这将确保它在 ISE 中正常工作。
powershell -version 2
对脚本进行版本为2的命令行测试。 - Poorkenny