如何在 PowerShell 中获取当前正在执行的脚本的路径?
powershellmicrosoft technologiessoftware & coding更新于 2026/2/10 3:52:17
要获取脚本的完整路径,我们需要使用 $myInvocation 命令。这是一个自动变量,仅在脚本或函数执行时调用。
$MyInvocation.MyCommand.Path 命令用于获取脚本所在位置的完整路径,而 $MyInvocation.MyCommand.Name 命令用于获取脚本的名称。
示例
$mypath = $MyInvocation.MyCommand.Path Write-Output "脚本路径:$mypath"
输出
PS C:\WINDOWS\system32> C:\Temp\TestPS.ps1 脚本路径:C:\Temp\TestPS.ps1
请注意,我们从 System32 目录运行上述脚本,输出路径为 C:\temp。要获取脚本目录,可以使用 Split-Path 命令。例如:
Split-Path $mypath -Parent
要获取脚本名称,可以使用前面提到的 Name 属性。
示例
$ScriptName = $MyInvocation.MyCommand.Name Write-Output "`n脚本名称 : $scriptname"
输出
PS C:\WINDOWS\system32> C:\Temp\TestPS.ps1 脚本名称:TestPS.ps1
直接从控制台运行上述命令时,不会有任何输出,因为 $MyInvocation 仅在脚本被调用时才会产生输出。例如:


