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

Hosts Datei per batch bearbeiten?

Frage Entwicklung Batch & Shell

Mitglied: 4PR28U

4PR28U (Level 1) - Jetzt verbinden

03.06.2011 um 18:29 Uhr, 10313 Aufrufe, 10 Kommentare

Ich bin totaler Anfänger in Batch und weiß nicht weiter...

Ich arbeite gerade an einem Projekt, bei dem ich ständig die hosts datei von Windows bearbeiten muss.
Jetzt habe ich mir gedacht, dass es leichter wäre, wenn ich die zwei Zeilen, die da dazu kommen bzw auskommentiert werden müssen (gelöscht werden müssen) per batch Datei ändere.

Die Einträge stehen am Ende der hosts Datei. es handelt sich um zwei Zeilen.

Kann man diese per batch Datei einfügen/löschen bzw. auskommentieren/kommentar entfernen?
Mitglied: Pjordorf
03.06.2011 um 18:52 Uhr
Hallo "Ich bin totaler. . .",

Zitat von 4PR28U:
Kann man diese per batch Datei einfügen/löschen bzw. auskommentieren/kommentar entfernen?
Kurz und knapp. Ja. (Suche hier im Forum wird dich erfreuen)

Oder du erstellst dir 2 Hosts Dateien (Hosts.1 und Hosts.2) und kopierst welche du benötigst nach Hosts.

Gruß,
Peter
Bitte warten ..
Mitglied: Friemler
03.06.2011 um 19:39 Uhr
Hallo 4PR28U,

versuche mal das hier:
01.
@echo off 
02.
 
03.
setlocal 
04.
 
05.
 
06.
set "FirstLine=xxx" 
07.
set "SecondLine=xxx" 
08.
 
09.
 
10.
set "HostsFile=%SystemRoot%\System32\Drivers\etc\hosts" 
11.
 
12.
 
13.
if /i "%~1" equ "A" goto :Append 
14.
if /i "%~1" equ "E" goto :Erase 
15.
if /i "%~1" equ "C" goto :Comment 
16.
if /i "%~1" equ "D" goto :DeComment 
17.
 
18.
exit /b 
19.
 
20.
 
21.
 
22.
:Append 
23.
>>"%HostsFile%" (<NUL set /p "=%FirstLine%" & echo.) 
24.
>>"%HostsFile%" (<NUL set /p "=%SecondLine%" & echo.) 
25.
exit /b 
26.
 
27.
 
28.
:Erase 
29.
call :GetNLines 
30.
set /a nLines-=2 
31.
 
32.
type NUL > "%HostsFile%.new" 
33.
 
