Andy123: CMD - Datei bearbeiten

Hallo,

ist es möglich eine CMD zu schreiben, welche einen Eintrag in eine Datei an eine bestimmte stelle macht?

Gruß,
Andy

  1. Hallo Andy,

    ist es möglich eine CMD zu schreiben, welche einen Eintrag in eine Datei an eine bestimmte stelle macht?

    was verstehst Du unter "an eine bestimmte Stelle"?
    Könntest Du das mit einem Beispiel klarer herausstellen?

    Prinzipiell könnte es gehen - allerdings würde ich Dir den Windows Scripting
    Host für diese Aufgabe empfehlen. Mit JScript, VB-Script oder Python ist diese
    Aufgabe sicher viel einfacher zu erledigen.

    Freundliche Grüße

    Vinzenz

    1. Hi,

      ich will mir eine Batch-Datei schreiben, die die Datei C:\Windows\System32\drivers\etc\hosts öffnet und mir am Ende der Datei folgendes hineinschreibt:

      192.168.1.1 router

      das wars

      Gruß

      1. Hallo

        ich will mir eine Batch-Datei schreiben, die die Datei C:\Windows\System32\drivers\etc\hosts öffnet und mir am Ende der Datei folgendes hineinschreibt:

        192.168.1.1 router

        das geht problemlos mit CMD

        --- Version 1 ----------
        @ECHO OFF
        REM Haenge die IP-Adresse und den Namen eines Rechners an die Liste
        REM der Eintraege in etc\hosts

        REM mit der Umleitung  >> hängt man an eine bestehende Datei an
        REM Existiert die Datei noch nicht, dann wird sie angelegt.
        ECHO 192.168.1.1 router >> C:\Windows\System32\drivers\etc\hosts

        Besser verwendest Du vorhandene Umgebungsvariablen :-)

        --- Version 2 ----------
        @ECHO OFF
        REM Haenge die IP-Adresse und den Namen eines Rechners an die Liste
        REM der Eintraege in etc\hosts

        REM Beachte %SYSTEMROOT% verweist auf das Windowsverzeichnis
        ECHO 192.168.1.1 router >> %SYSTEMROOT%\System32\drivers\etc\hosts

        Freundliche Grüße

        Vinzenz

      2. gudn tach!

        ich will mir eine Batch-Datei schreiben, die die Datei C:\Windows\System32\drivers\etc\hosts öffnet und mir am Ende der Datei folgendes hineinschreibt:

        192.168.1.1 router

        spaeter fragest du nach, wie man diese zeile wieder loescht.
        Vinzenz hat bereits gesagt, das fuer komplexere aufgaben vbscript, perl, python oder so geeignetere sprachen sind.

        einzelne zeilen loeschen geht aber auch mit den alten haustools.
        hilfe zu den einzelnen befehlen bekommst du meist mit "/?" als parameter:

        findstr /?

        mit findstr /v foo kannst du z.b. alle zeilen ausgeben, welche die zeichenfolge "foo" nicht enthalten. die ausgabe dessen kannst du in ein temp-file schreiben und anschliessend das tempfile auf hosts kopieren.

        in etwa so:
        findstr /v 192.168.1.1 hosts > hosts_bak
        copy hosts_bak hosts
        del hosts_bak

        prost
        seth

  2. Hi,

    nochmal zu dem Thread "CMD - Aus Datei löschen".
    Also wenn es möglich ist soll das funktionieren ohne dass ich Tools installieren muss.
    Ich will nur auf mein Batchfile klicken und es soll funktionieren.

    Außerdem hab ich noch eine Frage.
    Ich möchte eine for-Schleife in meine CMD schreiben.
    In PHP würde der Quelltext so aussehen:

    $ip = 192.168.1.1

    $host1 = router
    $host2 = routing
    $host3 = gateway

    for($i=1;$i==3;i++){
      echo $ip.' '.$host.$i.'\n'
    }

    Jetzt wie funktioniert das in der CMD?

    set ip=192.168.1.1

    set host1=router
    set host2=routing
    set host3=gateway

    REM und jetzt kommts... vom Rest hab ich keine Ahnung

    FOR /L %%i IN (1,1,3) DO ECHO %host%%%i

    REM wie verknüpfe ich die zwei Variablen???

    1. nochmal zu dem Thread "CMD - Aus Datei löschen".
      Also wenn es möglich ist soll das funktionieren ohne dass ich Tools installieren muss.
      Ich will nur auf mein Batchfile klicken und es soll funktionieren.

      ich hatte in https://forum.selfhtml.org/?t=164610&m=1074200 bereits was dazu geschrieben. mal ausprobiert? (findstr ist bei windows dabei)

      Ich möchte eine for-Schleife in meine CMD schreiben.
      In PHP würde der Quelltext so aussehen:

      $ip = 192.168.1.1

      $host1 = router
      $host2 = routing
      $host3 = gateway

      for($i=1;$i==3;i++){
        echo $ip.' '.$host.$i.'\n'
      }

      nee, da fehlt noch "eval" oder sowas. ansonsten kaem da die meldung dass $host nicht definiert ist. (aber ich weiss, was du machen moechtest.)

      Jetzt wie funktioniert das in der CMD?

      set ip=192.168.1.1

      set host1=router
      set host2=routing
      set host3=gateway

      REM und jetzt kommts... vom Rest hab ich keine Ahnung

      FOR /L %%i IN (1,1,3) DO ECHO %host%%%i

      REM wie verknüpfe ich die zwei Variablen???

      wie waere es damit:

      for %%i IN (router,routing,gateway) do echo %%i

      prost
      seth