elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Comportamiento inesperado [FOR+PAUSE]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Comportamiento inesperado [FOR+PAUSE]  (Leído 3,848 veces)
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Comportamiento inesperado [FOR+PAUSE]
« en: 28 Diciembre 2008, 18:00 pm »

Bueno esto realmente me sorprendio, segun mi experiencia haciendo scripts en Batch, pense que el siguiente script generaria algo como esto :

Código:
ALLUSERSPROFILE
APPDATA
CLIENTNAME
CommonProgramFiles
COMPUTERNAME
ComSpec
Desktop
FP_NO_HOST_CHECK
HOMEDRIVE
HOMEPATH
LOGONSERVER
NUMBER_OF_PROCESSORS
OS
Path
PATHEXT
PROCESSOR_ARCHITECTURE
PROCESSOR_IDENTIFIER
PROCESSOR_LEVEL
PROCESSOR_REVISION
ProgramFiles
PROMPT
SESSIONNAME
SystemDrive
SystemRoot
TEMP
TMP
USERDOMAIN
USERNAME
USERPROFILE
windir
Presione una tecla para continuar . . .

Código:
@ECHO OFF
FOR /F "TOKENS=1 DELIMS==" %%X IN ('SET') DO (
ECHO.%%X
)&PAUSE


Pero da un comportamiento inesperado :
Código:
ALLUSERSPROFILE
Presione una tecla para continuar . . .
APPDATA
Presione una tecla para continuar . . .
CLIENTNAME
Presione una tecla para continuar . . .
CommonProgramFiles
Presione una tecla para continuar . . .
COMPUTERNAME
Presione una tecla para continuar . . .
ComSpec
Presione una tecla para continuar . . .
Desktop
Presione una tecla para continuar . . .
FP_NO_HOST_CHECK
Presione una tecla para continuar . . .
HOMEDRIVE
Presione una tecla para continuar . . .
HOMEPATH
Presione una tecla para continuar . . .
LOGONSERVER
Presione una tecla para continuar . . .
NUMBER_OF_PROCESSORS
Presione una tecla para continuar . . .
OS
Presione una tecla para continuar . . .
Path
Presione una tecla para continuar . . .
PATHEXT
Presione una tecla para continuar . . .
PROCESSOR_ARCHITECTURE
Presione una tecla para continuar . . .
PROCESSOR_IDENTIFIER
Presione una tecla para continuar . . .
PROCESSOR_LEVEL
Presione una tecla para continuar . . .
PROCESSOR_REVISION
Presione una tecla para continuar . . .
ProgramFiles
Presione una tecla para continuar . . .
...

Aqui se ve que el for esta cerrado ya (con el ")" ) :
Código:
)&PAUSE

Pero funciona como si fuera de esta manera :
Código:
@ECHO OFF
FOR /F "TOKENS=1 DELIMS==" %%X IN ('SET') DO (
ECHO.%%X
PAUSE
)


Otro ejemplo de uso es con el argumento /L :
Código:
@ECHO OFF
FOR /L %%X IN (1,1,10) DO (
ECHO.%%X
)&PAUSE

Saludos a todos.


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Pony-Magic

Desconectado Desconectado

Mensajes: 36



Ver Perfil
Re: Comportamiento inesperado [FOR+PAUSE]
« Respuesta #1 en: 28 Diciembre 2008, 22:15 pm »

mmm..., que raro.
tambien
Código:
@echo off
for /L %%a in (1,1,10) do (
echo %%X
)&Msg * Prueba
sale las 10 veces el Msg... parece que no lo cierra bien al For... ni idea  :xD


« Última modificación: 28 Diciembre 2008, 22:26 pm por Pony-Magic » En línea

kraszic

Desconectado Desconectado

Mensajes: 277


Ver Perfil
Re: Comportamiento inesperado [FOR+PAUSE]
« Respuesta #2 en: 28 Diciembre 2008, 23:52 pm »

no se muy bien si te interesa esa estructura en particular.
Yo pienso que el problema es del "&"

Asi me funciona perfecto

Código:
@ECHO OFF
FOR /F "TOKENS=1 DELIMS==" %%X IN ('SET') DO (
ECHO.%%X
)
pause

saludos
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Comportamiento inesperado [FOR+PAUSE]
« Respuesta #3 en: 29 Diciembre 2008, 01:45 am »

no se muy bien si te interesa esa estructura en particular.
Yo pienso que el problema es del "&"

Asi me funciona perfecto

Código:
@ECHO OFF
FOR /F "TOKENS=1 DELIMS==" %%X IN ('SET') DO (
ECHO.%%X
)
pause

saludos

Creo que no me explique, se bien como funciona el FOR.

El post no era una duda ni un problema, era solo para relatar el comportamiento de :
Código:
)&PAUSE
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
kraszic

Desconectado Desconectado

Mensajes: 277


Ver Perfil
Re: Comportamiento inesperado [FOR+PAUSE]
« Respuesta #4 en: 29 Diciembre 2008, 16:03 pm »

ya se q lo q querias era solo explicarlo.
Yo solo te he dicho q pienso q el problema es del "&" parece como si el ")" tiene q estar al final de la linia.

Si te fijas, el problema no lo da solo con el pause, prueba a poner ")&cualquiercomando" y ya veras como tambien pasa lo mismo.

Ejemplo

Código:
@ECHO OFF
FOR /F "TOKENS=1 DELIMS==" %%X IN ('SET') DO (
ECHO.%%X
)&echo loquesea
pause

Seguramente es un error q no tendria q pasar pero se habra pasado por alto...

saludos
En línea

sirdarckcat
Aspirante a supervillano
Colaborador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: Comportamiento inesperado [FOR+PAUSE]
« Respuesta #5 en: 29 Diciembre 2008, 20:55 pm »

&, |, etc.. unen 2 comandos en uno solo, por lo que

DO (lalala...)&otracosa

hacen el comando (lalala...)&otracosa

es decir, el hecho de que pensaras que se ejecutaria al final es incorrecto, si quisieras eso, tendrias que concatenar el &pause al comando for

(FOR ... DO (...))&pause
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Un regalo inesperado?
Foro Libre
rdzlcs 3 2,717 Último mensaje 13 Diciembre 2010, 23:08 pm
por anonimo12121
¿Los cortes de energía inesperado pueden dañar el hardware?
Hardware
Aikanáro Anário 1 1,993 Último mensaje 24 Agosto 2011, 05:35 am
por Aprendiz-Oscuro
Pregunta noob: ¿Pause o no pause? C++ « 1 2 »
Programación C/C++
Puntoinfinito 14 10,310 Último mensaje 8 Agosto 2012, 19:24 pm
por X3R4CK3R
[C] [solved] Comportamiento inesperado
Programación C/C++
reconFito 3 9,188 Último mensaje 6 Abril 2022, 10:50 am
por MAFUS
W7 ¿cómo desactivar todo lo que pause una descarga?
Windows
Tachikomaia 3 3,206 Último mensaje 11 Octubre 2023, 23:53 pm
por Tachikomaia
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines