首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PowerShell PSScriptRoot为空

PowerShell PSScriptRoot为空
EN

Stack Overflow用户
提问于 2017-06-10 13:52:23
回答 3查看 25K关注 0票数 23

当我运行$PSScriptRoot时,它返回null。我正在使用PS版本4。

代码语言:javascript
复制
$val  = Join-Path -Path $PSScriptRoot WebPlatformInstaller_amd64_en-US.msi

错误

连接路径:不能将参数'Path‘绑定到参数’Path‘,因为它是一个空字符串。

EN

回答 3

Stack Overflow用户

发布于 2018-08-22 20:22:36

如果使用ISE,请使用:

$psISE.CurrentFile.FullPath

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

请参阅ISE Object Model Hierarchy

如果您想在shell或ISE中获得路径,可以使用以下内容:

代码语言:javascript
复制
if ($psISE)
{
    Split-Path -Path $psISE.CurrentFile.FullPath        
}
else
{
    $global:PSScriptRoot
}
票数 23
EN

Stack Overflow用户

发布于 2017-06-10 14:14:15

您必须确保该表达式位于保存的.ps1脚本中。

在下列情况下可以发生这种情况:

  • 在PowerShell ISE控制台中使用此语句
  • 在没有脚本文件的PowerShell控制台中使用此语句
  • 您只将此表达式标记为在PowerShell ISE中执行。
票数 11
EN

Stack Overflow用户

发布于 2021-10-07 12:25:28

您可以使用

代码语言:javascript
复制
$PWD.Path 

它在PowerShell、ISE和Powershell控制台中工作。它返回当前工作目录。

$PSScriptRoot是保存当前脚本的根路径。当在命令中使用时,它将返回空白,因为没有脚本是您正在寻找的当前路径。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44474074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档