34.
for /f "eol= tokens=1* delims=:" %%k in ('findstr /n "^" "%HostsFile%"') do ( 
35.
  if %%k leq %nLines% ( 
36.
    >>"%HostsFile%.new" echo\%%l 
37.
38.
39.
 
40.
goto :RenameFile 
41.
 
42.
 
43.
:Comment 
44.
call :GetNLines 
45.
set /a nLines-=2 
46.
 
47.
type NUL > "%HostsFile%.new" 
48.
 
49.
for /f "eol= tokens=1* delims=:" %%k in ('findstr /n "^" "%HostsFile%"') do ( 
50.
  if %%k leq %nLines% ( 
51.
    >>"%HostsFile%.new" echo\%%l 
52.
  ) else ( 
53.
    >>"%HostsFile%.new" echo\#%%l 
54.
55.
56.
 
57.
goto :RenameFile 
58.
 
59.
 
60.
:DeComment 
61.
call :GetNLines 
62.
set /a nLines-=2 
63.
 
64.
type NUL > "%HostsFile%.new" 
65.
 
66.
for /f "eol= tokens=1* delims=:" %%k in ('findstr /n "^" "%HostsFile%"') do ( 
67.
  if %%k leq %nLines% ( 
68.
    >>"%HostsFile%.new" echo\%%l 
69.
  ) else ( 
70.
    for /f "eol= delims=#" %%a in ("%%l") do ( 
71.
      >>"%HostsFile%.new" echo\%%a 
72.
73.
74.
75.
 
76.
 
77.
:RenameFile 
78.
move /y "%HostsFile%.new" "%HostsFile%" > NUL 
79.
exit /b 
80.
 
81.
 
82.
 
83.
:GetNLines 
84.
for /f "delims=:" %%n in ('findstr /n "^" "%HostsFile%"') do set /a nLines=%%n 
85.
exit /b
Zeile 6 und 7 natürlich anpassen. Dann das Script z.B. als EditHosts.cmd speichern.

Aufruf:
EditHosts A
Hängt die Zeilen an.

EditHosts C
Schreibt die Raute (#) als Kommentarzeichen vor die letzten beiden Zeilen.

EditHosts D
Entfernt die Raute vor den letzten beiden Zeilen.

EditHosts E
Löscht die letzten beiden Zeilen.


Die Änderungen werden erstmal in die Datei hosts.new geschrieben. Zum Schluss wenn alles fertig ist, wird die Datei mit dem MOVE-Befehl in Zeile 78 umbenannt in hosts.

Ich hoffe, ich habe es richtig verstanden, dass der Inhalt der beiden Zeilen immer gleich sein soll.


@Pjordorf: Sicher, wenn man schon scripten kann und in der Lage ist, bestehenden Code umzubauen, kann man erstmal die Suche bemühen. Anfänger sollte man doch etwas mehr unterstützen als mit diesem lapidaren Verweis. Sonst braucht's kein Forum.

Gruß
Friemler
Bitte warten ..
Mitglied: 4PR28U
03.06.2011 um 19:41 Uhr
Danke für die Mühe
Inzwischen hatte ich mir den Rat von Pjodorf zu Herzen genommen und mit einer zusätzlichen Datei und findstr das ganze umgesetzt.. ziemlich unschön aber es geht.. ich teste jetzt aber mal deins


Klappt wunderbar Dankeschön! (Vorallem ohne lästige abfragen, ob ich die Datei überschreiben will usw ^^)
Bitte warten ..
Mitglied: 60730
03.06.2011 um 20:55 Uhr
moin..

"eigentlich" fangen wir Fragen nicht mit "ich arbeite" oder so was an, sondern mit einem Grußwort.
(kommt irgendwie besser, wenn man wenigstens den Anschein von Höflichkeitsflokeln bewahrt)
Zitat von 4PR28U:
Ich arbeite gerade an einem Projekt, bei dem ich ständig die hosts datei von Windows bearbeiten muss.
Ich bin totaler Anfänger in Batch und weiß nicht weiter...

Nur der vollständigkeit halber,

  • Fummeln an der Hosts Datei ist zu 99% unnötig, es geht bis auf 1% auch "richtig"
  • Und deshalb braucht derjenige, welcher wo am Fummeln am Horst ist auch Adminrechte.

  • Und eigentlich geben wir immer lieber Tipps, wie man es richtig macht.
Bitte warten ..
Mitglied: Friemler
03.06.2011 um 22:26 Uhr
Moin T-Mo

Zitat von 60730:
  • Und deshalb braucht derjenige, welcher wo am Fummeln am Horst ist auch Adminrechte.
Da er schon länger daran rumfummelt, weiß er das schon oder hat es noch nicht gemerkt, weil er sowieso mit Adminrechten arbeitet. Sollte das ein Projekt sein, was später mal auf einem Rechner laufen soll, wo das nicht so ist, holt er sich 'ne blutige Nase und hat was gelernt.

Zitat von 60730:
  • Und eigentlich geben wir immer lieber Tipps, wie man es richtig macht.
Es gibt vielfältige Gründe an der hosts rumzuspielen, nicht alle dieser Gründe will man unbedingt einer breiten Öffentlichkeit darlegen... Wenn mir ein Anliegen nicht allzu schwachsinnig vorkommt, handele ich lieber nach der Prämisse: Brauchst Du? Kriegst Du! Was soll ich mir den Kopf anderer Leute zerbrechen? Scripten ist mein Tai Ginseng .

Gruß
Friemler
Bitte warten ..
Mitglied: 4PR28U
03.06.2011 um 22:42 Uhr
:D dann entschuldige ich mich erstmal für mein unanständiges benehmen und sage einfach jetzt: Hallo ;)

Ich fummele mit, für diese Dateien vergebenen Adminrechten am Horst rum, weil das der einfachste mir bekannte Weg für das ist, was ich da mach.
Aber über eine Anregung, was du mit richtig machen meinst, würde ich mich natürlich auch freuen... einen besseren weg gibt es immer und ich lass mich gern belehren!

lg
Bitte warten ..
Mitglied: brammer
03.06.2011 um 22:49 Uhr
Hallo,

Aber über eine Anregung, was du mit richtig machen meinst, würde ich mich natürlich auch freuen... einen besseren weg gibt es immer und ich lass mich gern belehren!

Dann erkläre doch erst mal wieso du an der Host Datei rumfummeln musst.

brammer
Bitte warten ..
Mitglied: 4PR28U
03.06.2011 um 22:55 Uhr
Ich habe eine FlashAnwendung, die ich nach Belieben auf meinen Lokalhost umleiten will.
Diese Batch-Dateien in Verbindung mit der cmd-Datei verwende ich jetzt als an und aus schalter, jenachdem, was ich grade benötige (Lokal/Web)
Bitte warten ..
Mitglied: Ralph4
04.06.2011 um 08:36 Uhr
Hallo 4PR28U,

folgender Denkansatz.
2 Dateien die von der Stuktur deinen zwei Host dateien entsprechen und durch kopieren an die entsprechende Stelle gebracht werden.

lg Ralph
Bitte warten ..
Mitglied: 4PR28U
04.06.2011 um 09:27 Uhr
Hallo Ralph4,
umgesetzt hatte ich das ganze jetzt schon mit Hilfe der Host Datei. Hier ging es jetzt um einen eventuell eleganteren Lösungsweg ohne die Hosts Datei.

lg
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (18)

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

Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...