Powershell Select String成功找到字符串,用其他字符串替换找到的字符串失败
uniquefile1.txt是一个没有回车的文件(如果有必要的话),而且非常长。我正在尝试匹配各种模式Powershell Select String成功找到字符串,用其他字符串替换找到的字符串失败,powershell,Powershell,uniquefile1.txt是一个没有回车的文件(如果有必要的话),而且非常长。我正在尝试匹配各种模式 程序运行时,文本文件未打开 我已目视检查该文件是否与我的模式完全相同 写入,当使用选择字符串时,它确认模式 存在 当我要更换时,如果我执行了调出主机并搜索我的 在我的ide中,它没有显示它已更改。事实并非如此 替换这个字符串,我不知道我做错了什么 运行我的代码时没有任何类型的错误 我试过: $file=获取内容C:\Uniqueline1 $file.Replace($variablefor
调出主机
并搜索我的
在我的ide中,它没有显示它已更改。事实并非如此
替换这个字符串,我不知道我做错了什么$file=获取内容C:\Uniqueline1
$file.Replace($variableforpattern1,$varForReplacement)|设置内容Uniquefile1.txt
除了用实际的字符串代替变量外,与上面一样
$file = Get-Content C:\uniquefile1.txt -Raw
$SEL = Select-String -Path "C:\uniquefile1.txt" -Pattern ">>>11^A"
if ($SEL = $true)
{
write "true"
}
else
{
write "not true"
}
$file -replace ">>>11^A", ">>>0111^A" | Set-Content "C:\uniquefile1.txt"
所有事情都是正确的,请查看他们的评论。此字符在正则表达式中具有特殊含义,必须转义。
-replace
将正则表达式用于搜索模式,因此如果要逐字匹配,则必须转义正则表达式特殊字符。\
用于转义
$file = Get-Content C:\uniquefile1.txt -Raw
$file -replace '>>>11\^A', '>>>0111^A' | Set-Content C:\uniquefile1.txt
选择字符串
而不使用-SimpleMatch
开关也使用正则表达式。如果-replace
操作失败,我不知道这与您的匹配情况如何。-replace
使用正则表达式作为搜索模式,因此如果要逐字匹配,则必须转义正则表达式特殊字符。\
用于转义
$file = Get-Content C:\uniquefile1.txt -Raw
$file -replace '>>>11\^A', '>>>0111^A' | Set-Content C:\uniquefile1.txt
选择字符串
而不使用-SimpleMatch
开关也使用正则表达式。如果-replace
操作失败,我不知道这与您的匹配情况如何。^
在regex中有特殊意义。它必须转义-->$file-替换“>>>11^A”,“>>>0111^A”|设置内容“C:\uniquefile1.txt”
@AdminOfThings就是它。谢谢你,国王。它总是很简单。^
在正则表达式中有特殊的含义。它必须转义-->$file-替换“>>>11^A”,“>>>0111^A”|设置内容“C:\uniquefile1.txt”
@AdminOfThings就是它。谢谢你,国王。事情总是简单的。