WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Batch (http://www.wcm.at/forum/showthread.php?t=27045)

dietz 02.08.2001 15:11

Batch
 
Hallihallo,
bitte um eure Hilfe. Ich will in einem Batch-Programm zwei Meldungen ausgeben. Zwischen den beiden Meldungen will ich eine kurze Pause (ealisieren, wie mache ich das am besten? (vielleicht indem ich eine Variable definiere und diese bis z.B. 10 hochzähle?¿). Please help!

mfg dietz

dietz 02.08.2001 16:51

Noch eine Frage hätte ich: kann ich unter Win NT in einem Batch eine IF-THEN-ELSE Schleife oder DO-WHILE Schleifen einsetzen? Falls nicht gibts dazu eine Alternative? Oder ist das überhaupt sinnvoll in einer .bat Datei?

helios 02.08.2001 17:36

a) Am besten du verwendest ein kleines Tool wie z.B. sleep.exe (findest im Web mit Google o. so), das verbraucht im Gegensatz zu einer Schleife kaum Prozessorzeit.

b) IF-THEN-ELSE gibts unter NT u. Win2000:

progxy.exe
IF %ERRORLEVEL%==0 THEN (
echo ok
) ELSE (
echo nicht ok
)

c) es gibt kein DO-WHILE aber ein FOR-Command mit einer Unmenge von Parametern u. Möglichkeiten. Die musst du dir aber selbst in der WinNT-Hilfe ansehen, das ist zu viel um es hier aufzuführen. Alternativ kannst du ein Label definieren u. mit GOTO anspringen:

:schleife
echo ich starte progxy
progxy.exe
IF %ERRORLEVEL%==0 THEN GOTO :ende
GOTO :schleife
:ende

dietz 03.08.2001 13:36

Danke für deine Hilfe, da ist jetzt noch eine Frage offen.
Kann ich eine Variable definieren, in der ich dann Ergebnisse speichern kann?
z.B.
:Start
SET var = 0
:Zwischenergebnis
ECHO blabla
SET var = var+1
If var EQU 10 Then goto Ende
else
GOTO Zwischenergebnis
:Ende

Also ich setzte eine Variable var ein und übergebe ihr mal den Wert 0, dann gebe ich eine Meldung aus, danach erhöhe ich die Variable um 1 und springe wieder zur Meldung, dann erhöhe ich die Variable wieder um 1.....bis die Variable den Wert 10 hat, dann soll das ganze beendet werden. Kann ich daß in einer .bat Datei realisieren?

helios 03.08.2001 14:01

Hi

diese Environmentvariablen sind keine numerischen sondern reine Textvariablen, du kannst mit ihnen also nicht rechnen!
Für ein paar Durchläufe gings aber auch so:

@echo off
SET VARX=1
:schleife
echo %VARX%
IF %VARX%==1111111111 GOTO :ende
SET VARX=%VARX%1
GOTO :schleife
:ende

PS: in meinen Codebeispielen von oben ist übrigens ein Fehler, es muss überall das THEN raus. Es muss also z.B. heissen: IF %VAR%==0 GOTO :ende


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag