kostenloser Webspace werbefrei: lima-city


Ja/Nein Entscheidung bei Batch?

lima-cityForumProgrammiersprachenSonstige Programmiersprachen

  1. Autor dieses Themas

    t*****h

    Hi,

    ich fummel seit neustem ein bisschen mit Batch herum und jetzt hab ich ne Frage, die durch die zahlreichen Befehlslisten bei Google nicht gekl?rt werden konnte. :frown:

    ->Kann man eine Ja/Nein Entscheidung einbauen?<-

    Ich hatte mir das folgenderma?en vorgestellt:

    ---------------------------------------------------------------
    @echo off
    CLS
    [...]
    DIR |FIND "com"
    ECHO Alle Dateien umbennen?
    ECHO 1) Ja
    ECHO 2) Nein
    CHOICE /C:12
    IF ERRORLEVEL 1 GOTO eins
    IF ERRORLEVEL 2 GOTO end
    :eins
    REN *.com *.exe
    ECHO Alle Dateien wurden umbenannt
    GOTO end

    :end
    ---------------------------------------------------------------

    Das Skript benennt jedoch alle *.com-Dateien sofort um, ohne den Benutzer zu fragen, deswegen vermute ich, einen Fehler eingebaut zu haben.

    K?nnt ihr einem blutigen Anf?nger helfen:wave:? Bin um jeden Tipp dankbar...:stupid:

    Beitrag ge?ndert am 22.10 01:37 von the-doh
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. m****w

    @echo off
    CLS
    [...]
    DIR |FIND "com"
    ECHO Alle Dateien umbennen?
    ECHO 1) Ja
    ECHO 2) Nein
    CHOICE /C:12
    IF ERRORLEVEL = 1 THEN GOTO eins
    IF ERRORLEVEL = 2 THEN GOTO end
    eins:
    REN *.com *.exe
    ECHO Alle Dateien wurden umbenannt
    GOTO end

    end:

    Ich hab zwar keine ahnung von batch, aber das m?sste doch so gehen. Hab das alles mal ein Bisschen in QBasic ge?ndert :o)
    versuchs mal aus, wenn es klappt, dann sag bescheid, wenn nicht sag bescheid ^^
  4. Autor dieses Themas

    t*****h

    erstmal Danke f?r deine Bem?hungen .... geht aber leider auch nicht :frown:

    ist genau das gleiche Problem wie vorher, aber hab kein Plan wieso, denn deine Version erschien mir besser ...

    Beitrag ge?ndert am 22.10 12:39 von the-doh
  5. m****w

    @echo off
    CLS
    [...]
    DIR |FIND "com"
    ECHO Alle Dateien umbennen?
    ECHO 1) Ja
    ECHO 2) Nein
    CHOICE /C:12
    IF ERRORLEVEL == 1 THEN GOTO eins
    IF ERRORLEVEL == 2 THEN GOTO end
    eins:
    REN *.com *.exe
    ECHO Alle Dateien wurden umbenannt
    GOTO end

    end:
    --------------------
    @echo off
    CLS
    [...]
    DIR |FIND "com"
    ECHO Alle Dateien umbennen?
    ECHO 1) Ja
    ECHO 2) Nein
    CHOICE /C:12
    IF ERRORLEVEL = '1' THEN GOTO eins
    IF ERRORLEVEL = '2' THEN GOTO end
    eins:
    REN *.com *.exe
    ECHO Alle Dateien wurden umbenannt
    GOTO end

    end:
    -----------------
    @echo off
    CLS
    [...]
    DIR |FIND "com"
    ECHO Alle Dateien umbennen?
    ECHO 1) Ja
    ECHO 2) Nein
    CHOICE /C:12
    IF ERRORLEVEL == '1' THEN GOTO eins
    IF ERRORLEVEL == '2' THEN GOTO end
    eins:
    REN *.com *.exe
    ECHO Alle Dateien wurden umbenannt
    GOTO end

    end:

    ---------------------------

    So, das w?ren erstmal meine versionen, wie ich es ausprobiert h?tte....
  6. c****e

    sowas geht doch in ner batchdatei nicht...
    batchdateien sind nur so befehlsabl?ufe da is nix interaktiv
    man kann nich ma so inputs machen

    hol dir ma quick basic, das is wie batchprogrammieren -> DOS, baba easy und interaktiv... in 10 min hast du das drauf...
  7. 0******a

    @cookie:
    Nat?rlich geht das. Das gibt es schon seit MS-DOS in der Version 6.


    @the-doh:

    Aus der Windowshilfe:
    ----------------------
    if [not] errorlevel Nummer Befehl

    not
    Legt fest, da? Windows?NT den Befehl nur dann ausf?hrt, wenn die Bedingung falsch ist.

    errorlevel Nummer
    Ist wahr, wenn das vorher von CMD.EXE ausgef?hrte Programm einen Beendigungs-Code zur?ckgeliefert hat, der gr??er oder gleich Zahl ist.
    ----------------------

    Wenn also 2 gedr?ckt wird und du auf errorlevel == 1 abfragst, dann ist errorlevel == 1 true und die Aktion (goto eins) wird demnach ordnungsgem?ss ausgef?hrt.
    Du musst die Abfrage nach dem Errorlevel anders herum machen. Also erst den gr?ssten errorlevel mit if abfragen.



    Nachtrag:
    ?brigens brauchst du gar "1) Ja 2) Nein" zu machen. Wenn du choice ohne Parameter angibst, dann wird automatisch auf J/N abgefragt. J == errorlevel 1 und N == errorlevel 2

    Beitrag ge?ndert am 22.10 14:01 von 0-checka
  8. Autor dieses Themas

    t*****h

    ok vielen dank f?r eure hilfe, ich werd alles mal ausprobieren :wave:
  9. j***e

    also die l?sung mit choice funktioniert schon nur ich pers?nlich vermeide es derartige befehle einzubauen, da zb bei choice alle versionen vor der 6. damit nicht zurecht kommen --> einschr?nkung, das programm ist eben nicht vollkommen unabh?ngig von der version.

    interaktivit?t bei batch-dateien ist in meinen augen eh ?berfl?ssig, da der code ziemlich simpel ist und daher auch sehr einfach ge?ndert werden kann.
    wenn man einen vorgang nicht ausgef?hrt haben m?chte braucht man ja nicht draufklicken ^.^

    eine l?sung w?re auch folgende:


    ECHO Bitte best?tigen sie...

    PAUSE

    .....

  10. b*************k

    Ja, da ist was dran.

    Eine weitere M?glichkeit w?ren 2 Batchdateien, die man auf dem Desktop ablegt und je nach Gebrauch anklickt. ^^
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!