
3996875338
20.09.2022
Batch: Inhalt zweier Txt Dateien vergleichen
Hallo zusammen,
ich habe 2 Textdateien mit 450 und 300 Computernamen,
Ich möchte beide Listen (Textdateien) miteinander vergleichen und nur einfach vorhandene Einträge in eine neue Liste schreiben.
Und das ganze am liebsten per Batch
Ach ja, die Listen sind nicht sortiert...
Aufbau:
Liste 1 Alte Computer 650 PC´s
Computername02
Computername01
Computername04
Computername03
Computername05
Liste 2 neue Computer 450 PC´s
Computername02
Computername04
Computername01
Ich möchte also feststellen welche Computernamen aus Liste 1 in Liste 2 fehlen und diese in einer neuen Liste ausgeben.
Jetzt schonmal Vielen Dank für eure Unterstützung
LG Leon
ich habe 2 Textdateien mit 450 und 300 Computernamen,
Ich möchte beide Listen (Textdateien) miteinander vergleichen und nur einfach vorhandene Einträge in eine neue Liste schreiben.
Und das ganze am liebsten per Batch
Ach ja, die Listen sind nicht sortiert...
Aufbau:
Liste 1 Alte Computer 650 PC´s
Computername02
Computername01
Computername04
Computername03
Computername05
Liste 2 neue Computer 450 PC´s
Computername02
Computername04
Computername01
Ich möchte also feststellen welche Computernamen aus Liste 1 in Liste 2 fehlen und diese in einer neuen Liste ausgeben.
Jetzt schonmal Vielen Dank für eure Unterstützung
LG Leon
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 3997361222
Url: https://administrator.de/forum/batch-inhalt-zweier-txt-dateien-vergleichen-3997361222.html
Ausgedruckt am: 13.03.2025 um 13:03 Uhr
5 Kommentare
Neuester Kommentar

Ich möchte also feststellen welche Computernamen aus Liste 1 in Liste 2 fehlen
Pure Batch@echo off
set "liste1=D:\liste1.txt"
set "liste2=D:\liste2.txt"
set "ergebnis=D:\ergebnis.txt"
findstr /ivl /G:"%liste2%" "%liste1%" >"%ergebnis%"
@echo off
set "liste1=D:\liste1.txt"
set "liste2=D:\liste2.txt"
set "ergebnis=D:\ergebnis.txt"
powershell -EP Bypass -C "$liste1 = Get-Content '%liste1%';$liste2 = Get-Content '%liste2%'; $liste1 | ?{$_ -notin $liste2} | Set-Content '%ergebnis%'"
certguy

Geht auch Powershell?
Geht bestimmt auch eleganter
$a = Get-Content C:\tmp\a.txt
$b = Get-Content C:\tmp\b.txt
$result = @()
$a | ForEach-Object {
if (!($b.Contains($_))) {
$result += $_
}
}
$b | ForEach-Object {
if (!($a.Contains($_))) {
$result += $_
}
}
Write-Host $result
Geht bestimmt auch eleganter

Zitat von @3803037559:
Cheers
certguy
@echo off
set "liste1=D:\liste1.txt"
set "liste2=D:\liste2.txt"
set "ergebnis=D:\ergebnis.txt"
powershell -EP Bypass -C "$liste1 = Get-Content '%liste1%';$liste2 = Get-Content '%liste2%'; $liste1 | ?{$_ -notin $liste2} | Set-Content '%ergebnis%'"
certguy
Definitiv mit Where-Object -notin eleganter als meine Variante
Allerdings nicht ganz genau passend zu:
Zitat von @leonknoblechner:
Ich möchte beide Listen (Textdateien) miteinander vergleichen und nur einfach vorhandene Einträge in eine neue Liste schreiben.
Ich möchte beide Listen (Textdateien) miteinander vergleichen und nur einfach vorhandene Einträge in eine neue Liste schreiben.
Passt aber zu:
Ich möchte also feststellen welche Computernamen aus Liste 1 in Liste 2 fehlen und diese in einer neuen Liste ausgeben.
OP muss sich für eine Fragestellung entscheiden