windows - nested For loop i batch fil fejl: Gør det uventet på dette tidspunkt

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg er ny til at skrive batch-filer. Jeg forsøger at gøre følgende.


Læs linie for linje fra fil kaldet list.txt, som har to tokens, der er plads adskilt, og i den næste for sløjfe er jeg tokenizing og sende disse tokens som parametre til et andet script.


FOR /F \%\%i IN (C:list.txt) DO

FOR /F "tokens=1,2 delims= " \%\%A IN (\%\%i) DO   
winscp.com /script=C:myscript1.txt /parameter \%\%A  C:\%\%B


Men jeg får følgende fejl. Det var ikke forventet på dette tidspunkt.


Kan nogle forklare, hvad jeg mangler.


Tak

Bedste reference


Uafhængigt af det allerede løste problem, kan du opnå tokenseparationen i det samme FOR at læse filen. Også for kommando har mellemrum som standard separatorer, så delims= " er ikke nødvendig. Det er:


FOR /F "tokens=1,2" \%\%A IN (C:list.txt) DO  (
   winscp.com /script=C:myscript1.txt /parameter \%\%A  C:\%\%B
)

Andre referencer 1


Batchfiler er ikke fri form og masser af hvide rum er betydelige. Som i dette tilfælde hvor du kunne skrive det hele i en linje, men du kan ikke sprede det ud over flere linjer.


En anden mulighed er at eksplicit bruge blokke:


FOR /F \%\%i IN (C:list.txt) DO (
  FOR /F "tokens=1,2 delims= " \%\%A IN (\%\%i) DO (
    winscp.com /script=C:myscript1.txt /parameter \%\%A  C:\%\%B
  )
)