Hilfe bei Batch-Programmierung

  • Hallo!
    Ich möchte eine Batch-Datei "programmieren", die folgendes durchführen soll:


    Code
    echo Bitte geben Sie nun das Ziellaufwerk und -verzeichnis an!
    [I]
    Hier soll nun die Eingabe in zwei Variablen gespeichert werden
    
    
    [/I]cd [I]Ziellaufwerk Zielverzeichnis[/I]
    del *.*
    cd C:\
    rd [I]Ziellaufwerk Zielverzeichnis[/I]

    Oder anders: das Programm soll zunächst den User fragen, welches Verzeichnis gelöscht werden soll und führt dies dann entsprechend der Eingabe durch.
    Mein Problem ist aber, dass ich nicht weiß, wie ich die Eingabe in eine Variable schreiben soll...
    Ich hab schon sowas gefunden wie:

    Code
    SET /P Variable=Bitte Laufwerk angeben:

    Damit soll der User dann angeblich etwas eingeben müssen, aber irgendwie funktioniert das bei mir nicht.
    Kann mir da jemand weiterhelfen?

  • Hi!
    Probier mel die



    echo off
    rem --------------------------------------------------------------------
    rem Bach-File "Löschaktion" zum löschen eines verzeichnisses ihrer wahl
    rem
    rem --------------------------------------------------------------------
    rem ---------------------------------------------------------------------
    :NOCHMAL
    cls
    echo.
    echo.
    echo Wähle ein ein verzeichniss:
    echo --------------
    echo.
    echo 1= abbrechen
    echo 2= C:\temp
    echo 3= D:\temp\xxx
    echo 4= E:\tmp\1
    echo.
    echo.
    choice /c:1234
    if errorlevel 4 goto E4
    if errorlevel 3 goto E3
    if errorlevel 2 goto E2
    if errorlevel 1 goto ABBRUCH
    :E4
    Del e:\tmp\1\*.*
    goto end
    :E3
    Del D:\temp\xxx\*.*
    goto end
    :E2
    Del C:\temp\*.*
    :end
    cls
    echo.
    echo.
    echo Das Verzeichniss wurde gelöscht
    echo.
    echo 1= abbrechen
    echo 2= nochmal?
    echo.
    echo.
    choice /c:12
    if errorlevel 2 goto NOCHMAL
    if errorlevel 1 goto ABBRUCH
    :ABBRUCH
    end

  • choice geht nicht, dan evtl. so


    echo off
    rem --------------------------------------------------------------------
    rem Bach-File "Löschaktion" zum löschen eines verzeichnisses ihrer wahl
    rem
    rem --------------------------------------------------------------------
    rem ---------------------------------------------------------------------
    :NOCHMAL


    echo.
    echo 1= abbrechen
    echo 2= C:\temp
    echo 3= D:\temp\xxx
    echo 4= E:\tmp\1
    echo.
    echo.
    set /P X= (1)abbruch oder (2)C:\temp oder (3)E:\tmp\1
    if /I "%X%"=="1" goto :ABBRUCH
    if /I "%X%"=="2" goto :E2
    if \I "%X%"=="3" goto :E3
    rem if errorlevel 4 goto E4
    rem if errorlevel 3 goto E3
    rem if errorlevel 2 goto E2
    rem if errorlevel 1 goto ABBRUCH
    :E4
    Del e:\tmp\1\*.*
    goto end
    :E3
    Del D:\temp\xxx\*.*
    goto end
    :E2
    Del C:\temp\*.*
    :end


    :ABBRUCH
    ende

  • Da die Shell-Programmierung in mein "Fachgebiet" fällt, will ich dir jetzt Hilfe leisten.

    Meine Batch-Datei fragt nach dem Verzeichnis, checkt, ob es existiert, löscht es anschließend.

    EDV-Systeme verarbeiten, womit sie gefüttert werden: kommt Mist rein, kommt Mist raus.

    :aust:

  • Hallo!
    Ich hatte in der Schule als Hausaufgabe aufbekommen eine solche Batch-Datei zu schreiben. Was ich aber nicht wusste war, dass die Werte für die Variable nicht während der Ausührung der Datei eingelesen werden sollen, sondern schon beim Aufruf der Datei.
    Also musste ich beim Ausführen folgendes eingeben:

    Code
    [I]Name_Batchdatei[/I].BAT Wert_Variable_%1 Wert_Variable_%2

    Das ganze Programm sieht dann so aus:

    Code
    @ECHO Ihre Dateinen werden geloescht!
    REM Anstatt PAUSE soll hier noch eine CHOICE-Anweisung eingebaut werden, um das Vorgehen auch abbrechen zu können (Brauche dafür aber keine Hilfe mehr ;) )
    @PAUSE
    ATTRIB %1:\%2\*.* -H -S -R -A
    DEL %1:\%2 *.*
    RD %1:\%2
    CLS
    @ECHO Ihre Dateien wurden geloescht!
    PAUSE
    CLS


    Aber trotzdem vielen Dank!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!