c# - Powershell 替换功能在替换时将逗号视为点

标签 c# .net powershell batch-file scripting

所以我有大约 100 个不同类型的文件,这些文件包含以下字符串:

1.2.0.0

1,2,0,0

我只是想用 1.2.0.1 替换 1.2.0.0,只有带点的字符串,但 powershell 也会替换这些字符串 1,2 ,0,01.2.0.0 为什么 Powershell 将逗号视为句号?

get-childitem $OUTPUT_PATH -recurse -include *.rc,*.cs,*.rtf,*.sql | 
select -expand fullname |
foreach {
  (Get-Content $_) -replace '1.2.0.0','1.2.0.1' | Set-Content $_
}

最佳答案

-replace 运算符使用正则表达式(请参阅help about_Comparison_Operators)。正则表达式中的 . 表示“任何字符”。如果您指的是文字 .,则需要使用 \ 将其转义,如 \.。例如:

'abc 1.2.0.0 def' -replace '1\.2\.0\.0', '1.2.0.1'

如果您不想使用正则表达式,请使用String 对象的Replace 方法。例如:

'abc 1.2.0.0 def'.Replace('1.2.0.0','1.2.0.1')

两者都会输出abc 1.2.0.1 def

关于c# - Powershell 替换功能在替换时将逗号视为点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35589776/

相关文章:

c# - 帮我建立一个正则表达式

c# - 需要帮助创建复杂的 ef linq select

c# - ASP.NET EntityFramework 获取数据库名称

c# - .NET 框架库是否被视为用户定义的?

powershell - 如何使用 PowerShell 将当前日期计算为自 1601-01-01 以来的毫秒数

c# - 如果命令绑定(bind)解析为空,为什么启用按钮?

c# - 解析自定义过滤器语法的最佳方法

.net - 自定义服务器控制导致 UpdatePanel 内的完整回发

powershell - Powershell-将带有空格的文件夹传递到脚本 block

powershell - 使用 PowerShell 转换 Unix 时间