我需要为csv文件中的某些列放置System.Object []。我尝试了3种不同的方法,但没有一种方法有效。当该对象为空或其他东西时,由powershell输入System.Object []。
$file = "c:\output.csv"
(gc $file) -replace "'system.object[]'", ""
[io.file]::readalltext($file).replace("'system.object[]'","")
(Get-Content $file | ForEach-Object { $_ -replace "system.object[]", "" } ) | Set-Content $file
答案 0 :(得分:1)
我在输出中包含System.Object []的变量中添加了以下代码。而它似乎正在发挥作用。现在我不必在文件级别进行替换。
"Access Code" = (@($AccessCode) | Out-String).Trim()
答案 1 :(得分:1)
护腕和圆点([,] ,.)需要全部转义。再删除双引号,只保留单引号。还要考虑使用creplace,以防你想要工作区不敏感。所以命令看起来像这样:
(gc $file) -replace 'system\.object\[\]', ''
如果您想将所有内容写入新文件:
(gc $file) -replace 'system\.object\[\]', ''|out-file "test2.txt" -encoding ASCII
答案 2 :(得分:0)
只需使用逃脱角色
(gc $file) -replace 'system.object\[\]', ""
角色' ['和']'用于正则表达式模式。你必须使用Escape 人物' \'告诉Powershell这是一个常规的字符