本文介绍了PowerShell PSScriptRoot 为空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我运行 $PSScriptRoot 时,它返回 null.我使用的是 PS 版本 4.

When I run $PSScriptRoot it returns null. I am using PS version 4.

$val  = Join-Path -Path $PSScriptRoot WebPlatformInstaller_amd64_en-US.msi

错误

Join-Path:无法将参数绑定到参数路径",因为它是一个空字符串.

推荐答案

如果使用 ISE,请使用:

If using ISE use:

$psISE.CurrentFile.FullPath

ISE 启动时,会创建 $psISE,可用于确定 ISE 实例的当前路径.这是在 3.0 版本中引入的.

When ISE is launched, $psISE is created and can be used to determine the current path of the ISE instance. This was introduced in version 3.0.

参见 ISE 对象模型层次结构

如果你想在 shell 或 ISE 中获取路径,你可以使用这样的东西:

If you wanted to get the path in either shell or ISE you could use something like this:

if ($psISE)
{
    Split-Path -Path $psISE.CurrentFile.FullPath        
}
else
{
    $global:PSScriptRoot
}

这篇关于PowerShell PSScriptRoot 为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-16 15:12