Powershell Select String成功找到字符串,用其他字符串替换找到的字符串失败

Powershell Select String成功找到字符串,用其他字符串替换找到的字符串失败,powershell,Powershell,uniquefile1.txt是一个没有回车的文件(如果有必要的话),而且非常长。我正在尝试匹配各种模式 程序运行时,文本文件未打开 我已目视检查该文件是否与我的模式完全相同 写入,当使用选择字符串时,它确认模式 存在 当我要更换时,如果我执行了调出主机并搜索我的 在我的ide中,它没有显示它已更改。事实并非如此 替换这个字符串,我不知道我做错了什么 运行我的代码时没有任何类型的错误 我试过: $file=获取内容C:\Uniqueline1 $file.Replace($variablefor

uniquefile1.txt是一个没有回车的文件(如果有必要的话),而且非常长。我正在尝试匹配各种模式

  • 程序运行时,文本文件未打开
  • 我已目视检查该文件是否与我的模式完全相同 写入,当使用选择字符串时,它确认模式 存在
  • 当我要更换时,如果我执行了
    调出主机
    并搜索我的 在我的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就是它。谢谢你,国王。事情总是简单的。