# Simples Batchprogramm funktioniert nicht



## tklustig (23. April 2019)

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:

```
@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

```
: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
```


----------



## Technipion (23. April 2019)

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?



tklustig hat gesagt.:


> 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 

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

Gruß Technipion


----------



## tklustig (23. April 2019)

Der php Befehl isses nicht. Verantwortlich ist die nicht erkannte Eingabe der zweiten Frage(s. Screenshot)


----------



## Technipion (23. April 2019)

Denke das liegt an der Zeile hier:


tklustig hat gesagt.:


> CD /d %laufwerk%:/xampp/htdocs/yii2_ErkanImmo


Versteht das denn cd auf Windows, wenn du forward-Slashes ( / ) benutzt statt Backslashes ( \ )?
Würde außerdem den gesamten Pfad in Anführungszeichen setzen, falls doch mal irgendwo Leerzeichen rein sollen.


----------

