Powershell,删除命令(如果包含)

Powershell,删除命令(如果包含),powershell,Powershell,是否有人知道删除包含特定文本的行的命令-不匹配不是我要找的 foreach($item in $csv) { if($item -contains "@text.com") { #do something } } -notmatch是您所追求的,您可能试图以错误的方式使用它 Get-Content c:\folder\file.txt | Select-String -pattern "@text.com" -notmat

是否有人知道删除包含特定文本的行的命令<代码>-不匹配不是我要找的

  foreach($item in $csv)
    {
      if($item -contains "@text.com")
      {
        #do something
      }
    }

-notmatch
是您所追求的,您可能试图以错误的方式使用它

Get-Content c:\folder\file.txt | Select-String -pattern "@text.com" -notmatch | Out-File c:\folder\newfile.txt

…用于删除行的命令…:-D

$fileName = "d:\DevProjs\PowerShell\test1.txt";
$newFile = "d:\DevProjs\PowerShell\test1_new.txt";
$searchOrigText = "some text";

$Content = Get-Content $fileName -Raw


$newLinePattern = "(\n|\r|\r\n)";

$firstLinePattern = "^.*" + $searchOrigText + ".*" + $newLinePattern + "{0,1}";

$lastLinePattern = $newLinePattern + ".*" + $searchOrigText + ".*$";

$middleLinePattern = $newLinePattern + ".*" + $searchOrigText + ".*" + $newLinePattern;

# Remove middle lines if needed
$searchPattern = $middleLinePattern;
$replaceText = "`n";
$regEx = New-Object System.Text.RegularExpressions.Regex($searchPattern);
$Content = $regEx.Replace($Content, $replaceText);

# Remove first line if needed
$searchPattern = $firstLinePattern;
$replaceText = "";
$regEx = New-Object System.Text.RegularExpressions.Regex($searchPattern);
$Content = $regEx.Replace($Content, $replaceText);

# Remove last line if needed
$searchPattern = $LastLinePattern;
$replaceText = "";
$regEx = New-Object System.Text.RegularExpressions.Regex($searchPattern);
$Content = $regEx.Replace($Content, $replaceText);


Set-Content -Path $newFile -Value $Content;

没有删除某些内容的命令。您只能创建不带此项的新集合。为什么“-notmatch”不是您要找的?可能重复的或可能重复的
$fileName = "d:\DevProjs\PowerShell\test1.txt";
$newFile = "d:\DevProjs\PowerShell\test1_new.txt";
$searchOrigText = "some text";

$Content = Get-Content $fileName -Raw


$newLinePattern = "(\n|\r|\r\n)";

$firstLinePattern = "^.*" + $searchOrigText + ".*" + $newLinePattern + "{0,1}";

$lastLinePattern = $newLinePattern + ".*" + $searchOrigText + ".*$";

$middleLinePattern = $newLinePattern + ".*" + $searchOrigText + ".*" + $newLinePattern;

# Remove middle lines if needed
$searchPattern = $middleLinePattern;
$replaceText = "`n";
$regEx = New-Object System.Text.RegularExpressions.Regex($searchPattern);
$Content = $regEx.Replace($Content, $replaceText);

# Remove first line if needed
$searchPattern = $firstLinePattern;
$replaceText = "";
$regEx = New-Object System.Text.RegularExpressions.Regex($searchPattern);
$Content = $regEx.Replace($Content, $replaceText);

# Remove last line if needed
$searchPattern = $LastLinePattern;
$replaceText = "";
$regEx = New-Object System.Text.RegularExpressions.Regex($searchPattern);
$Content = $regEx.Replace($Content, $replaceText);


Set-Content -Path $newFile -Value $Content;