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

PowerShell中$PWD与Get-Location的区别?多运行空间场景差异?

PowerShell中$PWD与Get-Location的差异解析

核心结论

$PWD就是Get-Location的预定义自动变量别名,无论常规场景还是多运行空间场景,二者返回的值完全一致,没有差异。

常规场景表现

  • 直接验证:执行$PWD -eq Get-Location会返回True,说明二者指向同一个路径对象。
  • 类型一致:两者返回的都是System.Management.Automation.PathInfo类型(若在PSDrive子路径下则为System.Management.Automation.ChildPathInfo),可通过$PWD.GetType()和Get-Location | Get-Member查看细节。
  • 本质关联:$PWD是PowerShell预定义的自动变量,每次读取它的值时,底层就是调用Get-Location命令,结果完全同步。

多运行空间场景表现

PowerShell的运行空间(Runspace)是独立的执行上下文,每个运行空间拥有专属的Shell位置:

  • 不管是$PWD还是Get-Location,都基于当前所在运行空间的上下文返回值,不同运行空间的结果相互独立。
  • 举例:创建新运行空间并切换其当前目录后,在该空间内调用$PWD或Get-Location,返回的都是新空间的当前路径,不会与主运行空间的位置混淆。

额外提醒

二者返回的是PowerShell Shell层面的「运行空间当前位置」,和.NET进程级的[System.Environment]::CurrentDirectory完全无关——后者是全局进程目录,而$PWD/Get-Location是运行空间级别的上下文目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 06:37:03