.Bat文件无法运行powershell 7
我已经设置了一个非常简单的.bat文件来执行两个命令,以节省每次键入命令的时间,但是这些进程需要在powershell 7中运行 如果我手动运行powershell 7.0.3,然后运行命令,则一切正常,但运行.bat脚本启动.Bat文件无法运行powershell 7,powershell,batch-file,cmd,Powershell,Batch File,Cmd,我已经设置了一个非常简单的.bat文件来执行两个命令,以节省每次键入命令的时间,但是这些进程需要在powershell 7中运行 如果我手动运行powershell 7.0.3,然后运行命令,则一切正常,但运行.bat脚本启动 powershell -Version 7.0.3 -Command {XXXXX}; 向我显示一条消息“无法启动Windows PowerShell 7.0.3版,因为它未安装。” 如果我尝试在没有版本号的情况下运行它,那么它将在5.1.x中运行,然后失败,因为它需要
powershell -Version 7.0.3 -Command {XXXXX};
向我显示一条消息“无法启动Windows PowerShell 7.0.3版,因为它未安装。”
如果我尝试在没有版本号的情况下运行它,那么它将在5.1.x中运行,然后失败,因为它需要6+。tl;dr
请注意,您必须使用而不是来启动PowerShell[Core]v6+版本,并且必须调用所需版本的特定可执行文件。
在最简单的情况下:
pwsh -Command "XXXXX"
请注意,我已将{XXXXX}
替换为“XXXXX”
,因为您无法从PowerShell外部直接执行脚本块({…}
),只需将命令作为字符串提供即可
与Windows PowerShell不同,您可以同时安装多个PowerShell[Core]版本:
- 运行
(原文如此;请参见下文)以报告系统路径中的版本(在pwsh-version
环境变量,path
中列出的目录中位于第一位的实例)$env:path
- 如果它不是您想要的目标,则必须通过其完整路径调用它:
- 如果您想依赖标准安装位置,可以在Windows 7.0版上使用以下选项:
“C:\Program Files\PowerShell\7\pwsh.exe”
- 要可靠地确定目标版本的可执行位置,请为其打开一个交互式控制台,然后运行“
”$PSHOME\pwsh.exe”
- 如果您想依赖标准安装位置,可以在Windows 7.0版上使用以下选项:
Windows powershell CLI的
-Version
的-Version
参数不允许您仅启动任何powershell版本,只允许启动旧版本的Windows powershell:
- 事实上,唯一受支持的参数是
,即使这样,也只有在您以前安装了所需的.NET Framework旧版本时才能成功-Version 2
- 警告:虽然高于v5.1的版本(最新和最新的Windows PowerShell版本)会导致错误(您看到的版本),不受支持的较低版本会被悄悄忽略;实际上,
和-Version 1
都将启动版本2.0,而-Version 2
、-Version 3
和-Version 4
将被有效忽略并运行v5.1-使用-Version 5
$PSVersionTable.PSVersion
参数仍然存在,但其含义已更改:
它现在只报告一个版本号,即目标可执行文件自己的版本号(因此不带参数)。ps7的exe不是
powershell.exe
。。。它是pwsh.exe
。。。[咧嘴笑]