Ich möchte das erste Argument meines Batch-Skript als Variable verwenden. Wenn es FULL enthält, setze ich alle meine Variablen auf 1 und wenn es leer ist, werde ich nach jedem fragen.Batch Skript Bedingungen für Variablen
Aber ich kann nicht mein Code funktioniert:
@echo off
color 02
::-----------------------------------------
:: Variables
set Preset=%1
set Profile=%2
set NeedToPassTheTests=1
set PublishAPI=0
REM ---------------------
REM We fill the variables depending on the arguments
echo(%1
if defined Preset (
if "%Preset%"=="FULL" (
echo FULL
set PublishOCPP=1
set NeedToPassTheTests=1
set PublishAPI=1
)
) else (
REM No preset so we are going to ask
set /p PublishAPI="Publish API ? (0 or 1).............. ? "
set /p NeedToPassTheTests="Test the projects before ? (0 or 1).............. ? "
)
echo NeedToPassTheTests %NeedToPassTheTests%
echo %PublishAPI%
echo.
pause
I
Die Syntax des Befehls falsch erhalten, ist
Und auch mein Echo bei der Ende drucke den Wert nicht (wenn ich meine Wenns entferne) zeigt es nur an, dass Echo ausgeschaltet ist.
Ich beginne mit .bat-Dateien, ich habe versucht, nur mit dem ist leer Test (von hier genommen: What is the proper way to test if variable is empty in a batch file?) und es funktioniert auch nicht.
Wissen Sie warum?
UPDATE: Es funktioniert, wenn ich FULL als Argument übergeben, aber meine Variablen werden nicht aktualisiert. Ist der Parameter jedoch leer, funktioniert er nicht (dh er fordert mich nicht auf, die Variablen zu füllen).
Verwenden Sie ':: comment' nicht innerhalb eines * Codeblocks * (eingeklammerte Abfolge von Anweisungen) - verwenden Sie' rem 'Das' :: 'ist ein beschädigtes Etikett und Beschriftungen innerhalb von Codeblöcken können zu unerwarteten Ergebnissen führen. – Magoo
Verwenden Sie die Syntax 'if"% varname% "==" value "(dothis) else (dothat)', um Strings zu vergleichen, die Trennzeichen wie Leerzeichen enthalten können, oder Sie erhalten einen Syntaxfehler. Die Anführungszeichen bewirken, dass die enthaltenen Werte als eine einzelne Zeichenfolge interpretiert werden. – Magoo
wenn "% Preset%" == "" gibt mir auch einen Fehler mit falscher Syntax :( – user2088807