Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Zwei TXT-Dateien inhaltlich miteinander vergleichen. Werte die identisch sind in neue TXT Datei schreiben!

Frage Entwicklung Batch & Shell

Mitglied: Andichrist

Andichrist (Level 1) - Jetzt verbinden

28.10.2009, aktualisiert 18.10.2012, 5986 Aufrufe, 9 Kommentare

Hallo

ich habe zwei TXT-Dateien, eine Inventarliste.txt mit dem kompletten Artikelbestand und eine Datei Delta.txt mit fehlenden Artikel (als Zahlenreihe). Beide Dateien habe 4-stellige Zahlen pro Zeile, die verglichen werden sollen. Die Zahlen die identisch sind sollen mit der Artikelbezeichnung (aus der Inventarliste) in eine dritte TXT-Datei geschrieben werden!

Aufbau: Inventarliste.txt

0000 - Blaues Geländer 
0001 - Treppenabsatz beige 
.... 
3648 - Duschkopf chrom 
3649 - Duschkopf blau 
3650 - Blumenvase lila 
3651 - Blumenvase grün 
3652 - Abflußrohr 
... 
3753 - Stehlampe Modell Klara 
3754 - Funkuhr Modell Schwarzwald 
3755 - Tisch 
....
Aufbau: Delta.txt

... 
3648 
3649 
3650 
3651 
3652 
3753 
3754 
3755 
...
ERGEBNIS in Fehlliste.txt

... 
3648 - Duschkopf chrom 
3649 - Duschkopf blau 
3650 - Blumenvase lila 
3651 - Blumenvase grün 
3652 - Abflußrohr 
... 
3753 - Stehlampe Modell Klara 
3754 - Funkuhr Modell Schwarzwald 
3755 - Tisch 
...
Weiß jemand Rat und hat eine Lösung als Batch parat?

Danke im Voraus
Andy
Mitglied: H41mSh1C0R
28.10.2009 um 16:58 Uhr
Hi,

auch hier heißt das Zauberwort: Delimiter ^^ und Token. Wenn das Ganze Zeilenweise nur

<4stellige Zahl> - <Text>

beinhaltet dann haste deinen Delimiter das "-" schonmal gefunden.

Nun brauchste nur noch:

1. Inventarliste Zeile auslesen
1.1. den Zeilenstring zerlegen um die Zahl zu bekommen
2. Delta in schleife auslesen bis Zahl gefunden und dann den gepufferten String aus Schritt 1 in Fehlliste.txt schreiben
3. wieder zu schritt 1 bis EOF =)

Gruß

PS:
verdammt Timo war mit seiner Zeile schneller xD, wobei ich gerne den Fragenden immer die Chance gebe selber noch was zur Lösung beizutragen =).
Silbertablett ist doch shice xD.
Bitte warten ..
Mitglied: 60730
28.10.2009 um 16:58 Uhr
Servus,

sorry - mein Kopf raucht und der Kaffee iss alle...

Ich vermute dass ich das aber trotzdem richtig gelesen habe.

01.
for /f "tokens= 1,* delims=-" %%a in (inventar.txt) do findstr "%%a" "delta.txt" && echo %%a - %%b >>liste.txt
Gruß

edit - dafür ist mein Kopf Kaffe auch alle - ich marschier mal zum Kaffeeschuppen ...
edit² da bastla heut nicht auf Schleifen springt und ich grad wohl den Schleifer gebe - auf die eine mehr kams da nicht an.
btw: Nett Hallo stand ja da
Bitte warten ..
Mitglied: Biber
28.10.2009 um 18:22 Uhr
Moin andichrist,

