gpt4 book ai didi

powershell - .Bat 文件无法运行 powershell 7

转载 作者:行者123 更新时间:2023-12-02 22:38:27 27 4
gpt4 key购买 nike

我已经设置了一个非常简单的 .bat 文件来执行几个命令以节省我每次都输入它们的时间,但是这些过程需要在 powershell 7 中运行。

如果我手动运行 powershell 7.0.3 然后运行命令一切正常,但是运行 .bat 脚本开始

powershell -Version 7.0.3 -Command {XXXXX};

向我显示一条消息“无法启动 Windows PowerShell 版本 7.0.3,因为它未安装。”

如果我尝试在没有版本号的情况下运行它,那么它会在 5.1.x 中运行,然后失败,因为它需要 6+。

最佳答案

tl;dr

作为Lee_Dailey注意,您必须使用pwsh.exe ,不是 powershell.exe , 要启动 PowerShell [Core] v6+ 版本,您必须调用所需版本的特定可执行文件

在最简单的情况下:

pwsh -Command "XXXXX"

请注意,我已将 {XXXXX} 替换为 "XXXXX",因为您无法直接执行脚本 block ({...}) 来自外部 PowerShell - 只需将命令作为字符串提供。


鉴于此 - 与 Windows PowerShell 不同 - 您可以安装 多个 PowerShell [Core] 版本并排:

  • 运行 pwsh -version(原文如此;见下文)以报告系统路径中的版本(在 PATH 中列出的目录中最先出现的实例> 环境变量,$env:PATH).

  • 如果它不是您想要的目标,您将必须通过其完整路径调用它:

    • 如果您想依赖标准安装位置,您可以在 Windows 7.0 版上使用以下位置:"C:\Program Files\PowerShell\7\pwsh .exe"

    • 要可靠地确定目标版本的可执行文件位置,请为其打开交互式控制台并运行 (Get-Process -Id $PID).Path


powershell.exe-Version 参数,Windows PowerShell CLI,< em>不允许只允许您启动任何 PowerShell 版本,只允许 版本的Windows PowerShell:

  • 事实上,唯一受支持的参数是 -Version 2,即使您之前安装了所需的 .NET Framework 旧版本,即使这样也只能成功。
  • 警告:虽然高于 v5.1 的版本(最新和最后一个 Windows PowerShell 版本)明显导致错误(您看到的错误), 不支持的低版本被悄悄忽略;实际上,-Version 1-Version 2 都将从 2.0 版开始,而 -Version 3-Version 4-Version 5 被有效忽略并运行 v5.1 - 使用 $PSVersionTable.PSVersion 验证

虽然 -Version 参数 仍然存在于 pwsh.exe 中,但 PowerShell [Core] v6+ CLI ,它的含义已经改变:它现在只是报告一个版本号,即目标可执行文件的自己的(因此不带任何参数)。

关于powershell - .Bat 文件无法运行 powershell 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63882509/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com