小编典典

确定当前 PowerShell 脚本位置的最佳方法是什么?

all

每当我需要引用一个通用模块或脚本时,我喜欢使用相对于当前脚本文件的路径。这样,我的脚本总能在库中找到其他脚本。

那么,确定当前脚本目录的最佳标准方法是什么?目前,我正在做:

$MyDir = [System.IO.Path]::GetDirectoryName($myInvocation.MyCommand.Definition)

我知道在模块 (.psm1) 中您可以$PSScriptRoot用来获取此信息,但在常规脚本(即 .ps1 文件)中没有设置。

获取当前 PowerShell 脚本文件位置的规范方法是什么?


阅读 82

收藏
2022-03-06

共1个答案

小编典典

PowerShell 3+

# This is an automatic variable set to the current file's/module's directory
$PSScriptRoot

PowerShell 2

在 PowerShell 3 之前,没有比查询
MyInvocation.MyCommand.Definition通用脚本的属性更好的方法了。我在我拥有的每个 PowerShell
脚本的顶部都有以下行:

$scriptPath = split-path -parent $MyInvocation.MyCommand.Definition
2022-03-06