使用$ PSScriptRoot定义文件的路径

时间:2017-12-07 11:36:06

标签: powershell path filepath

这并不是在寻求帮助,更像是一种好奇心。我有一个在我的脚本中定义如下文件的路径:

$RootDir = $PSScriptRoot
$ExcelFile = $RootDir + "\" + $File + ".xlsx"

$File变量在脚本中先前定义。这个版本工作得很好,但是当我试图将它简化为单行时,它不起作用:

$ExcelFile = $PSScriptRoot + "\" + $File + ".xlsx"

知道为什么第二个版本不起作用?它说无法找到该文件。我看不出任何合乎逻辑的理由。

1 个答案:

答案 0 :(得分:0)

对于构建路径,请使用Join-Path cmdlet:

$ExcelFile = Join-Path $PSScriptRoot ($File + '.xlsx')

在您的特定情况下,您还可以使用带变量的简单字符串:

$ExcelFile = "${PSScriptRoot}\${File}.xlsx"

Join-Path是更具弹性的方法,因为它们之间的automatically takes care of the path separator