2016-04-14 6 views
1

Begrüßen Sie alle zuerst, bevor Sie eine Frage stellen. Wie auch immer, ich habe einen Teil meines Codes für die Batch-Datei hier und ich fragte mich warum, jedes Mal wenn ich "1" oder "2" eingab, würde es sagen, dass die Syntax falsch ist & dann würde es verlassen. Ich suchte die ganze Nacht danach, konnte aber nichts finden. Ich habe die if else-Anweisungen durch verschiedene Versionen ersetzt, aber keiner von ihnen würde xD funktionieren. Ich habe mich gefragt, ob ihr mir helfen könntet und ich möchte mich im Voraus bei Ihnen bedanken, falls ich es vergesse.Wie rufen Sie eine andere Batchdatei in einer Batchdatei mit if-Anweisungen und Eingaben auf?

Hier ist der Code.

set /p ch=[]: 
if %ch%==1(
    goto login 
) 
if %ch%==2(
    goto register 
) 
:login 
call lxer.bat 
exit 
:register 
call rxer.bat 
exit 

So würde das Problem sein:

Es wird die Batch-Dateien lxer.bat/rxer.bat (Diese Batch-Dateien sind in der richtigen Verzeichnisse/am selben Ordner bereits nicht nennen) Es sagt etwas über Syntax und dann würde es direkt schließen.

Antwort

0

Es muss ein Leerzeichen vor den ( in einer if sonst cmd Gruppen sein die ( in den String verglichen werden. Das Ergebnis ist if string == stringcontaining( und cmd sagt gut, wenn das, was dann?

Es ist auch eine Idee, um sicherzustellen, dass die Zeichenfolgen vorhanden sind. Wenn Sie einfach drücken Geben Sie als Antwort auf eine set p ein, dann bleibt die Variable unverändert, wenn sie also nicht bereits gesetzt ist, sieht cmdif == string... und wird ablehnen.

Der üblicher Weg ist if "%ch%"=="2" (

+0

Damnit einen Blick darauf werfen, hatte ich nur etwa gedrückt eingeben, wenn i 'sah 1 neue Antwort auf diese Post' und irgendwie wusste, dass ich es dir. – Bloodied

+0

OH GOTT wie könnte ich das verpassen ?! xD –

+0

Vielen Dank! lmfaooooo lach mich jetzt gerade –

0

ich auf diese Weise wie ein dynamic menu von http://www.dostips.com

Beschreibung zu setzen: Framework selbst für Batch-Etikett bestimmter parst

Dieser einfache Menü Signatur und listet sie als Menüpunkte auf. Die Selbstparsing-Funktion macht das Menü generisch. Neue Menüeinträge können eingefügt werden, indem neue Funktionsblöcke hinzugefügt werden, ohne die Menüinfrastruktur zu ändern.

@echo off 
Title Example of a dynamic Menu 
:menuLOOP 
Color 0A & Mode con cols=55 lines=10 
echo(
echo( ====================Menu==================== 
echo(
for /f "tokens=2* delims=_ " %%A in ('"findstr /b /c:":menu_" "%~f0""') do (
echo  %%A %%B) 
echo(
echo( ============================================ 
set choice= 
echo(& set /p choice=Make a choice or hit ENTER to quit: || GOTO :EOF 
echo(& call :menu_[%choice%] 
GOTO:menuLOOP 
::************************* 
:menu_[1] login 
cls 
echo(
echo login & pause 
call lxer.bat 
exit /b 
::************************* 
:menu_[2] register 
cls 
echo(
echo register & pause 
call rxer.bat 
exit /b 
::************************* 

Sie können auch bei this example with a dynamic menu : DJ Batch Music Player

+0

woah! Ich probiere das auch besser aus. Vielen Dank! –