Windows Shell Script til at indlæse csv i variabler

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at bruge Windows-indbygget shell script til at indlæse denne fil:


hostname1,host\_specific\_file1
hostname2,host\_specific\_file2
hostname3,host\_specific\_file3
.
.
.


Sådan her:


for /f "tokens=1,2* delims=," \%\%i in (host-info.txt) do set clientName=\%\%i; set fileLoc=\%\%j


Hvilket virker ikke, men jeg vil have det som sådan:


:loop
For each line, Set the current\_hostname=hostnamex and Set the current\_file=host\_specific\_filex
And THEN
DO STUFF
Goto next line, Goto loop


Er der en metode til at gøre dette? Jeg kan ikke få mit script indpakket omkring konceptet 'Gå til næste linje' eller 'Håndtere en linje ad gangen'.


Tak,
Chris

Bedste reference


Du kan;


echo off
setlocal enabledelayedexpansion

for /f "tokens=1,2* delims=," \%\%i in (host-info.txt) do (
    set clientName=\%\%i
    set fileLoc=\%\%j
    call:handler
)
goto:eof

:handler
    echo client name is !clientName! location is !fileLoc!
goto:eof


Eller Brug\% n notation;


echo off
setlocal enabledelayedexpansion

for /f "tokens=1,2* delims=," \%\%i in (host-info.txt) do call:handler \%\%i \%\%j
goto:eof

:handler
    echo client name is \%1 location is \%2 ...