Powershell 脚本,其路径在字符串中带有方括号
Powershell script with a path with square brackets in a string for
我无法让我的 Powershell 脚本使用带有方括号的路径。
输入路径是 "c:\temp\yeah [就是这样]"
param (
[string]$folderPath = $env:folderPath
)
$folderPath = $folderPath + "\"
Add-Content -Path $folderPath"01-playlist.m3u" -Value "a file name.mp3"
我查看了“-literalpath”和 'Convert-path',但看不到如何在我的代码中实现它。
我相信你需要使用反引号。如果您是从 shell 执行此操作,则此方法有效
"abc ````[123````].txt"
请注意,如果用单引号引起来,反引号的数量会变为两个。
只需使用 -LiteralPath
而不是 -Path
。
Add-Content -LiteralPath "D:\Test\yeah [thats it]-playlist.m3u" -Value "a file name.mp3"
现在路径是字面上的,所以你不能像 Path
那样使用通配符。
顺便说一句,你的可选参数看起来很奇怪.. 除非你为它设置了环境变量,否则没有 $env:folderPath
此外,要组合路径和文件名,有一个名为 Join-Path 的 cmdlet。使用它比使用 $folderPath + "\"
这样的结构要好得多,后者很容易忘记反斜杠或添加太多反斜杠..
相反,我会写
$file = Join-Path -Path $folderPath -ChildPath '01-playlist.m3u'
Add-Content -LiteralPath $file -Value "a file name.mp3"
我无法让我的 Powershell 脚本使用带有方括号的路径。
输入路径是 "c:\temp\yeah [就是这样]"
param (
[string]$folderPath = $env:folderPath
)
$folderPath = $folderPath + "\"
Add-Content -Path $folderPath"01-playlist.m3u" -Value "a file name.mp3"
我查看了“-literalpath”和 'Convert-path',但看不到如何在我的代码中实现它。
我相信你需要使用反引号。如果您是从 shell 执行此操作,则此方法有效
"abc ````[123````].txt"
请注意,如果用单引号引起来,反引号的数量会变为两个。
只需使用 -LiteralPath
而不是 -Path
。
Add-Content -LiteralPath "D:\Test\yeah [thats it]-playlist.m3u" -Value "a file name.mp3"
现在路径是字面上的,所以你不能像 Path
那样使用通配符。
顺便说一句,你的可选参数看起来很奇怪.. 除非你为它设置了环境变量,否则没有 $env:folderPath
此外,要组合路径和文件名,有一个名为 Join-Path 的 cmdlet。使用它比使用 $folderPath + "\"
这样的结构要好得多,后者很容易忘记反斜杠或添加太多反斜杠..
相反,我会写
$file = Join-Path -Path $folderPath -ChildPath '01-playlist.m3u'
Add-Content -LiteralPath $file -Value "a file name.mp3"