如何获取我执行的PowerShell脚本的目录?

如何获取我执行的PowerShell脚本的目录?,powershell,Powershell,我运行一个PowerShell脚本。如何获取我运行的脚本的目录路径 如何执行此操作?PowerShell 3具有$PSScriptRoot: 包含从中运行脚本的目录 在Windows PowerShell 2.0中,此变量仅在脚本模块(.psm1)中有效。从Windows PowerShell 3.0开始,它在所有脚本中都有效 不要被这些拙劣的措辞所愚弄PSScriptRoot是当前文件的目录 在PowerShell 2中,您可以自己计算$PSScriptRoot的值: # PowerShell

我运行一个PowerShell脚本。如何获取我运行的脚本的目录路径


如何执行此操作?

PowerShell 3具有
$PSScriptRoot

包含从中运行脚本的目录

在Windows PowerShell 2.0中,此变量仅在脚本模块(.psm1)中有效。从Windows PowerShell 3.0开始,它在所有脚本中都有效

不要被这些拙劣的措辞所愚弄
PSScriptRoot
是当前文件的目录

在PowerShell 2中,您可以自己计算
$PSScriptRoot
的值:

# PowerShell v2
$PSScriptRoot = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition

是否要进程的当前工作目录?否,我想知道哪个目录包含此脚本。如果知道文件名,可以使用
get childItem
查找其路径。我使用get childItem获取其路径,但结果似乎包含了太多信息,而不仅仅是路径……您需要使用一些筛选。看看我先前评论中的链接。那可能有用。为什么要投反对票?帮我把答案写得更好。请提供反馈!我对powershell有点陌生,您能扩展一下$MyInvocation.MyCommand.Definition吗?我在很多帖子中都看到了这一点,它看起来像一个占位符,但为什么呢?同意:我必须键入或用我的脚本名替换“MyCommand.Definition”吗?我刚刚在命令提示符下尝试过,但没有得到任何结果?@monojohnny$MyInvocation在控制台上不可用,仅在函数和脚本中可用。@它不是占位符$MyInvocation是表示调用当前代码的上下文的。它附带了各种各样的元数据。