dipps
Goto Top

Variable wert bei Tokens in Forschleife verwenden

Variable wert bei Tokens in Forschleife verwenden

Hallo

ich habe folgendes problem:
habe eine Batchdatei dei eine TXT Datei Ausliest mit wo mehrere Tokens auf einer Zeile sind was varieren kann es können 20 sein 50 pder mehr oder weniger

dafür habe ich eine for schleife gemacht

for /L (1,1,100) %%i DO (...)

die zahl %%i bekommt er auch schritt weisse

nun will ich in der DO(...) eine zweite for schleife rein haben die ausließt

DO( for /F "tokens=%%i Delim=;" ...

und bei tokens soll die variable rein die er von der ersten schleife bekommtaber er über gibt da keine zahl
wie kann man das realiesieren?

Content-Key: 60994

Url: https://administrator.de/contentid/60994

Printed on: April 20, 2024 at 02:04 o'clock

Member: Biber
Biber Jun 11, 2007 at 05:30:22 (UTC)
Goto Top
Moin Dipps,

Demo am CMD-Prompt mit einer (zufällig vorhandenen) Textdatei:
>type test37.txt
AuthType Basic
AuthName "Service-Bereich"  
AuthUserFile /usr/verwaltung/web/.htusers
Require valid-user
Order deny,allow
Deny from all
Allow from
Satisfy any

>for /L %i in (1,1,20) do @cmd /C for /f "tokens=%i" %j in (test37.txt) do @echo i:[%i] j:[%j]  
>for /L %i in (1,1,20) do @cmd /C for /f "t  
i:[1] j:[AuthType]
i:[1] j:[AuthName]
i:[1] j:[AuthUserFile]
i:[1] j:[Require]
i:[1] j:[Order]
i:[1] j:[Deny]
i:[1] j:[Allow]
i:[1] j:[Satisfy]
i:[2] j:[Basic]
i:[2] j:["Service-Bereich"]  
i:[2] j:[/usr/verwaltung/web/.htusers]
i:[2] j:[valid-user]
i:[2] j:[deny,allow]
i:[2] j:[from]
i:[2] j:[from]
i:[2] j:[any]
i:[3] j:[all]

Gruß Biber

P.S. Ich würde mich freuen, wenn Du Deinen eigentlich inhaltlich deutlichen und strukturierten Beitrag noch mal bitte tippfehlerbereinigst. So musste zumindest ich die Frage doch anderthalbmal oder so lesen...face-wink
Danke.
Member: Dipps
Dipps Jun 11, 2007 at 08:13:41 (UTC)
Goto Top
Danke du hast mir sehr geholfen.

Kannst du mir noch sagen wie ich in einer for schleife zählen kann wie viele einträge in einer TXT datei sin? das heißt ein eintrag endet immer noch dem kommt. wenn ich set zahl=%zahl%+1 mache nimmt er es ja als text string
Member: Biber
Biber Jun 11, 2007 at 13:33:14 (UTC)
Goto Top
Moin Dipps,
wenn ich set zahl=%zahl%+1 mache nimmt er es ja als text string
Mit "Set /a" kann der CMD-Interpreter neuerdings auch "rechnen"
Beispiel:
Set zahl=1
Set zahl=%zahl%+1
:: --->Ergebnis %zahl% ist [1+1] <i>als String</i> 
Set zahl=1 <i>oder richtiger: Set /a zahl=1</i>
Set /a zahl=%zahl%+1
::---> Ergebnis %zahl% ist [2] <i>als Zahl</i> 

Gruß
Biber
P.S. hattest Du das P.S. in meinem vorangegangenen Kommentar gelesen?
Member: Dipps
Dipps Jun 12, 2007 at 05:48:36 (UTC)
Goto Top
naja ich woll raus bekommen wie viele Tokens in der TXT Datei vorhanden sind. damit ich weiss welcher wert bei dem max wert rein muss

for /L %i in (1,1,%max%)

wie ich das max so zusagen ermitteln kann
Member: Biber
Biber Jun 12, 2007 at 06:45:17 (UTC)
Goto Top
Moin Dipps,

das würde folgender Oneliner vom CMD-Prompt für Dich tun:
>Set /a "max=0" & for /l %x in (5,1,60) do @cmd /c for /f "tokens=%x" %i in (dein.txt) do @if %x GTR %max% set /a "max=%x"  
[Statt "Dein.txt" natürlich Pfad und Namen Deiner Datei.]
Anschließend steht in der Variablen %max% das "höchste" Token, z.B. 28, falls eine Zeile mit 28 Token dabei war.]

A propos etwas für jemanden tun, ohne sich lange zu zieren:
Hast Du mein P.S. im vorangegangenen Kommentar gelesen?
P.S. Hast Du denn auch mein P.S. im vorangegangenen vorangegangenen Kommentar gelesen und verstanden?

Grüße
Biber
Member: Dipps
Dipps Jun 12, 2007 at 07:20:56 (UTC)
Goto Top
so in der art hatte ich das ja auch schon aber das geht nicht

ausserdem muss ich ja dann schon wissen wie viele tokens ca vorhanden sein könnten.

ich weiss aber nur wie die datei heißt und das es unterschiedlich viele tokens sein können es können 50 sein oder 100 oder auch noch mehr.

und ich habe deine PS gelesen