如何在PowerShell中拼接字符串数组时为每个元素添加双引号
PowerShell 5 实现文件名批量加双引号拼接的方法
方法1:数组拼接优化法(最简洁高效)
不需要遍历每个元素,直接修改拼接逻辑即可:
'"{0}"' -f (($(Get-ChildItem *.pdf).Name) -join '" "')
或者更易读的写法:
$pdfNames = (Get-ChildItem *.pdf).Name $result = '"' + ($pdfNames -join '" "') + '"'
原理说明
- 先获取所有pdf文件名组成的数组
- 拼接数组时使用
" "作为分隔符,得到pdf1.pdf" "pdf2.pdf" "pdf3.pdf格式的中间字符串 - 首尾各补充一个双引号,即可得到目标格式
方法2:遍历元素处理(兼容性更强,适合需要额外逻辑的场景)
如果需要对每个文件名做其他处理,可以用遍历方式逐个加引号:
$quotedNames = (Get-ChildItem *.pdf).Name | ForEach-Object { "`"$_`"" } $result = $quotedNames -join ' '
原理说明
- 用
ForEach-Object遍历每个文件名,PowerShell中用反引号```作为转义符,"代表输出双引号 - 把所有加好双引号的文件名组成新数组,再用空格拼接
注意事项
如果需要过滤掉名称带.pdf的目录,只获取真实的pdf文件,可在Get-ChildItem后加-File参数,即Get-ChildItem *.pdf -File。
内容的提问来源于stack exchange,提问作者user32882
相关产品推荐
相关产品推荐

