Batch for loop und Variablen
Ich verstehe die Variablen in Batch nicht wirklich, da sie manchmal einfach nicht gesetzt werden und leer bleiben z.B. die Variable text hier:
@echo off
set count=0;
for /f "tokens=*" %%i in (path.txt) do (
echo %%i
set text[!count!]=%%i
echo %text[!count!]%
set /a count+=1
)
echo %text%
echo %text[1]%
pause
Please also mark the comments that contributed to the solution of the article
Content-Key: 3237052781
Url: https://administrator.de/contentid/3237052781
Printed on: May 2, 2024 at 23:05 o'clock
4 Comments
Latest comment
Dieser Strichpunkt hat doch hier nichts verloren:
set count=0;
Du kannst Variablen die zwichen Prozentzeichen sind nicht aktualiziert vom inneren vom for abrufen. Da du text[#] im for krierst hast und es dann gleich abrufst weiss das Batch Program nicht was "%text[!count!]%" ist da nur die Variable !count! aktualiert ist aber nicht %text[!count!]%. Dieses Kommando:
SetLocal EnableDelayedExpansion
Bewierkt das Variablen in Echtzeit aktualisiert werden aber nur die, die zwischen Ausrufezeichen sind ex: (!count!)
Hier wäre ein beispiel wie du es machen könntest:
https://i.imgur.com/Ov5VFJJ.gif
set count=0;
Du kannst Variablen die zwichen Prozentzeichen sind nicht aktualiziert vom inneren vom for abrufen. Da du text[#] im for krierst hast und es dann gleich abrufst weiss das Batch Program nicht was "%text[!count!]%" ist da nur die Variable !count! aktualiert ist aber nicht %text[!count!]%. Dieses Kommando:
SetLocal EnableDelayedExpansion
Bewierkt das Variablen in Echtzeit aktualisiert werden aber nur die, die zwischen Ausrufezeichen sind ex: (!count!)
Hier wäre ein beispiel wie du es machen könntest:
@echo off
setlocal EnableDelayedExpansion
set count=0
for /f "tokens=*" %%i in (path.txt) do (
set /a count+=1
set text[!count!]=%%i
)
for /L %%a in (1,1,%count%) do echo !text[%%a]!
pause