从文件 1 中删除 Powershell 中文件 2 中存在的行

Poz*_*nux 5 windows powershell file

我有一个 file1.txt,其中包含:

一号线
2号线
3号线
4号线

我想从 file1.txt 中删除存在于另一个 file2.txt 中的所有行:

线 3 线
2

结果应该是:

线 1
线 4

我尝试使用此命令,但仅当我在 file2.txt 中有一行时才有效:

Get-Content C:\file1.txt | Where-Object {$_ -notmatch $(get-content C:\file2.txt)} 
Run Code Online (Sandbox Code Playgroud)

注意:我不想比较 2 个文件以查看它们是否相同。

任何的想法?我对 powershell 很陌生。

Jos*_*efZ 5

下一个代码片段显示了实现相同结果的两种不同方法:

$filebefore="$env:TEMP\beforerestart.txt"    # change to match your circumstances
$file_after="$env:TEMP\after_restart.txt"    # ditto

### Compare-Object way
$array = Compare-Object $(Get-Content $filebefore) $(Get-Content $file_after)
$array | where {$_.SideIndicator -eq "<="} | 
              Format-Table -Property InputObject -AutoSize -HideTableHeaders

### -NotIn operator way
$(Get-Content $filebefore) | 
     Where-Object {$_ -notIn $(Get-Content $file_after)} 
Run Code Online (Sandbox Code Playgroud)