PowerShell:版本2是否与版本1脚本无缝协作?

时间:2009-07-15 20:21:45

标签: powershell

跳转到PowerShell2后,我会遇到现有脚本会遇到什么样的问题(如果有的话)?

我需要在Windows XP生产盒上自动执行某些任务,而PowerShell符合要求。但是,我无法安装版本2,直到它成为官方版本,因此我目前唯一的选择是安装版本1并编写PS1脚本。

编辑:寻找我将遇到的各种问题的真实世界常见情景。

1 个答案:

答案 0 :(得分:4)

YES *

除非出于某种罕见的原因,您的某个v1脚本恰好使用与v2中包含的命令行同名的命令行开关:

  

Windows PowerShell 2.0向后兼容Windows PowerShell 1.0。   为V1编写的所有脚本都应该在V2中运行。

     

在Windows PowerShell 1.0中,当两个Windows PowerShell管理单元导出具有相同名称的cmdlet时,会生成运行时错误。

     

在Windows PowerShell 2.0中,当您键入命令名称时,会运行添加到会话的最后一个cmdlet。

     

Source: PowerShell V2 - backward compatibility (Windows PowerShell Blog) ...

     

(via google)

但显然有适当的解决方法:

  

特别是对于企业环境,了解更新技术现在是否意味着不兼容的技术非常重要。对于PowerShell v2,您在v1中设计的任何脚本都是完全可互操作的。同样重要的是要注意,如果您在v2中设计了使用仅在该版本中可用的cmdlet的脚本,则可以使用特殊语法来检查在执行脚本之前使用的PowerShell的版本。尼斯!

     

Source: PowerShell 2.0 Coming Soon – What’s New? (compellent.com) ...

     

(via google)

*免责声明:我对powershell一无所知,但它可能就像perl-for-windows一样。但我引用的来源似乎是“来源”。所以我想它的确非常准确。