donnobre
Goto Top

2 Zeilen 2er txt dateien mit batch vergleichen und vorhandene löschen

Hallo zusammen, wieder einmal habe ich ein Problem und wiedereinmal wende ich mich an euch

Habe schon mehrere google suchen gestartet, aber leider nichts passendes gefunden. Was ich brauche/suche ist eine batch Formel die 2 txt dateien mit einander vergleicht und wenn ein gleicher Eintrag gefunden wurde. ihn löscht. Aber dies ohne zusatz programme wie SED.
Leider bin ich nur über sehr viele umwege in der lage sowas du machen und das ergebnis ist leider nicht wie gewünscht.

Beispiel:

1.txt mit dem inhalt:
c:\blablabla\datei1.txt
c:\blablabla\datei2.txt
c:\blablabla\datei3.txt

2.txt mit dem inhalt
c:\blablabla\datei1.txt

aus 1.txt wird somit die zeile c:\blablabla\datei1.txt gelöscht und die datei mit dem inhalt
c:\blablabla\datei2.txt
c:\blablabla\datei3.txt
gespeichert.

Content-ID: 169695

Url: https://administrator.de/contentid/169695

Ausgedruckt am: 23.11.2024 um 08:11 Uhr

60730
60730 13.07.2011 um 20:03:18 Uhr
Goto Top
moin,

C:\script\test\456>type a.txt
ab
cd
ef
gh
C:\script\test\456>type b.txt
ab
gh
C:\script\test\456>


C:\script\test\456>type c.txt
cd
ef

War nicht wirklich schwer.
DONNobre
DONNobre 13.07.2011 um 20:35:02 Uhr
Goto Top
Hallo und danke für die schnelle antw.
es sieht einfach aus ist es aber nicht

ich hatte etwas ähnliches probiert aber es ging nicht. jetzt habe ich deinen vorschlag genommen und ihn geändert doch leider bekomme ich eine fehlermeldung

for /f "delims=" %a in ("z:\ergebnis_1.txt") do findstr /c:"%a" "z:\ergebnis_2.txt" || echo %a>>"z:\Ergebnis_neu.txt"  

Als fehlermeldung kommt dies

C:\>call :ZeileAndern
kann syntaktisch an dieser Stelle nicht verarbeitet werden.

\Ergebnis_neu.txt"
er findet also nicht die datei, nehme ich mal so an ... habe das ganze auch schon in mehreren varianten getestet aber leider keinen erfolg gehabt
60730
60730 13.07.2011 um 20:48:20 Uhr
Goto Top
Salü,

bitte immer ganze Tiere verfüttern...

C:\>call :ZeileAndern
das steht doch nirgendwo in dem Einzeilerchen...

  • dann ist das eine Demo für die Tante Dosbox, keine Batch

Du schrubst doch, das du schon ganz viel gesucht / gefunden hast %a == Demo für die Dosbox, %%a==batchzeile

btw:
es sieht einfach aus ist es aber nicht

nein ist es und die Zeilen mit hellblauen Hintergrund sind echte copy & paste Daten aus meiner Dosbox.

Gruß
Friemler
Friemler 13.07.2011 um 21:18:54 Uhr
Goto Top
Hallo DONNobre,

zusätzlich zu dem, was TiMo schon geschrubt hat - ich werfe Dir mal ein paar Stichworte hin:

FOR /F, Dateiname, Anführungszeichen, USEBACKQ face-wink

[EDIT]
Hat sich in Deinem letzten Posting erledigt.
Du solltest die Ausgabeumleitung beim ECHO-Befehl vor den ECHO-Befehl schreiben.

Außerdem ist da ein Anführungszeichen zu viel nach dem Namen der Datei, in der FINDSTR-suchen soll.
[EDIT2]
Du hast nachgebessert!
[/EDIT2]

[/EDIT]

Gruß
Friemler
DONNobre
DONNobre 13.07.2011 um 21:20:01 Uhr
Goto Top
Hi Timo
klar hatte ich die %a auch schon geändert bzw es damit probiert
hab schneller eine antw. gepostet als es bis zum ende zu formulieren.

dein code klappt auch wunderbar war ein denkfehler von mir .. er wollte admin rechte haben die ich ihm nicht gegeben hatte (man nerven mich diese admin rechte)

habe ihn jetzt mal für batch mit call aufruf hier

for /f "delims=" %%a in (z:\ergebnis.txt) do findstr /c:"%%a" z:\ergebnis_Send.txt || echo %%a>>z:\Ergebnis_neu.txt  

