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 Holl„ndisch
if %-s% == dan echo D„nisch

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