Batch abfrage mit Löschen in einer TXT
Hallo,
ich möchte 2 TXT Dateien vergleichen und in der 2.txt den Inhalt löschen, wenn er auch in der 1.txt steht. Ich muss dazu sagen ich hab mit Programmieren nix am hut und muss nur hin und wieder für meinen Chef spezialwünsche erfüllen...
Der Bereich (del %%a) ist der einzige der mir kopfzerbrechen bereitet... bekomme es einfach nicht hin!
Was muss hinter den 2 zeichenfolgen stehen, damit %%a in der Datei 2.txt gelöscht wird?
Wäre dankbar, wenn mir das schnell einer erklären könnte. So wie es jetzt da steht, möchte er die Datei namens "%%a" löschen, welche natürlich nicht existiert.
Ich danke euch für jede hilfe!
VG
ich möchte 2 TXT Dateien vergleichen und in der 2.txt den Inhalt löschen, wenn er auch in der 1.txt steht. Ich muss dazu sagen ich hab mit Programmieren nix am hut und muss nur hin und wieder für meinen Chef spezialwünsche erfüllen...
FOR /F "tokens=1 delims= " %%a IN (2.txt) do (
FOR /F "tokens=1 delims= " %%b IN (1.txt) do (
if %%a==%%b del %%a
))
Der Bereich (del %%a) ist der einzige der mir kopfzerbrechen bereitet... bekomme es einfach nicht hin!
Was muss hinter den 2 zeichenfolgen stehen, damit %%a in der Datei 2.txt gelöscht wird?
Wäre dankbar, wenn mir das schnell einer erklären könnte. So wie es jetzt da steht, möchte er die Datei namens "%%a" löschen, welche natürlich nicht existiert.
Ich danke euch für jede hilfe!
VG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 2501344356
Url: https://administrator.de/contentid/2501344356
Ausgedruckt am: 24.11.2024 um 10:11 Uhr
11 Kommentare
Neuester Kommentar
@echo off
PowerShell -EP ByPass -C "compare @(Get-Content 1.txt) @(Get-Content 2.txt) -Passthru | ? SideIndicator -eq '=>' | Set-Content 2.txt"
Blödsinn!
Zur Info: Der Inhalt der 2.txt wird im Beispiel durch den neuen Inhalt ersetzt, du kannst das ganze natürlich auch in eine andere Datei zurückschreiben, einfach im Set-Content die Zieldatei ändern feddisch.
Guckst du auch
PowerShell Compare-Object
Also simple Standard-Chose die zu 100% klappt wenn man sie denn auch richtig anwendet ...
@1915348599:
habe den Link befolgt und in einer Patch datei die Werte zwischen die @@ gemacht und die listen sogar in neue dateien schreiben lassen.
Als Ergebnis bleibt die komplette 2.txt datei bestehen. Somit auch hier keine Filterung der 1x gelisteten Zahlenketten.
Nö das es klappt siehst du ja an der Online-Demo! Das ist ja auch ehrlich gesagt Pippifax und bekommen wir hier jede Woche einmal rein, du hast es nur falsch gemacht ...habe den Link befolgt und in einer Patch datei die Werte zwischen die @@ gemacht und die listen sogar in neue dateien schreiben lassen.
Als Ergebnis bleibt die komplette 2.txt datei bestehen. Somit auch hier keine Filterung der 1x gelisteten Zahlenketten.
Zur Info: Der Inhalt der 2.txt wird im Beispiel durch den neuen Inhalt ersetzt, du kannst das ganze natürlich auch in eine andere Datei zurückschreiben, einfach im Set-Content die Zieldatei ändern feddisch.
Guckst du auch
PowerShell Compare-Object
Also simple Standard-Chose die zu 100% klappt wenn man sie denn auch richtig anwendet ...
Zitat von @j1m3e84:
hier funktioniert es, weil er die jeweilige zeile gegen die andere vergleicht. ist der Inhalt nicht gleich, löscht er es nicht. (Siehe test4 und test5)
Bei meinen 2 Dateien sind die Zeilen alle verschoben. Daher funktioniert es nicht.
NEIN! Das ist erneut Blödsinn! Hier wird nicht nach Zeilen verglichen!!! Die Reihenfolge ist absolut wurscht nur der Inhalt zählt ... guckst duhier funktioniert es, weil er die jeweilige zeile gegen die andere vergleicht. ist der Inhalt nicht gleich, löscht er es nicht. (Siehe test4 und test5)
Bei meinen 2 Dateien sind die Zeilen alle verschoben. Daher funktioniert es nicht.
https://tio.run/##ZYyxDoIwEIb3PsWFBR1qAuqokjgYNxOeAMspJbWH7REdfPfaABMs// ...
Ich habe das Beispiel 1:1 übernommen und die oberen Tests einfach durch meinen inhalt ausgetauscht. Das Ergebnis ist leider nicht das gewünschte.
Dann hast du uns dein Vorhaben falsch beschrieben! Der obige Code macht das was du uns in deinem Ursprungspost geschrieben hast einwandfrei.ich versteh nicht, warum du mich so angreifst...
?? Hier greift niemanden jemand an... Nur wenn man Falschinformationen verbreitet die so nicht stimmen und man korrekten Ergebnissen eines Online-Compilers nicht glaubt dann muss ich da kontern.Tja, geht doch, hier lokal mit der Powershell ...
Soviel Script wissen habe ich schon, um zu wissen, an welchen stellen ich meinen Inhalt eintragen muss.
Dann missverstehst du das Skript vermutlich oder suchst die Files an der falschen Stelle.Zitat von @j1m3e84:
habe den Fehler gefunden.
1.txt hat hinter jeder Zeile ein Leerzeichen generiert beim erstellen.
Dadurch war der Vergleich durch das Leerzeichen manipuliert.
habe den Fehler gefunden.
1.txt hat hinter jeder Zeile ein Leerzeichen generiert beim erstellen.
Dadurch war der Vergleich durch das Leerzeichen manipuliert.
Na also, das lässt sich auch noch automatisch handeln wenn man muss
https://tio.run/##ZY1BDoIwEEX3PcWEDbAoCaBLlcQY486EE2AZpQRabIfowrtXBNzA5u ...
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen.