CMD - Aus Datei löschen
Andy123
- sonstiges
Hi,
Folgendes Beispiel einer Batchdatei:
@echo off
echo. >> %SYSTEMROOT%\system32\drivers\etc\hosts
echo 192.168.1.1 router >> %SYSTEMROOT%\system32\drivers\etc\hosts
Ich möchte diesen Eintrag jetzt mit einem CMD-Befehl wieder rauslöschen.
Es kann sein, dass durch mehrfaches Klicken mehrere Einträge in der Datei stehen. Alle sollen raus.
Wie geht das?
Danke im Vorraus,
Andy
Moin!
Die Unix-Tools für Windows und das darin enthaltene Programm grep, das ist ein Filterprogramm, helfen Dir weiter.
(Die Dateien aus UnxUtils.zip einfach nach %WINDIR% entpacken.)
cd %WINDIR%\system32\drivers\etc\
rename hosts hosts.toGrep
grep -v 192.168.1.1 hosts.toGrep > hosts
delete hosts.toGrep
Durch die Umleitung würdest Du eine leere Datei erhalten, wenn Du direkt hineinzuschreiben versuchst. Deshalb die Umbenennung.
grep kann auch mit regulären Ausdrücken umgehen.
Soll nur die Zeile mit dem Punkt weg:
grep -v ^.$ hosts > hosts.grep
Sind es mehrere IP- Adressen:
schreibe diese in eine Datei: toDelete.txt:
192.168.1.1
192.168.1.2
192.168.1.31
10.10.0.1
grep -vf toDelete.txt hosts > hosts.grep
Du kannst Dich testweise vom Ergebnis überzeugen:
grep -v 192.168.1.1 hosts | wc -l
(Das Programm wc ist auch dabei- es kann Zeilen, "Wörter", Zeichen und Bytes zählen.)
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Hi,
und das geht nur mit einem Unix-Tool für Windows?
Gruß,
Andy
gudn tach!
und das geht nur mit einem Unix-Tool für Windows?
nee, das geht auch mit reinen windows-tools.
aber zunaechst was grundsaetzliches: da es sich bei dir eigentlich um ein grosses vorhaben (das bearbeiten der etc/hosts) dreht, waere es geschickter, wenn du in einem thread bleiben wuerdest.
ich werde dort antworten:
https://forum.selfhtml.org/?t=164610&m=1073095
prost
seth
Moin!
und das geht nur mit einem Unix-Tool für Windows?
Gute Güte!
Dieser Weg ist einer von unzähligen. Du kannst Dir auch eine fast beliebige Programmiersprache (sowohl: Kompiler (Beispiele: C++, C, C#) , Interpreter (Beispiele: BASIC, Perl, PHP...), und Mischformen (Beispiel: Java) installieren und dann ein Progrämmchen schreiben. Du kannst Deine host-Datei auch in eine Datenbank importieren (z.B. MySQL), mit SQL-Befehlen das tun, was Du vor hast, und dann wieder exportieren... und und und ...
Im Verhältnis dazu sind die Unix-Tools aber ein ziemlich geringer Aufwand. Und verdammt schnell. Zudem geben diese Dir die Möglichkeit wunderbare Dinge mit begrenztem Installations- und Lernaufwand zu erledigen. Vielleicht machen Sie Dir ja auch Lust auf ein GNU/Linux oder BSD.
Und sie kosten Dich nichts.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
gudn tach!
und das geht nur mit einem Unix-Tool für Windows?
Gute Güte!
Dieser Weg ist einer von unzähligen. Du kannst Dir auch eine fast beliebige Programmiersprache [...] installieren und dann ein Progrämmchen schreiben.
der OP moechte afais mit hausmitteln auskommen und gar nicht erst _irgendwas_ installieren muessen. in diesem fall ist wie gezeigt auch durchaus moeglich und sinnvoll.
prost
seth
gudn tach!
Die Unix-Tools für Windows und das darin enthaltene Programm grep, das ist ein Filterprogramm, helfen Dir weiter.
nee, besser http://gnuwin32.sourceforge.net/ oder cygwin.
cd %WINDIR%\system32\drivers\etc\ rename hosts hosts.toGrep
grep -v 192.168.1.1 hosts.toGrep > hosts
delete hosts.toGrepDurch die Umleitung würdest Du eine leere Datei erhalten, wenn Du direkt hineinzuschreiben versuchst. Deshalb die Umbenennung.
fuer inplace-ersetzungen kann man auch sed oder perl verwenden.
prost
seth