You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell运行时获取脚本路径:$MyInvocation.PSCommandPath返回空值

获取PowerShell脚本的可靠路径

直接使用$MyInvocation.PSCommandPath会出现返回空值的问题,这是因为该变量的行为依赖于具体的调用上下文,在相对路径调用脚本的场景下容易失效。

你可以用PowerShell v3及以上版本提供的更可靠的自动变量来解决:

  • $PSCommandPath:直接返回当前脚本的完整绝对路径,适用于需要完整脚本路径的场景
  • $PSScriptRoot:返回当前脚本所在的目录的完整绝对路径,适合需要拼接其他文件路径的场景

替换后的脚本示例

# 获取脚本完整绝对路径
$scriptFullPath = $PSCommandPath
Write-Host "脚本路径:$scriptFullPath"

# 示例:生成重启后可直接执行的命令(保留原参数)
$restartExecuteCommand = "powershell -ExecutionPolicy Bypass -File `"$scriptFullPath`" -file1 .\file1.exe -file2 .\file2.exe"
Write-Host "重启后执行命令:$restartExecuteCommand"

说明

用$PSCommandPath获取的路径是绝对路径,只要脚本文件没有被移动,重启系统后使用这个路径就能正常执行脚本,完全满足你的需求。

内容的提问来源于stack exchange,提问作者Wandering

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 14:23:03