Ergebnis 1 bis 7 von 7
  1. #1
    Gesperrt
    Registriert seit
    06.08.2007
    Beiträge
    71

    Standard Zeichen in Batch "nutzlos" machen

    Hi,

    sry erstmal zum Titel, aber mir ist nix besseres eingefallen.

    Ich mache gerade JustForFun ein BatchScript, das meine Hostsdatei (für einen Silrkoad Privat Server) Patcht.

    Wenn keine HostsDatei vorhanden ist, fragt es, ob es eine erstellen soll. Wenn man N eingibt, also Nein, fragt es, ob man das Patchen abbrechen will.

    Hier liegt mein Problem:
    @echo off
    echo ## Suche nach Hosts-Datei ...
    If NOT Exist %systemroot%\system32\drivers\etc\hosts goto create
    :create
    SET /P create=Die Hosts-Datei existiert nicht. Wollen Sie eine Neue erstellen? (j/n):

    IF "%create%"=="" (
    ECHO Nichts eingegeben
    GoTo :create
    )
    IF /I "%create%"=="J" (
    ECHO Erstelle ...
    copy hosts %systemroot%\system32\drivers\etc\hosts && type hosts
    ) ELSE (
    IF /I "%create%"=="N" (
    SET /P exit=Wollen Sie das Patch-Programm beenden? (j/n):
    If /I "%exit%"=="N" (
    goto create
    ) ELSE (
    exit
    )
    )
    ) ELSE (
    ECHO Sie müssen J oder N eingeben
    )
    )
    pause
    Da das ROT markierte ja in den Klammern des IF steht, wird die Klammer zu bei (j/n): für das Vorherige IF verwendet, und der folgende Doppelpunkt als SyntaxError.
    Ich würde gerne der ) seine Funktion entnehmen. Geht das?

    [EDIT] Mir kam gerade die Idee einfach mit :Label und goto zu arbeiten. Wenn das mit dem "Nutzlosmachen" nicht gehen sollte, werde ich das dann warscheinnlich so machen[/EDIT]


    Gruß

    florian0

    PS: Hier gab es dochmal diesen BatchViren generator von BerlinerMauer oder so. Da hab ich mir immer dran orientiert (bis ich den falschen Knopf gedrückt habe, und die Batch geöffnet habe).
    Hat jemand vielleicht noch einen Download Link?

  2. #2
    Kevin Mitnick Avatar von big earl
    Registriert seit
    22.01.2007
    Beiträge
    1.003

    Standard

    ist doch kla, wenn du immer %create% als String nimmst

    schreib ma was anderes hin

  3. #3
    Gesperrt
    Registriert seit
    06.08.2007
    Beiträge
    71

    Standard

    Zitat Zitat von big earl
    ist doch kla, wenn du immer %create% als String nimmst

    schreib ma was anderes hin
    Wie jetzt?
    Sry aber das verwirrt mich.

    Ohne die Exit abfrage funktioniert mein Script ja (bis jetzt) einwandfrei.

    Ich möchte nur, dass diese ) klammer zu im Rotmarkierten NICHT für den IF befehl verwendet wird.

    IF /I "%create%"=="N" (
    SET /P exit=Wollen Sie das Patch-Programm beenden? (j/n):

  4. #4
    Kevin Mitnick Avatar von big earl
    Registriert seit
    22.01.2007
    Beiträge
    1.003

    Standard

    also du könntest das in Häckchen setzen, doch dann siehst shice aus

    Formulier deine Frage doch einfach anders

    ( sry das ich erst so spät antworte, hab den Post gar net gesehen )

  5. #5
    W32.FunLove
    Registriert seit
    30.06.2008
    Beiträge
    120

    Standard

    Entweder du machst einfach ein EXIT (was soll der User denn auch sonst machen...^^)

    oder du machst das in ner "objekt Orientierten Sprache"
    Zitat Zitat von Suicide
    Und als super Free-Hack "Veteran" wie du dich hier präsentierst, hätte dir das auch auffallen müssen.

  6. #6
    W32.FunLove
    Registriert seit
    29.01.2008
    Beiträge
    159

    Standard

    Zeichen nutzlos machen geht mit "^" vor dem zeichen. dadurch wird es einfach zum zeichen das es ist, ohne besondere funktion, wie > : = etc...

    ich habe auch letztens mal einen batchviren creator gemacht^^

    kannst den ja mal zum lernen weiterbenutzen wenn du willst :p (is aber net so gut, war mein 2tes halbwegs-ernsthaftes batch programm...)

    such mal auf www.nimos.6x.to

  7. #7
    DateMake Dialer
    Registriert seit
    18.02.2005
    Beiträge
    116

    Standard

    http://www.robvanderwoude.com/escapechars.html
    All DOS versions interpret certain characters before executing a command.
    Some well know examples are the percent sign ( % ), and the redirection symbols ( < | > ).

    Windows 95/98 and NT, and OS/2 too, also interpret double quotes ( " ) and ampersands ( & ), as shown in the Conditional Execution page.

    In batch files, the percent sign may be "escaped" by using a double percent sign ( %% ).
    That way, a single percent sign will be used within the command line.

    In Windows 95/98 and NT, and OS/2 too, redirection symbols may be escaped by placing them between double quotes ( ">" ).
    However, the quotes themselves will be passed to the command too, unlike the double percent sign.

    Windows NT and OS/2 also allow the use of carets ( ^ ) to escape special characters. Even linefeeds can be escaped this way, as is shown in the Useless Tips page.

    If you intend to "nest" commands with escaped characters, you may need to escape the escape character itself too.
    In general, that won't make it any easier to read or debug your batch files, however.
    Ich hätte jetzt gedacht, dass (ja/nein) als ein Klammernpaar gilt. Vielleicht geht es ja auch, wenn du die ganze Frage
    SET /P exit=Wollen Sie das Patch-Programm beenden? (j/n):
    Also sowas dann
    SET /P exit="Wollen Sie das Patch-Programm beenden? (j/n):"
    Vielleicht auch mal einfache Anführungszeichen ' verwenden?

    Und wenn alles nichts hilft: Nimm halt was anderes statt den runden klammern. Zum Beispiel eckige [ ].
    Wahrheit + Hirn:
    aHR0cDovL3d3dy5hdWZ6dXJ3YWhyaGVpdC5jb20=

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •