Yo había leído en un sitio que para asignar con el comando set es lo mismo:set "variable=valor"
que(set variable=valor)
Sin embargo, he encontrado un bug de cmd.exe.
Cuando cmd.exe reconoce una sola comilla dentro de paréntesis termina el archivo por lotes.
Por eso si se hace:el archivo por lotes termina.(")
Por eso si tenemos el siguiene código:
test.cmd@echo off
(set var=%1)
echo.El texto se muestra.
y ejecutamos:el texto no se muestra porque el archivo por lotes concluyó antes por el bug.test.cmd "
Pero si hacemos:
test.cmd@echo off
set "var=%1"
echo.El texto se muestra.
el texto si es mostrado.
Entonces no es lo mismo:que contiene el bug.(set variable=valor)
que:set "variable=valor"
Bug en el comando set de batch
Descubierto por 0x0309:
0 comentarios:
Publicar un comentario