Vielen dank
DONNobre
DONNobre 13.07.2011 um 21:27:57 Uhr
Goto Top
*G* den hatte ich auch gerade korrigiert ....

was ist der unterschied zwischen

echo %%a>>z:\Ergebnis_neu.txt

und
>>z:\Ergebnis_neu.txt echo %%a

kommt nicht beides auf das selbe raus?
Friemler
Friemler 13.07.2011 um 21:36:41 Uhr
Goto Top
Sollte man meinen. CMD sieht das anders. Zwischen dem, was in die Datei geschrieben werden soll, und dem >> besser ein Leerzeichen einfügen. Das landet dann aber auch in der Datei. Deshalb Goldene Regel: Die Ausgabeumleitung immer vor den ECHO-Befehl.

Sollte %%a z.B. als letztes Zeichen eine 2 enthalten, wird daraus echo xxx2>>z:\Ergebnis_neu.txt. Dann wird nur der Standardfehlerkanal in die Datei umgeleitet. Da höchstwahrscheinlich kein Fehler auftritt, wird auch nichts in die Datei geschrieben.

Gruß
Friemler
DONNobre
DONNobre 13.07.2011 um 21:49:19 Uhr
Goto Top
ahhh ok danke bin wieder etwas schlauer
Friemler
Friemler 13.07.2011 um 21:53:04 Uhr
Goto Top
Batchscript ist ein Minenfeld. face-wink
DONNobre
DONNobre 24.07.2011 um 12:26:43 Uhr
Goto Top
Ich merke es immer wieder und es nervt face-smile
DONNobre
DONNobre 05.08.2011 um 20:52:14 Uhr
Goto Top
wieso geht es nicht wenn ich
eigene = c:\programme\ftp

FOR /F "tokens=1 delims=" %%i in (%Eigene%\ergebnis.txt) do set ORDNER=%%i & call :app  

schreibe. nur wenn ich wirklich ein laufwerk subbe .. ?
60730
60730 05.08.2011 um 22:53:21 Uhr
Goto Top
Zitat von @DONNobre:
wieso geht es nicht wenn ich
eigene = c:\programme\ftp

FOR /F "tokens=1 delims=" %%i in (z:\ergebnis.txt) do set ORDNER=%%i & call :app  

habe das mal hier reingeschriebn

und ich dir mal
Zitat von @60730:
Salü,

bitte immer ganze Tiere verfüttern...

  • deine falschen Codeblöcke hab ich mal richtig herum gesetzt, aber der Rest ist ein Minenfeld....
Mehr von DONNobreDONNobreFritzbox 7390, Ipad, Airplayit Streaming ProblemeDONNobre - 7 KommentareDONNobreMitschneiden vom Internetverkehr auf einem ServerDONNobre - 37 KommentareDONNobre2x DSL, 2x Router Firefox und Opera für je eine DSL LeitungDONNobre - 10 KommentareDONNobreFestnetztelefon mit automatischer RufannahmeDONNobre - 4 Kommentare
Heiß diskutiert
superfun2k24Sophos SFOS 20 DNAT funktioniert nichtsuperfun2k24 - 26 Kommentareuser217Kaufberatung Hardware - Hyper-V Cluster 3 Nodesuser217 - 25 KommentarePharaunIntel-E810 QSFP28 to Mikrotik QSPF+ mit 40Gbit VerbindungPharaun - 24 Kommentareprplemk2Testumgebung bauen (Grundlegend)prplemk2 - 19 KommentareaufdemmarsHP Z620 USB hat kein Strom beim Startenaufdemmars - 17 KommentareTJ.Hooker74Dom.Admin-Passwort ändern - Auswirkungen auf EX, HCW, AADCTJ.Hooker74 - 15 KommentaremaisenkaiserSwitch ohne STP ins Netzwerkmaisenkaiser - 13 KommentareUnluckyProccess1999Creo 4.0 Lizenz Server (LMTOOLS)UnluckyProccess1999 - 13 KommentareJudgelgZertifikate in die Exchange Online GAL hochladenJudgelg - 13 KommentareadmtechEntwicklertagebuch: Release 6.4 - Filteradmtech - 13 KommentareleberkaeseFB7590 ISDN Fax-Funktionleberkaese - 12 KommentareSarekHLLegaler Einsatz vom M365 Family in Business-UmgebungSarekHL - 11 Kommentare