Simples Batchprogramm funktioniert nicht


tklustig

Erfahrenes Mitglied
#1
Hallo Leute,
ich bin echt am Verzweifeln. In LINUX bin ich es gewohnt, saubere Bashprogramme zu codieren, unter Windows scheitere ich an den einfachsten Dingen. Anbei zwei Batchprogramme, wobei das Erste funktioniert, das zweite hingegen nicht. Der eingegebene Laufwerksbuchstabe wird nicht verarbeitet(Ein Fehler ist augetreten). Wo liegt der Fehler?

Batch 1:
Bash:
@ECHO OFF
SET /p laufwerk=Geben Sie den Laufwerksbuchstaben an, unter dem die Applikation gehostet wird:
CD /d %laufwerk%:/xampp/htdocs/yii2_ErkanImmo
php yii migrate
IF ERRORLEVEL 1 GOTO fehler
ECHO Die Datenbank wurde erstellt
GOTO ende
:fehler
ECHO Ein Fehler ist augetreten
:ende
PAUSE
Batch 2
Bash:
:anfang
@ECHO OFF
SET netzwerkpfad=\\DESKTOP-FEL3OK1\GemeinsameDateien\
SET /p antwort=Ist die Applikation unter (L)INUX oder unter (W)indows gehostet?:
IF %antwort% EQU W (
    SET /p laufwerk=Geben sie den Laufwerksbuchstaben an, unter dem die Applikation gehostet wird:
    CD /d %laufwerk%:/xampp/htdocs/yii2_ErkanImmo
    php yii migrate
    IF ERRORLEVEL 1 GOTO fehler
    ECHO Die Datenbank wurde erstellt
    GOTO ende
) ELSE (
    IF %antwort% EQU L (
    CD %netzwerkpfad%var/www/html/yii2_ErkanImmo
    php yii migrate
    IF ERRORLEVEL 1 GOTO fehler
    ECHO Die Datenbank wurde erstellt
    GOTO ende
    ) ELSE (
        ECHO Falsche Eingabe
        GOTO anfang
    )
)
:fehler
ECHO Ein Fehler ist augetreten
:ende
PAUSE
error.jpg
 
Zuletzt bearbeitet:

Technipion

Erfahrenes Mitglied
#2
Hi,
kannst du vielleicht auch deine Eingaben posten, bei denen das Programm abschmiert?

Ein schnelles Googeln hat mich zu diesen beiden Links gebracht, falls die dir irgendwie weiterhelfen:
Hope This Helps - BATCH: Richtige ERRORLEVEL-Auswertung
PHP: Vordefinierte Konstanten - Manual

Also wahrscheinlich schmiert der php-Befehl ab. Könnte natürlich auch etwas anderes sein. Vielleicht setzt du den Pfad bei cd mal in Anführungszeichen?

In LINUX bin ich es gewohnt, saubere Bashprogramme zu codieren, unter Windows scheitere ich an den einfachsten Dingen.
Geht mir genau so. Habe mich hier im Forum neulich schonmal über die (imho sehr unkomfortable) Kommandozeile unter Windows ausgelassen, worauf @ComFreek gemeint hat es sei alles nicht so schlimm. Kann auch gut sein, dass sich das mittlerweile gebessert hat. Bin ihm dazu aber noch eine Antwort schuldig :D

@tklustig gibt es denn keine Möglichkeit eine Alternative zu Batch zu benutzen?

Gruß Technipion