我正在并行使用PowerShell
和PowerShell 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
答案 0 :(得分:3)
添加一行
#requires -PSEdition Core
PowerShell Core脚本开头的一行,
#requires -PSEdition Desktop
在常规PowerShell脚本的开头。
对于在两个版本中运行的脚本,只需省略该行即可。
-PSEdition <PSEdition-Name>
指定脚本所需的PowerShell版本。对于PowerShell Core,有效值为 Core ;对于Windows PowerShell,有效值为 Desktop 。
请勿使用其他扩展名,因为这会影响功能。例如,PowerShell不会以.ps1以外的扩展名来点源脚本。