我正在运行一个脚本,其中包含$ FileName变量,其中包含带空格的绝对路径。由于目录名称和文件名中的空间,脚本无法在不查找实际路径的情况下执行。我只需要在双引号中添加$ FilePath。我应该如何在字符串的开头和结尾添加双引号?
例如
"X:\Movies\File One\File One.txt"
脚本:
$FilePath = Join-Path $Path $($Dir + "\" + $File + “.txt”)
$FilePath
Current OutPut:
X:\Movies\File One\File One.txt
答案 0 :(得分:3)
除了反引号转义符(`
)之外,您还可以使用-f
格式运算符:
$FilePath = Join-Path $Dir -ChildPath "$File.txt"
$FilePathWithQuotes = '"{0}"' -f $FilePath
这将确保$FilePath
在放入字符串
答案 1 :(得分:1)
$FilePath = Join-Path $Path $($Dir + "\" + $File + “.txt”)
"`"$FilePath`""
...会输出......
"X:\Movies\File One\File One.txt"
这是variable expansion in strings的一个例子。
当然,如果您要引用的路径本身可以包含"
引号,例如在将来" powershell for linux"中,您需要转义{{ 1}}以特定于上下文的方式。
答案 2 :(得分:0)
其中任何一种都可以工作:
$FilePath1 = """" + (Join-Path $Path $($Dir + "\" + $File + ".txt")) + """"
$FilePath2 = "`"" + (Join-Path $Path $($Dir + "\" + $File + ".txt")) + "`""
$FilePath3 = '"{0}"' -f (Join-Path $Path $($Dir + "\" + $File + ".txt"))
$FilePath4 = '"' + (Join-Path $Path $($Dir + "\" + $File + ".txt")) + '"'
$FilePath5 = [char]34 + (Join-Path $Path $($Dir + "\" + $File + ".txt")) + [char]34
答案 3 :(得分:0)
最快的解决方案(但有点难看),可以在任何字符串周围加上引号:
$dir = "c:\temp"
$file = "myfile"
$filepath = [string]::Join("", """", $dir,"\", $file, ".txt", """")