expertenaustausch > comp.os.* > comp.os.ms-windows.programmer

Martin Tauscher (14.06.2005, 20:22)
Hallo euch allen,

da ich von Programmierung leider wenig Ahnung habe, wollte ich euch
fragen, ob ihr mir helfen könnt.

Ausgangslage:
ich habe eine Datei (liste.txt), in der zeilenweise ip-adressen mit
port drinnstehen (24.168.78.5:80).
ich möchte nun jede Zeile auslesen und in eine variable schreiben.

danach sollen für jede so ausgelesene Zeile eine reihe von operation
durchgeführt werden (u.a. das abholen von dateien mit wget)).
da der befehl
for /f %%i IN (liste.txt) DO ...
nur eine operation nach do zulässt, muss ich die ganzen operationen in
eine zweite batch packen und diese 2.batch für jede zeile der bei der
for... ausgelesenen zeile aufrufen.

Problem:
ich muss jetzt jede zeile aus der liste.txt auslesen und diese in eine
variable schreiben.
diese variable wird dann in der zweiten batch benötigt.
diese variable heißt http_proxy

wie bekomme ich das hin, dass die variable mit jeder zeile belegt wird
und ich verschiedene operationen ausführen kann???

mein bisheriger Ansatz:

1.Batch (test.bat)

//Anfang

for /F %%i IN (liste.txt) DO CALL check.bat

//Ende

2. Batch (check.bat)

//Anfang

echo off
set http_proxy=%%i
wget --proxy=on

.......[weitere Operationen]

//Ende

Problem:
die variable %%i scheint es nicht zu geben, denn mit set lässt sich
diese nicht anzeigen. somit kann die variable http_proxy in batch2
auch nicht mit der in batch1 ausgelesenen zeile belegt werden.

Wisst ihr woran es liegt? wisst ihr vielleicht was besseres?

Falls es hilft, das ganze wird unter WinXP ausgeführt,

Viele Grüße
Martin
Wolfgang Fellger (14.06.2005, 21:51)
Martin Tauscher wrote:

>mein bisheriger Ansatz:


Fast richtig. Du musst die Variable als Parameter übergeben.
[..]
Martin Tauscher (14.06.2005, 22:19)
"Wolfgang Fellger" <wfnews> schrieb:

Hallo Wolfgang,

>Fast richtig. Du musst die Variable als Parameter übergeben.


Stimmt, Du hast recht.
Nun läuft das kleine Progrämmchen so wie es soll.

Ich dank Dir für Deine Hilfe.

Gruß
Martin
Philipp Wendler (15.06.2005, 13:28)
Hallo Martin,

Martin Tauscher schrieb am 14 Jun 2005:

> danach sollen für jede so ausgelesene Zeile eine reihe von
> operation durchgeführt werden (u.a. das abholen von dateien mit
> wget)). da der befehl
> for /f %%i IN (liste.txt) DO ...
> nur eine operation nach do zulässt, muss ich die ganzen
> operationen in eine zweite batch packen und diese 2.batch für jede
> zeile der bei der for... ausgelesenen zeile aufrufen.


Nutzt du command.com oder cmd.exe als Kommandozeileninterpreter?
Letztere ist nämlich deutlich mächtiger und unterstützt das, was du
brauchst:

for /f %%i IN (liste.txt) do (
Befehl 1
Befehl 2
...
)

Tschau, Philipp
Ähnliche Themen