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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 3237052781
Url: https://administrator.de/forum/batch-for-loop-und-variablen-3237052781.html
Ausgedruckt am: 23.12.2024 um 00:12 Uhr
4 Kommentare
Neuester Kommentar
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