在PowerShell Core脚本中使用.pwsh而不是.ps1扩展名?

时间:2019-08-29 06:58:44

标签: powershell file-extension powershell-core

我正在并行使用PowerShellPowerShell Core。 并非我为“大型” PowerShell编写的所有脚本都可以在PowerShell Core中运行,反之亦然。

为避免混乱,我在考虑是否应该使用两个文件扩展名:

  • .ps1:PowerShell
  • .pwsh:PowerShell Core

Windows 中,扩展名比在 Unix 系统中,shebang(#!/ bin / mytool)将有助于解决问题的系统更重要。

使用两个扩展名“最佳实践”还是有更好的选择?

其他:我不确定从命令行/终端调用脚本时,PowerShell是否会执行.pwsh脚本。

我在Unix / Linux环境中发现了类似的问题。 https://unix.stackexchange.com/questions/182882/use-sh-or-bash-extension-for-bash-scripts

1 个答案:

答案 0 :(得分:3)

添加一行

#requires -PSEdition Core

PowerShell Core脚本开头的一行,

#requires -PSEdition Desktop

在常规PowerShell脚本的开头。

对于在两个版本中运行的脚本,只需省略该行即可。

来自documentation

  

-PSEdition <PSEdition-Name>

     

指定脚本所需的PowerShell版本。对于PowerShell Core,有效值为 Core ;对于Windows PowerShell,有效值为 Desktop

请勿使用其他扩展名,因为这会影响功能。例如,PowerShell不会以.ps1以外的扩展名来点源脚本。