假设您在Powershell 4.0环境中编写脚本,并且希望确保该脚本在Powershell 3.0中有效。你如何确保其向后兼容?。
答案 0 :(得分:2)
好的问题,因为措辞对你正在寻找的东西更加具体。听起来像是在问requires。
#Requires
语句阻止脚本运行,除非Windows PowerShell 版本,模块,管理单元以及模块和管理单元版本 满足先决条件。如果不满足先决条件,则为Windows PowerShell 不运行脚本。
这样,在编写脚本时,您可以强制执行脚本的功能版本。
#Requires -Version 3.0
所以现在在构建和调试脚本时,您知道它可以在至少3.0的系统上运行。如果重要的话,它也会识别次要构建。
我最近遇到了满足自己需求的这个要求,并且现在意识到我上面提出的建议不会得到我认为你正在寻找的确切结果。您应该做的是当您运行脚本时调用新的PowerShell会话并使用{em>启动指定版本的Windows PowerShell (TechNet)的-Version
开关。
因此,在测试脚本时,请按以下方式运行:
powershell -Version 2 -File myscript.ps1
答案 1 :(得分:0)
这是获取“Get-ChildItem”版本的示例:
(Get-Command Get-ChildItem).Version
答案 2 :(得分:0)
使用所需命令的get-module,您可以像这样:
(Get-Module (Get-Command Get-NetTCPConnection).Source).PowerShellVersion
为澄清起见:
(Get-command <your cmdlet>). Source
为您提供安装位置