Diskuze: Vyčtení dat z txt souboru v batch

Člen

Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Ahoj, problém je podle mě v pasáži
echo %nazevPolozky%
proměnná %nazevPolozky% bude prázdná a v tom případě se provede
příkaz echo, který vypisuse stav echa
Ahoj, vyzkoušej tohle:
SETLOCAL ENABLEDELAYEDEXPANSION
For /F "tokens=*" %%A IN ('Type %cestaVstData%') DO (
set nazevPolozky=%%A
echo !nazevPolozky!
echo %%A
)
Ahoj, díky za pomoc. Už to funguje. Vše jsem měl stejné kromě:
echo !nazevPolozky!
já jsem tam měl procenta místo vykřičníků. Chtěl jsem se zeptat proč vykřičníky a proč to nefungovalo s procenty? Díky moc za pomoc...
Přečti si ten odkaz co jsem přiložil, je to tam vysvětleno.
Ahoj, díky za info. Nějak jsem to pročetl, ale moc moudrej ztoh
nejsem.
Ještě mám jeden dotaz a nechci zakládat nové téma. Potřebuji vnořit dva
for cykly do sebe, ale nějak se mi to nedaří. První cyklus se provede ale
druhý ne...
SetLocal EnableDelayedExpansion
set dirPuvodni=D:\Copy Test1\
set cestaVstData="D:\Vstupni Data.txt"
set nazevPolozky=Nazev polozky
For /F "tokens=*" %%A IN ('Type !cestaVstData!') DO (
set nazevPolozky=%%A
echo Vnejsi !nazevPolozky!
echo Vnejsi !dirPuvodni!
pause
For /R "!dirPuvodni!" %%M IN (*.*) DO (
echo Vnitrni !dirPuvodni!
pause
)
)
EndLocal
Prosím o radu a pomoc.....
SetLocal EnableDelayedExpansion
set dirPuvodni=D:\Copy Test1\
set cestaVstData="D:\Vstupni Data.txt"
set nazevPolozky=Nazev polozky
For /F "tokens=*" %%A IN ('Type !cestaVstData!') DO (
set nazevPolozky=%%A
echo Vnejsi !nazevPolozky!
echo Vnejsi !dirPuvodni!
pause
For /R %dirPuvodni% %%M IN (*.*) DO (
echo Vnitrni !dirPuvodni!
pause
)
)
EndLocal
Batch se snaží veškeré proměnné označené "%%" nahradit při zapnutí programu. Ve for cyklu žádná hodnota neexistuje (proto se provedlo jen echo a výstup byl stav echa (ECHO is off)). Ty výkřičníky označují proměnnou, které se hodnota přiřadí až za běhu. Proč nahrazení nefunguje ve for /r nevím.
Ok díky za info. Nakonec jsem to vygooglil a upravil kód takto:
SetLocal EnableDelayedExpansion
set dirPuvodni=D:\Copy Test1\
set cestaVstData="D:\Vstupni Data.txt"
set nazevPolozky=Nazev polozky
For /F "tokens=*" %%A IN ('Type !cestaVstData!') DO (
set nazevPolozky=%%A
echo Vnejsi !nazevPolozky!
echo Vnejsi !dirPuvodni!
pause
PUSHD !dirPuvodni!
For /R %%M IN (*.*) DO (
echo Vnitrni !dirPuvodni!
pause
)
POPD
)
EndLocal
Nyní již vše funguje.
Díky za pomoc a rady
Zobrazeno 8 zpráv z 8.