用于搜索和替换文本的PowerShell脚本

用于搜索和替换文本的PowerShell脚本,powershell,Powershell,你好,我有一个脚本,搜索匹配的字符串,然后替换它 我想将所有出现的“6.0.0.0.2010 Wave Embedded 6.0(2010)”替换为“6.0.0.0.XXXX Wave Embedded 6.0(XXXX)” 我想匹配与此完全匹配的字符串,但是如果我修改6.0.0.0.XXXX,它会删除之后的所有内容 我的剧本: (Get-Content C:\Users\gadmin\Desktop\temp\test.txt) | ForEach-Object { $_ -replace '

你好,我有一个脚本,搜索匹配的字符串,然后替换它

我想将所有出现的“6.0.0.0.2010 Wave Embedded 6.0(2010)”替换为“6.0.0.0.XXXX Wave Embedded 6.0(XXXX)”

我想匹配与此完全匹配的字符串,但是如果我修改6.0.0.0.XXXX,它会删除之后的所有内容

我的剧本:

(Get-Content C:\Users\gadmin\Desktop\temp\test.txt) | ForEach-Object { $_ -replace '6.0.0.0.*$', '6.0.0.0.XXXX' } | Set-Content C:\Users\gadmin\Desktop\temp\test1.txt

我的测试字符串没有问题,出现的情况总是一样的吗

"6.0.0.0.2010 Wave Embedded 6.0 (2010)"| ForEach {
    $_ -replace '6.0.0.0.2010 Wave Embedded 6.0 (2010)', 
                '6.0.0.0.XXXX Wave Embedded 6.0 (XXXX)'}
因此,这也应该起作用(您可以在管道或开口曲括号后插入新行):


我的测试字符串没有问题,出现的情况总是一样的吗

"6.0.0.0.2010 Wave Embedded 6.0 (2010)"| ForEach {
    $_ -replace '6.0.0.0.2010 Wave Embedded 6.0 (2010)', 
                '6.0.0.0.XXXX Wave Embedded 6.0 (XXXX)'}
因此,这也应该起作用(您可以在管道或开口曲括号后插入新行):


在没有空间的情况下为我工作了$in替换
“Embedded 6.0(2010)”|%{$-替换“^Embedded 6.0.*$”,“Embedded 6.0(XXXX)”}
我需要修改我的问题,如果替换中的$后面没有空格,对我来说是不准确的
“Embedded 6.0(2010)”|%{$-替换“^Embedded 6.0.*$”,“Embedded 6.0(XXXX)”}
我需要修改我的问题,它不完全准确AHHH我在我的问题中不清楚字符串中的2010是变量,不会相同。然而,我只是复制并粘贴了你的解决方案,它并没有修改,如果有什么它应该取代这一行…我想知道我哪里出错了,所以你在搜索什么?四位数字将由
\d{4}
表示另一件事,因为在我的文本文件中有多个6.0.0.0的条目,我如何约束此匹配“6.0.0.0.\d{4}”必须跟在“Wave Embedded”后面仍然有一个缺陷,搜索中的括号必须转义,因为它们在正则表达式中有特殊含义(捕获组)。我编辑了我的脚本,它现在应该可以工作了。啊哈,我在问题中不清楚字符串中的2010是变量,不会是相同的。但是,我只是复制并粘贴了您的解决方案,它没有修改,如果有任何内容应该替换该行的话……我想知道我哪里出错了,那么您在搜索什么?四位数字将由\d{4}另一件事,因为在我的文本文件中有多个6.0.0.0的条目,我如何约束此匹配“6.0.0.0”。\d{4}必须后跟“Wave Embedded”仍然有一个缺陷,搜索中的括号必须转义,因为它们在正则表达式(捕获组)中有特殊含义.我编辑了我的脚本,现在应该可以用了。