使用句点表示相对路径与$ PSScriptRoot之间是否存在差异?

时间:2017-12-12 19:24:25

标签: powershell

我一直在脚本中引用文件,用一段时间表示脚本的当前执行目录,例如“。\ images \ test.png”,但我发现我也可以指向同一个文件使用$ PSScriptRoot \ images \ test.png。

是否有人争论另一个?使用PS ISE时,前者需要在运行代码之前将CD放入我的脚本目录,但脚本通常会自动运行,因此PWD应始终本地化。还有另外一个案例我不考虑吗?

ED:我想我应该已经指明我要求一个独立的脚本,它是独立执行的(它是直接调用的,不会调用其他脚本),这可能会导致当前位置的边缘情况和当前脚本的位置是同一个。在我没有考虑的不太具体的条件下,我可以看到更多的分歧。

1 个答案:

答案 0 :(得分:1)

关于“存在差异”的问题的直接答案是肯定的,存在重大差异。

不同之处在于.是对当前位置的引用。如果当前位置与脚本所在的位置不同,则它与$PSScriptRoot不同。例如:

PS C:\> C:\Scripts\Test-Script.ps1

Test-Script.ps1内,.会引用C:\,但$PSScriptRoot会引用C:\Scripts