每当我需要引用一个公共模块或脚本时,我喜欢使用相对于当前脚本文件的路径,这样,我的脚本总能找到库中的其他脚本.
那么,确定当前脚本目录的最佳标准方法是什么?目前,我正在做:
$MyDir = [System.IO.Path]::GetDirectoryName($myInvocation.MyCommand.Definition)
Run Code Online (Sandbox Code Playgroud)
我知道在模块(.psm1)中你可以使用它$PSScriptRoot来获取这些信息,但这不会在常规脚本(即.ps1文件)中设置.
获取当前PowerShell脚本文件位置的规范方法是什么?
我有这个:
Get-ChildItem c:\H\admin\contents
Run Code Online (Sandbox Code Playgroud)
是否可以做同样的事情,但相对于 powershell 脚本运行的文件夹。有时我在 c\H\admin 中运行脚本,有时在 c\H\user 目录中运行,所以我宁愿不必更改我的脚本中的所有路径。