windows - Batch FOR, CALL: Hvorfor kan jeg ikke videregive et token til min subrutine?

Indlæg af Hanne Mølgaard Plasc

Problem



Dette skal være ret simpelt. Desværre er det også jeg.


'filelist.txt' er output fra: dir/b


Denne kode virker: for hver linje i 'filelist.txt' bliver denne linje echoed som forventet.


for /F "tokens=*" \%\%A in (filelist.txt) do echo \%\%A


Denne kode virker ikke: for hver linje i 'filelist.txt' ekko kun varnavnet '\% A'.


for /F "tokens=*" \%\%A in (filelist.txt) do call :sub1
goto :eof
:sub1
echo \%\%A
goto :eof


Hvad gør jeg forkert? Tak på forhånd.

Bedste reference


Prøve:


@echo off
for /F "tokens=*" \%\%A in (filelist.txt) do call :sub1 \%\%A
goto :eof
:sub1
echo \%1
goto :eof


Du skal videresende dit argument (\%\%A) til underrutinen (arg guide) og derefter inde i din subrutine kan du få adgang til det ved position (\%1). [6]