ich weiss ja nicht, ob die andern beiden zu viel Langeweile haben, aber ....
[Die übliche Demo am CMD-Prompt; ">" nicht mit eingeben ]
>findstr /g:delta.txt inventarliste.txt 
3648 - Duschkopf chrom 
3649 - Duschkopf blau 
3650 - Blumenvase lila 
3651 - Blumenvase grün 
3652 - Abflußrohr 
3753 - Stehlampe Modell Klara 
3754 - Funkuhr Modell Schwarzwald 
3755 - Tisch
ggf Ergebnis umleiten in neue Datei mit ">M:\eine\neueDatei.txt"

Grüße
Biber
Bitte warten ..
Mitglied: 60730
28.10.2009 um 18:27 Uhr
Nee muß noch ein paar minuten hier hocken, weil der Telekomiker vor 20? minuten schon wieder weg sein wollte - dabei iss er noch garnüschd da
[OT]
@ Biber...
kaum schreib ich mal nen Einzeiler...
[/OT]

Grüße
Bitte warten ..
Mitglied: Andichrist
28.10.2009, aktualisiert 18.10.2012
Hallo an @alle,

danke für eure tollen und doch einfachen Lösungen!!!

Ich war auch selbst schon aktiv und habe einen Thread von 'bastla' ausgegraben. Durch ausprobieren (Versuch und Irrtum) konnte ich 'bastlas' Batch so hinbiegen dass sie auch hier funktioniert!

Also 'bastlas' Lösungsansatz wäre:

@echo off & setlocal 
set "Quelle=Inventarliste.txt" 
set "Liste=Delta.txt" 
set "Erg=Fehlliste.txt" 
 
if exist "%Erg%" del "%Erg%" 
for /f "usebackq delims=" %%i in ("%Liste%") do for /f "delims=" %%d in ('findstr /c:"%%i" "%Quelle%"') do >>"%Erg%" echo %%d
Viele Grüße
Andy

PS: Die Batch wird direkt in dem Ordner aufgerufen in dem auch die Dateien Inventarliste.txt und Delta.txt zu finden sind.
Bitte warten ..
Mitglied: bastla
29.10.2009 um 16:19 Uhr
Hallo Andy!

[OT]
... konnte ich 'bastlas' Batch so hinbiegen dass es auch funktioniert!
Das macht doch nix, ist mir auch schon passiert ...
[/OT]

Grüße
bastla
Bitte warten ..
Mitglied: Andichrist
04.11.2009 um 14:46 Uhr
@ bastla,

ÄHM! Ich meinte natürlich Deine ursprünglich 100% funktionierte Batch an die (meine) neuen Anforderungen anpassen, dass sie auch hier funktioniert!

Ich hab' es oben korrigiert!

Grüße
Andychrist
Bitte warten ..
Mitglied: Biber
04.11.2009 um 15:24 Uhr
Moin Andichrist,
Zitat von Andichrist:
ÄHM! Ich meinte natürlich Deine ursprünglich 100% funktionierte Batch an die (meine) neuen Anforderungen anpassen, dass sie auch hier funktioniert!
Das könntest du auch mit meinen angelegten Schnipseln machen, wenn du eh' grad am Aufräumen bist und/oder langeweile hast.
Soll ich mal einen Eimer voll davon irgendwo auf den Forumsboden kippen?

Grüße
Biber
Bitte warten ..
Mitglied: Andichrist
04.11.2009 um 16:08 Uhr
Moin Biber,

danke für den Hinweis. Ich habe es oben korrigiert!

Gruß
Andychrist
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst 2 große TXT Dateien vergleichen und Unterschiede in andere Datei schreiben (6)

Frage von sid.pdm zum Thema Batch & Shell ...

Windows Server
AD-Berechtigungen von zwei Servern miteinander vergleichen (3)

Frage von s0m3ting zum Thema Windows Server ...

Batch & Shell
gelöst 2 CSV Dateien per Powershell vergleichen (2)

Frage von Berlin62 zum Thema Batch & Shell ...

Microsoft Office
Excel Dateien durchsuchen und Werte einzeln in neue Excel Datei auslesen (1)

Frage von krischanii zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (22)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...