Tho*_*ner 4 powershell cmd batch-file
我设置了一个非常简单的 .bat 文件来执行几个命令,这样我就不用每次都输入它们了,但是这些进程需要在 powershell 7 中运行。
如果我手动运行 powershell 7.0.3 然后运行命令一切正常,但是运行 .bat 脚本开始
powershell -Version 7.0.3 -Command {XXXXX};
Run Code Online (Sandbox Code Playgroud)
向我显示一条消息“无法启动 Windows PowerShell 版本 7.0.3,因为尚未安装。”
如果我尝试在没有版本号的情况下运行它,那么它会在 5.1.x 中运行,然后会失败,因为它需要 6+。
太长了;博士
正如Lee_Dailey所指出的,您必须使用pwsh.exe而不是powershell.exe来启动PowerShell [Core] v6+版本,并且必须调用所需版本的特定可执行文件。
在最简单的情况下:
pwsh -Command "XXXXX"
Run Code Online (Sandbox Code Playgroud)
请注意,我已替换{XXXXX}为,因为您无法从PowerShell外部"XXXXX"直接执行脚本块( ) - 只需以字符串形式提供命令。{...}
鉴于此 - 与 Windows PowerShell 不同 -您可以并排安装多个PowerShell [Core] 版本:
运行pwsh -version(原文如此;见下文)以报告系统路径中的版本(环境PATH变量中列出的目录中第一个的实例$env:PATH)。
如果它不是您想要的目标,您必须通过其完整路径调用它:
如果您想依赖标准安装位置,您可以在 Windows 7.0 版本上使用以下命令: "C:\Program Files\PowerShell\7\pwsh.exe"
要可靠地确定目标版本的可执行位置,请为其打开交互式控制台并运行(Get-Process -Id $PID).Path
-Versionpowershell.exeWindows PowerShell CLI的参数不允许您启动任何PowerShell 版本,而只能启动旧版本的Windows PowerShell:
-Version 2,而且只有当您之前安装了所需的旧版 .NET Framework 时,该参数才会成功。-Version 1和-Version 2都将启动版本 2.0,而-Version 3、-Version 4和-Version 5被有效忽略并运行 v5.1 - 验证$PSVersionTable.PSVersion虽然-Version参数仍然存在于pwsh.exePowerShell [Core] v6+ CLI 中,但其含义已发生变化:它现在仅报告版本号,即目标可执行文件自己的版本号(因此不带任何参数)。
| 归档时间: |
|
| 查看次数: |
2508 次 |
| 最近记录: |