从 Powershell ISE 和 Windows 资源管理器运行脚本的不同行为
Posted
技术标签:
【中文标题】从 Powershell ISE 和 Windows 资源管理器运行脚本的不同行为【英文标题】:Different behaviour running a script from Powershell ISE and Windows Explorer 【发布时间】:2020-12-19 00:55:48 【问题描述】:当我从 Windows 资源管理器和 ISE 运行命令时,为什么我的命令表现不同?
我有一个来自 Test1.ps1 的简单命令(Test1 和 Test2 都在同一个文件夹中)
& ".\Test2.ps1"
当我从 Windows 资源管理器运行它时,会执行脚本 Test2.ps1。但是,当我在 ISE 中运行它时,它不起作用,并且出现以下错误:
& : Die Benennung ".\Test2.ps1" wurde nicht als Name eines Cmdlet、einer Funktion、einer Skriptdatei oder eines ausführbaren Programms erkannt。 Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang。 在 Zeile:1 Zeichen:3 +& ".\Test2.ps1"
CategoryInfo : ObjectNotFound: (.\Test2.ps1:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
对不起德语:它基本上说:“.\Test2.ps1”没有作为 cmdlet、函数、脚本文件或已执行程序的名称找到。检查名称的输入或路径是否正确
【问题讨论】:
PowerShell ISE 是 no longer actively developed 和 there are reasons not to use it(底部),特别是无法运行 PowerShell [Core] 6+。提供跨平台最佳 PowerShell 开发体验的积极开发的编辑器是 Visual Studio Code,结合其 PowerShell extension。 【参考方案1】:请检查脚本窗格中显示的工作目录。 ISE 通常从您的用户配置文件开始。 请先更改脚本的路径。
Set-Location -Path "C:\ScriptLocation\"
或者调用脚本时使用完整路径:
& "C:\ScriptLocation\Test2.ps1"
当您从资源管理器运行它时,PowerShell 会在同一个文件夹中启动,这就是它能够找到脚本的原因。
【讨论】:
以上是关于从 Powershell ISE 和 Windows 资源管理器运行脚本的不同行为的主要内容,如果未能解决你的问题,请参考以下文章
从 Powershell ISE 中的另一个 PS1 脚本调用 PowerShell 脚本 PS1
powershell 设置Powershell ISE fon和颜色
powershell PowerShell函数用于扩展ISE和文件的别名