Ich versuche, einfache Überprüfung der Batch-Datei zu tun. argCount
enthält die richtige Nummer, aber ich habe Probleme beim Vergleich von Variablen und Zahlen. Ich möchte Hilfe anzeigen, wenn die Anzahl der Argumente nicht gleich 3 ist und an das Ende der Datei gehen.
Ich habe versucht:
if not %argCount% == 3
if not %argCount%=='3'
if not '%argCount%'=='3'
if %argCount% NEQ 3
aber keine dieser Optionen wie erwartet funktioniert ... Die meisten Optionen, die ich versuchte, zeigen mir immer Meldung helfen, unabhängig von der Anzahl der Argumente, die zum Teil Die Optionen zeigen mir eine Hilfemeldung ohne die ersten 3 Zeilen, wenn ich 3 Argumente an das Skript übergebe (extrem komisch).Überprüfen Sie die Anzahl der Argumente in der Batch-Datei
@echo off
set argCount=0
for %%x in (%*) do (
set /A argCount+=1
)
if not %argCount% == 3 (
echo This script requires the next parameters:
echo - absolute path to file
echo - filter (explanation)
echo - true or false (explanation)
echo Examples:
echo start.bat full\path\to\the\file.ext test true
echo start.bat full\path\to\the\file.ext nof false
goto end
)
REM some another code
:end
Ihr Echo) '' wird als Ende des 'if' Block behandelt. Entkomme alle ')' mit einem Caret innerhalb von Klammern. Auch [verwenden Sie immer 'setlocal'] (https://stackoverflow.com/a/15659309/1683264), es sei denn, Sie haben einen ausdrücklichen Grund, dies nicht zu tun; und wenn Sie 'goto: EOF' oder' exit/b' verwenden, können Sie die Markierung ': end' am Ende Ihres Skripts loswerden. – rojo
@rocknow Es ist eine sehr schlechte Idee, die Batch-Datei 'start.bat' zu benennen, da dies den integrierten Befehl __START__ des Windows-Befehlsinterpreters außer Kraft setzt. Daher wird dringend empfohlen, der Batchdatei einen anderen Namen als 'start.bat' zu geben. – Mofi