Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [Batch] Schleife ?!? (https://www.delphipraxis.net/50762-%5Bbatch%5D-schleife.html)

Assun 31. Jul 2005 00:07


[Batch] Schleife ?!?
 
hi ! Bin gerade dabei n bisserl Batch zu lernen ;-)

habe schon etliche tuts durchwältzt aber die Sache mit der schleife ist mir ein rätsel !

weiss jemand wie man schleifen in Batches verwenden kann ?

THX

Daniel G 31. Jul 2005 00:12

Re: [Batch] Schleife ?!?
 
Erster Treffer bei Google:

Batch Tutorial

Assun 31. Jul 2005 00:16

Re: [Batch] Schleife ?!?
 
jo, aber ich sagte ja bereits dass ich das in den tuts net so ganz blicke !

Denn ich will sowas in etwa hinbekommen :

also mal n beispiel (funtzt aba net)

Zitat:

@echo off

for i to 100 do

echo HELLO WORLD


wenn es so gehen würde sollte das dann 100x HELLO WORLD ausgeben.

Geht aber net :-(

__________________________________________________ ________________________________

EDIT :

Das einzigste was ich zu dem Thema gefunden habe ist :

Zitat:

@echo off

FOR %%a IN (0 1 2 3 4 5) DO echo %%a

pause
das bringt mir aber herzlich wenig :-(

turboPASCAL 31. Jul 2005 08:15

Re: [Batch] Schleife ?!?
 
Code:
[b][color=green]Syntax:[/color][/b]
[b]for[/b] {%Variable|%%Variable} [b]in[/b] (Gruppe) [b]do[/b] Befehl [Befehlszeilenoptionen]
Du wirst also den For-Befehl nicht wie in Delphi verwenden können. Vereinfacht gesagt, der "MS-DOS" For Befehl übergibt jeden den Wert aus der Gruppe an die Variable also:

In Delphi:
Delphi-Quellcode:
for i := 0 to 5 do
  writeln('Hallo ', i);
In einer Batch-Datei:
Code:
@echo off
FOR %%a IN (0 1 2 3 4 5) DO echo Hallo %%a
pause
Auf/in der Console:
Code:
FOR %a IN (0 1 2 3 4 5) DO echo Hallo %a
Ausgabe:
Code:
Hallo 0
Hallo 1
Hallo 2
Hallo 3
Hallo 4
Hallo 5
In einer Batch-Datei:
Code:
@echo off
FOR %%a IN (Neu.exe Alt.exe Hallo.dll) DO copy %%a C:\TEMP\
pause
"Ausgabe":
Code:
COPY Neu.exe C:\TEMP\
COPY Alt.exe C:\TEMP\
COPY Hallo.dll C:\TEMP\
Quizfrage, was macht:
Code:
@ECHO OFF
SET MyText=Hallo Du da!
FOR %%a IN (1 2 3 10 20 30 100 200 300) DO ECHO %MyText%
PAUSE

Sharky 31. Jul 2005 08:43

Re: [Batch] Schleife ?!?
 
Hai ihr,

auch wenn es "bei uns" ja verpönt ist hilft in diesem Fall ein "GoTo" :stupid:
Code:
@echo off
SET /a x=1
:huepf
echo *blubb*
set /a x+=1
if %x% LEQ 10 goto :huepf

Olli 31. Jul 2005 10:51

Re: [Batch] Schleife ?!?
 
Von was reden wir hier eigentlich. Die Quelltexte oben scheinen mir mehr ein Mischmasch aus NT-Script und DOS-Batch zu sein. Ja, das sind zwei verschiedene Dinge. Auch wenn natürlich syntaktische Ähnlichkeiten existieren.

Die Webseite zum Buch über NT Shell Scripting gibt's hier:
http://www.windowsshellscripting.com/

Das Buch kann ich jedem Systemadmin nur ans Herz legen. Auch wenn Perl ne feine Sache und guter Ersatz für NT-Scripts ist, so ist es immer wieder erstaunlich, was man dennoch damit alles machen kann. Wo doch immer von anderer Seite behauptet wird NT-Scripts seien minderwertig ;)

Assun 31. Jul 2005 11:03

Re: [Batch] Schleife ?!?
 
Vielen Dank !!! Sharkys methode klappt sogar mit Variablen, soll heissen ich habs sogar geschafft die anzahl der Wiederholungen per eingabe zu bestimmen !

Dieses Forum ist einfach genial ! Hier bekommt man wirklich zu jeder Frage eine Antwort :thumb:

SMO 31. Jul 2005 14:04

Re: [Batch] Schleife ?!?
 
Mit dem Parameter /L kann der FOR-Befehl durchaus normale Schleifen. Jedenfalls unter Windows XP, keine Ahnung wann diese Funktionalität eingeführt wurde.
Code:
FOR /L %Variable in (Start,Schritt,Ende) DO Befehl
z.B.
for /l %a in (1,1,10) do echo Hallo %a

Sharky 31. Jul 2005 18:06

Re: [Batch] Schleife ?!?
 
Zitat:

Zitat von Olli
.... ein Mischmasch aus NT-Script und DOS-Batch zu sein. ...

Hai Olli,

welchen Code meinst Du denn jetzt? Ich war mir fast sicher in meinen "Batsch-Beispiel" nur Funktionen verwendet zu haben die es schon in DOS <3.1 gegeben hat?

Christian Seehase 31. Jul 2005 18:14

Re: [Batch] Schleife ?!?
 
Moin Sharky,

die Erweiterungen (/a bei Set und LEQ bei if) gibt es IMHO nur auf der NT-Seite, seit NT 4.0.

Olli 31. Jul 2005 18:22

Re: [Batch] Schleife ?!?
 
Zitat:

Zitat von Christian Seehase
die Erweiterungen (/a bei Set und LEQ bei if) gibt es IMHO nur auf der NT-Seite, seit NT 4.0.

So ist es ;) ... und CMD.EXE ist eben NT Shell Script und COMMAND.COM eben Batch. Sollte man nicht verwechseln. Insbesondere wegen der unterschiedlichen Features.

Nachtrag: Allerdings war dies als Hinweis an den Themenersteller gedacht.

Sharky 31. Jul 2005 18:23

Re: [Batch] Schleife ?!?
 
Zitat:

Zitat von Christian Seehase
...gibt es IMHO nur auf der NT-Seite, seit NT 4.0.

*grummel* :cry:
Ich habe eben mal schnell W98 in WMWare gestarte.... Du hast recht.
Ich war davon überzeugt das es diese Möglichkeiten schon vor 15 Jahren gab.

In diesem Sinne -> Mein Code von oben läuft also nur unter NT-Systemen!

Es ist schön einen Fehler zugeben zu können

Olli 31. Jul 2005 18:26

Re: [Batch] Schleife ?!?
 
Hai Sharky,

Zitat:

Zitat von Sharky
*grummel* :cry:

Ach komm :zwinker: ... wir wollen doch jetzt nicht noch weinende Haie sehen. Es war ja kein Fehler in dem Sinne, sondern vielmehr nur eine Begriffsunterscheidung, die du so nicht gemacht hast. Es hat also höchstens was gefehlt.

Das auf-die-Schulter-klopfen spare ich mir dann doch lieber. Deine Zähne funkeln so ... :duck:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz