NT-Batch-Frage
Heinrich Allers
allers at t-online.de
Do Okt 11 22:56:25 CEST 2001
K. Lehmann unterschätzt sowohl DOS als auch NT, wenn er schreibt:
> kleine anmerkung. da es eine abfrage INNERHALB einer batsch ist,
> muss es ja in anführungszeichen stehen (es kann sein, daß man
> aucb andere zeichen als '"' nehmen kann, aber sie müssen auf
> beiden seiten stehen.
Aus gutem Grunde habe ich meinen "alten" (1995 für nicht wenig
Geld gekauften) tragbaren DOS-Rechner gut aufbewahrt und jetzt
angeworfen und folgende Stapeldatei stapel.bat dort gebaut:
@echo off
if a == a echo a ist gleich a
if a == b echo a nicht gleich b
if %1 == eng echo Englisch
if %1 == ger echo Deutsch
if %-s% == dut echo Hollndisch
if %-s% == dan echo Dnisch
Rufe ich sie - auf dieser puren DOS-Maschine also - ohne weitere
Vorkehrungen auf mit
stapel.bat
dann bekomme ich folgendes Ergebnis auf den Bildschirm geworfen:
a ist gleich a
Syntaxfehler
Syntaxfehler
Syntaxfehler
Syntaxfehler
Rufe ich auf
stapel.bat ger
dann bekomme ich
a ist gleich a
Deutsch
Syntaxfehler
Syntaxfehler
Setze ich mittels
set -s=dan
die DOS-Umgebungsvariable '-s' und gebe dann den Befehl
stapel.bat
dann kommt das Ergebnis
a ist gleich a
Syntaxfehler
Syntaxfehler
Dänisch
Rufe ich nun
stapel.bat eng
auf, dann kommt das Ergebnis
a ist gleich a
Englisch
Dänisch
Quod erat demonstandum!
Allerdings habe ich heute dazugelernt, daß es Ärger gibt, wenn der
dem Stapeldatei-Aufruf mitgegebene Parameter fehlt und/oder die
DOS-Imgebungsvariable nicht gesetzt ist.
###
Bei NT ist's nicht anders; außer daß bei fehlendem dem Stapeldatei-
Aufruf mitgegebenen Parameter %1 und/oder fehlender Setzung
der DOS-Umgebungsvariablen in der Anzeige des Ergebnisses statt
"Syntaxfehler"
"==" ist syntaktisch an dieser Stelle nicht verarbeitbar
gemeldet wird.
###
B. Eversbergs Nachricht, daß
if %C6% == n copy s.apt quant.apt
die Fehlermeldung
"== " ist syntaktisch an dieser Stelle nicht verarbeitbar.
liefert, interpretiere ich aus der Ferne so, daß zu besagtem
Zeitpunkt keine DOS-Umgebungsvariable 'C6' gesetzt war.
###
K. Lehmann fährt fort:
> jetzt kommt der wesentlich wichtigere teil meiner ;-) anmerkung:
> es spielt keine rolle ob nt oder dos.
Damit stimme ich voll überein.
> auch bei dos muss INNERHALB einer batch SO geschrieben werden.
>
> if "%OS%" == "Windows_NT" del %USERPROFILE%\DESKTOP\a99.pif
Nein (nach dem oben Gesagten).
> wichtig sind wohl auch die BEIDEN gleichheitszeichen.
Klar, das ist DOS-Syntax seit Urzeiten.
> wer mehr über batsche wissen will, dem kann ich auf anfrage den
> genauen(!) literaturtip geben: Kneisle Batch-Betrieb und
> Automation (hanser ??? dm 50,- ?) ...
Wie gesagt, nur für den, der _mehr_ über den Aufbau von
Stapeldateien wissen will. Für das, was man für Allegro von
Stapeldateien wissen muß, wären fuffzig Mark zu viel bezahlt.
Mit besten Grüßen:
Heinrich Allers
allers at t-online.de * http://home.t-online.de/home/allers
Zum 3.Oktober 2001: http://home.t-online.de/home/allers/0310ger.htm; al 3 de octubre de 2001: http://home.t-online.de/home/allers/0310spa.htm
Mehr Informationen über die Mailingliste Allegro