使用 $PSScriptRoot 定义文件路径
Defining path to a file with $PSScriptRoot
这不完全是寻求帮助,更像是一种好奇心。我的脚本中有一个这样定义的文件的路径:
$RootDir = $PSScriptRoot
$ExcelFile = $RootDir + "\" + $File + ".xlsx"
$File
变量在脚本的前面定义。这个版本工作得很好,但是当我试图像这样将它简化为一行时,它没有工作:
$ExcelFile = $PSScriptRoot + "\" + $File + ".xlsx"
知道为什么第二个版本不起作用吗?它说找不到该文件。我看不出任何合乎逻辑的理由。
要构建路径,请使用 Join-Path
cmdlet:
$ExcelFile = Join-Path $PSScriptRoot ($File + '.xlsx')
在您的特定情况下,您还可以使用带有变量的简单字符串:
$ExcelFile = "${PSScriptRoot}${File}.xlsx"
但是 Join-Path
是更具弹性的方法,因为它 automatically takes care of the path separator 在元素之间。
这不完全是寻求帮助,更像是一种好奇心。我的脚本中有一个这样定义的文件的路径:
$RootDir = $PSScriptRoot
$ExcelFile = $RootDir + "\" + $File + ".xlsx"
$File
变量在脚本的前面定义。这个版本工作得很好,但是当我试图像这样将它简化为一行时,它没有工作:
$ExcelFile = $PSScriptRoot + "\" + $File + ".xlsx"
知道为什么第二个版本不起作用吗?它说找不到该文件。我看不出任何合乎逻辑的理由。
要构建路径,请使用 Join-Path
cmdlet:
$ExcelFile = Join-Path $PSScriptRoot ($File + '.xlsx')
在您的特定情况下,您还可以使用带有变量的简单字符串:
$ExcelFile = "${PSScriptRoot}${File}.xlsx"
但是 Join-Path
是更具弹性的方法,因为它 automatically takes care of the path separator 在元素之间。