2010-10-16 14 views

Respuesta

20

Con los archivos de proceso por lotes, las variables se expanden cuando se lee su comando, por lo que sería tan pronto como se ejecute for. En ese punto, ya no dice echo %first%, literalmente dice echo 0, porque ese era el valor en el punto de expansión.

Para evitar eso, necesita usar la expansión retardada rodeando su nombre de variable con ! en lugar de % - por lo que sería echo !first!. Esto puede requerir que inicie cmd.exe con el parámetro/V o use setlocal enabledelayedexpansion al principio del archivo por lotes (justo después de echo off).

Si escribe set /?, verá una explicación mucho más detallada de esto al final de la salida.

Cuestiones relacionadas