首页 > 解决方案 > 替换 PowerShell 中的字符串:“-”

问题描述

我知道这个话题在这里已经被广泛讨论过,但我是 PowerShell 的新手,在替换表格中的符号时遇到了一些障碍。

在下图中,数字列“PRECOMEDIODISTRIBUICAO”中有一些符号“- ” 。

在此处输入图像描述

我运行以下代码以将此类符号替换为“0”数字:

$file = Import-Csv -Path $file -Delimiter "`t" | 
Select PRECOMEDIODISTRIBUICAO | ForEach {$_ -Replace "\?_", 0} 

但是得到了以下结果:

在此处输入图像描述

我尝试了不同的方法将“-”符号替换为0,但没有成功。例如: “-”“-”“\-”“-” 生成没有更正。

你有更好的想法如何替换这样的字符串吗?

标签: powershellreplacepowershell-ise

解决方案


尝试:

Import-Csv -Path $file -Delimiter "`t" | ForEach {

    $_.PRECOMEDIODISTRIBUICAO = $_.PRECOMEDIODISTRIBUICAO -Replace '-', '0'
    $_
}

Select PRECOMEDIODISTRIBUICAO正在(应该!)丢弃其他列,并且您的替换$_ -replace尝试将整个对象及其所有属性转换为一个字符串,然后进行替换,然后不在任何地方保存替换的文本。我不知道\?正则表达式中的内容在做什么,但看起来没有必要。


推荐阅读