Windows终端(wt.exe)不是一个命令行 shell。
它是命令行 shell(powershell、bash、cmd、python、perl等)的宿主。您需要告诉 WT.exe 要使用哪个命令行 shell 来调用您的脚本。
例如,cmd.exe 或通过 WinKey Run:
输入:
wt d:\temp\hello.ps1
这将会失败,伴随着……
[error 0x800700c1 when launching `d:\temp\hello.ps1']
尽管Windows终端以WT设置中的默认shell启动,但请执行以下操作...
wt.exe powershell D:\Scripts\hello.ps1
之所以能这样工作,是因为你告诉了wt.exe使用哪个shell来执行你的脚本。
根据您的评论进行更新。
但是运行脚本完成后,如何防止终端关闭?
你的目标shell需要提供一个方法来实现。Powershell(Windows和Core)通过-NoExit
开关提供这种功能。
powershell /?
PowerShell[.exe] [-PSConsoleFile <file> | -Version <version>]
[-NoLogo] [-NoExit] [-Sta] [-Mta] [-NoProfile] [-NonInteractive]
[-InputFormat {Text | XML}] [-OutputFormat {Text | XML}]
[-WindowStyle <style>] [-EncodedCommand <Base64EncodedCommand>]
[-ConfigurationName <string>]
[-File <filePath> <args>] [-ExecutionPolicy <ExecutionPolicy>]
[-Command { - | <script-block> [-args <arg-array>]
| <string> [<CommandParameters>] } ]
wt.exe powershell -NoProfile -NoLogo -NoExit D:\Scripts\hello.ps1
wt.exe pwsh -NoProfile -NoLogo -NoExit D:\Scripts\hello.ps1
如果您在调用其他 shell(如 bash、python、perl 等),那么它们也需要提供该功能。
wt.exe
命令行,并澄清您从哪里调用它。 - mklement0