ps1转换为exe后,$ MyInvocation.MyCommand.Name返回空值

时间:2019-06-11 14:37:35

标签: powershell

powershell脚本将其转换为.exe文件并执行后,输出不正确:

$MyScriptName = $MyInvocation.MyCommand.Name

上面是我的powershell代码的一部分,可以正常工作并将脚本名称保存在$MyScriptName变量中。

将.ps1-脚本转换为.exe文件并执行后,变量$MyScriptName的值为空。

1 个答案:

答案 0 :(得分:0)

将脚本转换为可执行文件后,脚本相关变量将不可用。您可以在 Github 上 Markus Scholtes 的 PS2EXE-GUI 版本 (Win-PS2EXE) 发布页面上找到有关它的信息:MDN

这是您需要添加到脚本中的代码。

if ($MyInvocation.MyCommand.CommandType -eq "ExternalScript")
{ $ScriptPath = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition }
else
{ $ScriptPath = Split-Path -Parent -Path ([Environment]::GetCommandLineArgs()[0]) }