有没有办法知道Powershell中的cmdlet版本是为了向后兼容?

问题描述 投票:2回答:3

假设您在Powershell 4.0环境中编写脚本,并且希望确保该脚本在Powershell 3.0中有效。你如何确保其向后兼容?

powershell powershell-v2.0 powershell-v3.0
3个回答
2
投票

好的问题因为措辞对你正在寻找的东西更加具体。听起来像是在要求requires

除非满足Windows PowerShell版本,模块,管理单元以及模块和管理单元版本先决条件,否则qqxxswpoi语句会阻止脚本运行。如果不满足先决条件,则Windows PowerShell不会运行该脚本。

这样,在编写脚本时,您可以强制执行脚本的功能版本。

#Requires

所以,现在在构建和调试脚本时,您知道它可以在至少3.0的系统上运行。如果重要的话,它也会识别次要构建。


我最近遇到了这个需求以满足我自己的需求,并且现在意识到我上面建议的内容不会得到我认为你正在寻找的确切结果。您应该做的是当您运行脚本时调用新的PowerShell会话并使用启动指定版本的Windows PowerShell(#Requires -Version 3.0 )的-Version开关。

因此,当您测试脚本时,请按以下方式运行:

TechNet

0
投票

这是获取“Get-ChildItem”版本的示例:

powershell -Version 2 -File myscript.ps1

0
投票

使用所需命令的get-module,你可以这样做:

(Get-Command Get-ChildItem).Version

为了澄清:

  • (Get-Module (Get-Command Get-NetTCPConnection).Source).PowerShellVersion 为您提供安装位置
© www.soinside.com 2019 - 2024. All rights reserved.