Home > Blockchain >  Why FOR loop with "do (looped content)" not working?
Why FOR loop with "do (looped content)" not working?

Time:01-10

I really don't understand why the first batch script is working and second not. I need to use the second batch script as I need to add more conditional inside the loop.

The script counts the number of lines in .txt file and make a separate variable for each of the lines

this version is working

@echo off
setlocal EnableDelayedExpansion

for /f "tokens=2 delims='" %%B in ('type "output-mp3.txt"') do  set /a "nlines =1 0" && <con: set "_line!nlines!=%%~nB"

echo line 1 !_line1!
echo line 2 !_line2!
echo total number of lines !nlines! and name of the song !_line2!

pause

I need the add more things on the for loop so I need do (...) but is not working ..

@echo off
setlocal EnableDelayedExpansion

for /f "tokens=2 delims='" %%B in ('type "output-mp3.txt"') do (
    set /a "nlines =1 0" && <con: set "_line!nlines!=%%~nB"
    echo line 1 !_line1!
    echo line 2 !_line2!
    echo total number of lines !nlines! and name of the song !_line2!
    pause
)

output-mp3.txt contain

file '...\intro\Canal-1\Videos-10.mp3'
file 'F...Canal-1\Videos-10\0HDW0N3Q.mp3'

CodePudding user response:

@echo off
setlocal EnableDelayedExpansion

 
for /f "tokens=2 delims='" %%B in ('type "output-mp3.txt"') do (
 set /a "nlines =1 0"
 <con: set "_line!nlines!=%%~nB"
)

set _line

works for me - regardless of the number of lines in the file.

  • Related