我一直在脚本中引用文件,用一段时间表示脚本的当前执行目录,例如“。\ images \ test.png”,但我发现我也可以指向同一个文件使用$ PSScriptRoot \ images \ test.png。
是否有人争论另一个?使用PS ISE时,前者需要在运行代码之前将CD放入我的脚本目录,但脚本通常会自动运行,因此PWD应始终本地化。还有另外一个案例我不考虑吗?
ED:我想我应该已经指明我要求一个独立的脚本,它是独立执行的(它是直接调用的,不会调用其他脚本),这可能会导致当前位置的边缘情况和当前脚本的位置是同一个。在我没有考虑的不太具体的条件下,我可以看到更多的分歧。答案 0 :(得分:1)
关于“存在差异”的问题的直接答案是肯定的,存在重大差异。
不同之处在于.
是对当前位置的引用。如果当前位置与脚本所在的位置不同,则它与$PSScriptRoot
不同。例如:
PS C:\> C:\Scripts\Test-Script.ps1
在Test-Script.ps1
内,.
会引用C:\
,但$PSScriptRoot
会引用C:\Scripts
。