每当需要引用公共模块或脚本时,我都喜欢使用相对于当前脚本文件的路径。这样,我的脚本总能在库中找到其他脚本。
那么,确定当前脚本目录的最佳标准方法是什么?目前,我正在做:
$MyDir = [System.IO.Path]::GetDirectoryName($myInvocation.MyCommand.Definition)
我知道可以在模块(.psm1)中使用$PSScriptRoot
此信息,但是在常规脚本(即.ps1文件)中却没有设置此信息。
获取当前PowerShell脚本文件位置的规范方法是什么?
# 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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句