Supportnet Computer
Planet of Tech

Supportnet / Forum / BS-Sonstige

Syntaxfehler bei Ausführung der Batch-Datei





Frage

Ich möchte durch eine Batchdatei u.a. abfragen, ob beim Aufruf der Stapelverarbeitungsdatei auch der Computername als Argument mit übergeben wurde. Wenn nur der Name der Batch-Datei angegeben wurde, ohne dass ein Computername mit angegeben wird, soll der Benutzer eine Rückmeldung erhalten. Dazu ist in der .bat-Datei folgendes definiert: [b] set computername=%1 if %computername%=="" goto syntax .. .. .. .. :syntax echo Bitte geben Sie beim Aufruf der Batch-Datei zusätzlich echo den Computernamen als Argument mit an. echo Syntax: Setup.bat ^Computername^ [/b] Wird kein Computername mit angegeben, meldet der Kommandointerpreter derzeit einen "Syntaxfehler" zurück. Wo liegt der Fehler? [b]Frage 2:[/b] Wie kann ich z.B. Anführungsstriche oder spitze Klammern in einer Echo-Meldung [b]ALS TEXT[/b] anzeigen lassen? Danke für Eure Hilfe. Gruß Oli

Antwort 1 von wiserWords

zu Frage 1:
probier mal
if "%computername%"=="" goto syntax

Antwort 2 von maneich

Hallo,

zunächst einmal in Zeile 2 muß es heisen if "%computername%"=="" goto syntax. Die fehlenden Anführungszeichen bei computername verursachen den Fehler.

Wenn %1 bzw. Computername leer ist und du nach "" abfragst kann es nur gleich sein, wenn Du %1 bzw. Computername mit "" ergänzt. Aber warum fragst Du nicht gleich %1 ab mit:

if "%1"=="" goto syntax (und dann weiter mit)
set computername=%1.

Deine 2. Frage verstehe ich nicht ganz. die Anführungszeichen mußt Du natürlich mit angeben z.B. mit
echo dies sind Anführungszeichen """";
diese Zeichen werden dann auch ausgegeben.

MfG maneich





Antwort 3 von _gau_

Du mußt ein Caret-Zeichen (^) verwenden, um mit dem echo-Befehl Umleitungs- (^< und ^>) oder Pipe-Zeichen (^|) auszugeben.

z.B. echo ^<Meldungstext^>

[gau]

Antwort 4 von _gau_

Und für's Caret-Zeichen selbst einfach zweimal Caret.

echo ^^

[gau]

Antwort 5 von _gau_

Ich war vielleicht etwas voreilig...

Der "Trick" mit den Caret-Zeichen funktioniert nur beim Kommandointerpreter CMD.EXE von W2K/XP. Im richtigen MS-DOS also nicht.

[gau]

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: