用单引号限定Get-ChildItem输出的分隔符

3

使用Powershell,我正在尝试获取文件夹和文件列表,从文件夹层次结构的特定级别开始,像这样:

Get-ChildItem -Path ./trunk -Recurse -include *.rpt

由于文件名可能包含空格,我需要用单引号括起来,以便将这些文件名输入到Java程序进行处理:

java -cp . SomeJavaPgm (Get-ChildItem -Path ./tags -Recurse -include *.rpt)

如何定义一个PowerShell函数并调用它以用单引号限定Get-ChildItem cmdlet的输出或者通过管道传输Get-ChildItem的输出,使其用单引号限定输出?

1个回答

1

一个初始试验,作为绝对路径。

Get-Childitem -Path ./tags -Recurse -include *.rp | % {
$a = $_.fullname -replace '"', '""'; "'$a'"
}

使用双引号
Get-Childitem -Path ./tags -Recurse -include *.rp | % {
    $a = $_.fullname -replace '"', '""'; "`"$a`""
}

在表达式或语句中出现意外的标记“$a”。 位于 C:\Workspace\Source_Code\publish.ps1 的第 12 行,第 81 个字符:
  • Get-Childitem -Path ./tags -Recurse -include *.rpt | % {$a = $_.fullname "'$a'"} <<<<
- Perry Hoekstra
就是这样。如果你想要使用双引号,需要使用转义字符 \"$a\" 吗? - Perry Hoekstra
你必须添加保留 ; "'$a'",否则将不会输出任何内容。 - bernd_k
为什么在这种情况下转义字符(grave character)无法工作:Get-Childitem -Path ./trunk -Recurse -include *.rpt | % {$a = $_.fullname; ""$a""} - Perry Hoekstra
你的代码中,$后面的下划线丢失了。请查看我的编辑答案。 - bernd_k
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接