如何强制使用 Win-PS2EXE 打包的 EXE Powershell 脚本在 Powershell 7 上运行

问题描述 投票:0回答:1

我有一个 PowerShell 脚本,我使用 Win-PS2EXE 将其转换为 EXE。问题是我正在使用

Foreach -parallel
并且它不能与 PowerShell 5.0 一起使用,我需要这个 EXE 使用最新的 shell 运行,并且我已经尝试使用
#Requires -Version 7.0
并且它仍然与旧版本一起运行。

尝试过: #需要-版本7.0 #需要 -PSEdition 桌面版

powershell forms foreach parallel.foreach
1个回答
0
投票

您可以在脚本开头使用此脚本来阻止在 Powershell 7.0 以外的版本中使用脚本:

# At beginning of .ps1
if ($PSVersionTable.PSVersion -ne [Version]"7.0") {
  # Re-launch as version 7 if we're not already
  powershell -Version 7.0 -File $MyInvocation.MyCommand.Definition
  exit
}

# Your script code

但是,例如对于 Powershell 7.2.4,正确的语法是:

#Requires -Version <N>[7.2.24.<n>]
© www.soinside.com 2019 - 2024. All rights reserved.