$ MyInvocation和$ PSScriptRoot之间的区别

时间:2017-08-09 19:16:57

标签: powershell difference

编辑以更好地解释整体问题:

在PowerShell中,使用$PSScriptRoot$MyInvocation.MyCommand.Path获取正在运行的脚本的当前根目录(如果有)之间的区别是什么?

我的研究只表明这两者基本上是可以互换的,而且直到PowerShell v3才会引入。我也被告知,$PSScriptRoot虽然不漂亮/优雅,但却有一些$PSScriptRoot不完全支持的功能。

所以整体问题是:

这两个PowerShell命令之间是否有任何优点和/或缺点?是否存在您更愿意使用其中一个的情况?

@Mathias R. Jessen:我能理解你如何快速判断这个问题;但是,它不是重复的,尤其不是你指向的问题的副本,它询问“我如何获得根目录”。我的问题不是我如何获得根目录,这是两个命令之间的功能差异。当你或其他任何人回来审查我的修订时,我被迫重新提出这个问题。

例如:

如果我远程运行此脚本或者我正在使用Jenkins调用基本脚本而我选择使用$MyInvocation.MyCommand.Path而不是$PSScriptRoot,那么会出现问题还是基本上会有相同的问题功能?

如果我无法确定我选择运行脚本的服务器是否具有PSv3,但我的脚本是使用PSv3编写的,是否会使用{{1}}导致问题?

提前谢谢。

0 个答案:

没有答案