获取当前脚本文件

Jam*_*han 6 powershell

在 PS 脚本中,如何检索表示或指向脚本文件的对象?类似于 get-currentscript 的东西。

我真正想做的是检索脚本文件的创建和/或修改时间。据推测,这可以从脚本文件对象中检索。当然,我也可以为当前脚本文件使用一个愚蠢的旧文件规范。

Kel*_*ari 8

StackOverflow上查看这个答案:

虽然当前的答案在大多数情况下是正确的,但在某些情况下它不会给您正确的答案。如果您在脚本函数中使用,则:

$MyInvocation.MyCommand.Name
Run Code Online (Sandbox Code Playgroud)

返回函数的名称而不是脚本名称的名称。

function test {
    $MyInvocation.MyCommand.Name
}
Run Code Online (Sandbox Code Playgroud)

无论您的脚本如何命名,都会给您“测试”。获取脚本名称的正确命令始终是

$MyInvocation.ScriptName
Run Code Online (Sandbox Code Playgroud)

这将返回您正在执行的脚本的完整路径。如果您只需要脚本文件名,那么此代码应该可以帮助您:

Split-Path $MyInvocation.PSCommandPath -Leaf
Run Code Online (Sandbox Code Playgroud)