hacer eco de una variable dentro de una variable en lote

Aquí está mi situación: hago un lote para recuperar una recta numérica de un file.txt, luego de configurar cada línea en una variable. Y después de eso quiero usar la variable diferente, creada dinámicamente, en un command git.

Realmente he avanzado (gracias a este sitio en particular) y cerca del objective final. Imaginemos que mi file.txt se vea así y llame a errorLine.txt:

365 369 389 393 413 417 437 491 515 566 587 610 681 887 964 

Y mi script aquí (blame.bat): EDITADO

 FINDSTR /R /N "^.*" ..\log_test\errorLine.txt | FIND /C ":" > ..\log_test\numbLine.txt (set /pi=)<..\log_test\numbLine.txt echo %i% setlocal EnableDelayedExpansion rem Load the lines of file in "l" array: set n=0 for /F %%a in (..\log_test\errorLine.txt) do ( set /A n+=1 set "l!n!=%%a" ) rem Show any line you want, for example: set n=1 git blame -L !l%n%!,+1 ..\..\core\src\filepath.cpp -e set n=2 git blame -L !l%n%!,+1 ..\..\core\src\filepath.cpp -e pause 

Eso está funcionando, pero ¿hay alguna manera de no tener que establecer para cada línea al final ( set n=1 , set n=2 , …) e incrementar en el enlace del número de línea?

Gracias por adelantado.

Disculpe. La forma de resolver su problema es insert

 setlocal EnableDelayedExpansion 

al comienzo de su progtwig y luego use esto:

 echo '!l%%n!' 

Sin embargo, esta es la forma en que haría eso:

 @echo off setlocal EnableDelayedExpansion rem Load the lines of file in "l" array: set n=0 for /F %%a in (..\log_test\errorLine.txt) do ( set /A n+=1 set "l!n!=%%a" ) rem Show any line you want, for example: set n=15 echo '!l%n%!' 

Para más detalles, mira esta publicación .

 FINDSTR /R /N "^.*" ..\log_test\errorLine.txt | FIND /C ":" > ..\log_test\numbLine.txt (set /pi=)<..\log_test\numbLine.txt echo %i% set n=1 setlocal enableDelayedExpansion for /L %%n in (1,1,%i%) do ( grep -m%%n "[0-9][0-9][0-9]" ..\log_test\errorLine.txt | tail -n1 > ..\log_test\line%%n.txt (set /pl%%n=)<..\log_test\line%%n.txt echo '!l%%n!' ) echo "%l15%" cd pause endlocal 

Puede ser que esto es lo que estás buscando. Necesitas expansión retrasada y %% n debería ser un lado encerrado con % Pero no tengo grep y tee instalados, así que no estoy seguro si esto funcionará.