Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: KZN en 13 Marzo 2014, 11:49 am



Título: [Batch] Hacerlo mas intuitivo
Publicado por: KZN en 13 Marzo 2014, 11:49 am
lo que quería es que si le pido un comando de abrir un puerto, mientras hace eso que me salga otra cosa en la cmd, por ejemplo "cargando..." para que no se haga tanto royo


Título: Re: [Batch] Hacerlo mas intuitivo
Publicado por: Eleкtro en 13 Marzo 2014, 12:39 pm
¿Podrías reformular la duda en un lenguaje que todos podamos entender, y de paso, aportar el código que estás utilizando?.

De todas formas, puedes recurrir al comando Start para instanciar una segunda CMD o ejecutar otro comando de forma asíncrona, eso es lo único que puedes llegar a conseguir en Batch:

Código
  1. @Echo OFF
  2.  
  3. Echo Cargando...
  4.  
  5. REM Lo ejecuto en una nueva instancia de la CMD.
  6. REM Start /MIN "New CMD" "%ComSpec%" /K "Dir /B /S "%HomeDrive%""
  7.  
  8. REM O lo ejecuto en la misma ventana.
  9. Start /B "Asynchrnous Command" Dir /B /S "%HomeDrive%" 1>NUL 2>&1
  10.  
  11. Echo Hacer otra cosa mientras tanto...
  12.  
  13. Pause&Exit

Si quieres hacer algo mejor que eso, entonces debes cambiar a un lenguaje de verdad.

Saludos


Título: Re: [Batch] Hacerlo mas intuitivo
Publicado por: KZN en 13 Marzo 2014, 14:06 pm
quiero que mientras haga un ejemplo este proceso
Código:
@echo off

set name=part*
set name2=rar
ren *.%name%.%name2% AC3.%name%.%name2%

en la consola cmd se vea "cargando..."


Título: Re: [Batch] Hacerlo mas intuitivo
Publicado por: PedroDJavier en 13 Marzo 2014, 15:22 pm
Este metodo es algo guarro pero funciona muy bien:
Por ejemplo:
Código:
@echo off
echo BORRANDO CARPETA "MONO" DE ESCRITORIO...
PING LOCALHOST /n 5 >nul
del %homepath%\desktop\mono
echo TERMINADO !
EXIT

Esto lo que hace es muestra durante 5 segundos el texto "BORRANDO CARPETA MONO DE ESCRITORIO" y cuando pasan esos 5 segundos la borra pero lo que el usuario ve es como si se estuviera borrando durante esos 5 segundos.

Creo que no me he explicado bien pero en realidad es muy muy facil.

Un saludo !


Título: Re: [Batch] Hacerlo mas intuitivo
Publicado por: KZN en 13 Marzo 2014, 15:48 pm
es justo lo que busco, pero si quiero poner muchas lineas mientras aparece el mensaje, con esas lineas que me das me valdría o tendría que hacerla que repetirla??


Título: Re: [Batch] Hacerlo mas intuitivo
Publicado por: PedroDJavier en 13 Marzo 2014, 15:58 pm
es justo lo que busco, pero si quiero poner muchas lineas mientras aparece el mensaje, con esas lineas que me das me valdría o tendría que hacerla que repetirla??

Las lineas de codigo se van a ejecutar muy rapido a no ser que tenga un pc con poco procesador o RAM, el mensaje es solo un efecto grafico de forma que puedes hacer algo asi:

Código:
@echo off
echo PROCESANDO...
PING LOCALHOST /n 5 >nul
set sarandonga=ramaldamadingond
set xxxx=yfuisgf
set ufiowehf=uf8ef8ye3w
set fyeufhuief9o=7489164
set hfuehfuie=uy8932yf
del C:\carpeta_inutil
del C:\carpeta_util
echo TERMINADO !
pause
exit

Es decir se mostrara PROCESANDO...  y por 5 segundos aparentemente no se hara nada (es por el >nul) y luego si hay muchas instrucciones pues lo que tarden es decir el mensaje permanece por 5 segundos pero si luego copias un archivo de 1gb alomejor el proceso se alarga 10 segundos mas que es lop que tarda en copiarse el archivo (eso si, recuerda poner >Nul al final para que no se muestre mientras se copia)

Ahora creo que me expllique mejor, Un saludo

PD: Te voy a hacer un programa de prueba ahora para que veas


Título: Re: [Batch] Hacerlo mas intuitivo
Publicado por: PedroDJavier en 13 Marzo 2014, 16:02 pm
Código:
@echo off
echo PULSA CUALQUIER TECLA PARA VER LA DEMO DE ESPERAR UN TIMPO
echo             POR PEDRODJAVIER
pause>nul

::aqui empieza lo bueno xD

cls
echo CARGANDO...
PING LOCALHOST /n 5 >nul
echo.
echo  PARTE 1 COMPLETADA
echo PULSA CUALQUIER TECLA PARA CONTINUAR
pause>nul
echo CARGANDO PARTE 2...
ping LOCALHOST /n 3 >Nul
echo TERMINADO! (DISCO C BORRADO XD)
PING LOCALHOST /n 10 >nul
exit

Compilalo y entenderas mejor como funciona :D

Un saludo !


Título: Re: [Batch] Hacerlo mas intuitivo
Publicado por: Eleкtro en 13 Marzo 2014, 16:02 pm
es justo lo que busco

¿Estás seguro?, ¿porque hacer esperar al usuario durante "X" segundos cuando la acción puede ser inmediata, y puedes seguir mostrando la misma información usando ecos?.

Saludos


Título: Re: [Batch] Hacerlo mas intuitivo
Publicado por: KZN en 13 Marzo 2014, 16:03 pm
pero se va mostrar lo que hago o no? porque yo lo que quiero es que por ejemplo "abrir un puerto"

que estea abriendo el puerto pero que al mismo tiempo no este mostrando eso sino que aparezca "Cargando..."


Título: Re: [Batch] Hacerlo mas intuitivo
Publicado por: Eleкtro en 13 Marzo 2014, 16:14 pm
Citar
¿Podrías ... aportar el código que estás utilizando?.

Desconozco que comando estás usando a pesar de habertelo pedido ya, asi que confórmate con esto:


Presudocódigo:
Código:
Echo: Mostrar Mensaje informativo
Ejecutar Comando y redirigir la salida a NULL


Código:
Código:
@Echo off

Echo: Cargando
Comando 1>NUL 2>&1

Echo: Cargando otra cosa
OtroComando 1>NUL 2>&1

Y lee sobre el redireccionamiento de comandos.

Saludos.


Título: Re: [Batch] Hacerlo mas intuitivo
Publicado por: Zomkar en 13 Marzo 2014, 22:20 pm
conoces la opcion

Código:
@echo off

porque si pone ON se ve todo y si pone off, solo se ve lo que tu "quieres" por ejemplo:

Código
  1. @echo off
  2. set /a A=1
  3. set /a B=2
  4. set /a "C=%A%+%B%"
  5. echo %C%
  6.  

da como salida por pantalla:

Código:
3

mientras que si usamos @echo on

Código:
set /a A=1
set /a B=2
set /a "C=1+2"
echo 3
3

Si aún con echo off se muestra algo y no quieres, la sugerencia de Elektro es la buena, tienes que indicarle al comando/programa que no queremos salida por pantalla (o que la queremos a otro lado, p. ej. un archivo de texto).

Y si, aportar el código ayudaría lo suyo.

PS: con los ejemplos que comentas, con usar echo off y redirigir la salida debería ser más que suficiente


Título: Re: [Batch] Hacerlo mas intuitivo
Publicado por: KZN en 13 Marzo 2014, 23:02 pm
se la pongo pero siguen apareciendo nose porque


Título: Re: [Batch] Hacerlo mas intuitivo
Publicado por: Zomkar en 14 Marzo 2014, 00:10 am
mira para que veas un poco qué implica la redirección:

Código:
pause>nul

(no hay salida, solamente espera que pulses tecla)

Código:
pause

lo mismo pero hay salida:

Presione una tecla para continuar . . .

Si no te funciona puede haber varias razones, pero si no nos aclaras qué intentas hacer es dificil ayudarte más.

El tema para empezar está en que la aplicación sea modo consola o gráfica porque si es lo segundo al menos que yo sepa no puedes hacerlo con batch, y no es la única variable, asi que si no sabemos con qué tratamos es dificil..


Título: Re: [Batch] Hacerlo mas intuitivo
Publicado por: KZN en 14 Marzo 2014, 15:46 pm
no me estan entendiendo, lo que quiero es que si por ejemplo mando al ordenador por bat ir a %homedrive% no quiero que la consola me muestre

Código:
cd %homedrive%

quiero que mientras hace esa operación me diga "Cargando..."


Título: Re: [Batch] Hacerlo mas intuitivo
Publicado por: Zomkar en 14 Marzo 2014, 21:50 pm
pues dime si ésto te funciona

Código
  1. @echo off
  2. CD %USERPROFILE%
  3. echo CARGANDO
  4. pause>nul
  5.  

porque debería

PS: si quieres que el mensaje tenga movimiento/no se quede esperando puedes usar
Código:
ping localhost /n X
donde X es las veces que hará ping, así tienes una medida de tiempo aproximada entre cada echo, y puedes usar cls para borrar todo lo que hay en la pantalla (de la consola) si te hace falta.


Título: Re: [Batch] Hacerlo mas intuitivo
Publicado por: KZN en 14 Marzo 2014, 23:20 pm
no era lo que buscaba pero gracias


Título: Re: [Batch] Hacerlo mas intuitivo
Publicado por: Zomkar en 15 Marzo 2014, 00:39 am
mi código hace justo lo que pides:

muestra CARGANDO y nada más

tendrás que concretar qué es lo que las soluciones ofrecidas no cubren porque sino...


Título: Re: [Batch] Hacerlo mas intuitivo
Publicado por: KZN en 15 Marzo 2014, 19:59 pm
que si por ejemplo hago un log de "systeminfo" que no lo diga, que diga otra cosa, sabes lo que quiero decir ??


Título: Re: [Batch] Hacerlo mas intuitivo
Publicado por: Eleкtro en 15 Marzo 2014, 20:16 pm
que si por ejemplo hago un log de "systeminfo" que no lo diga, que diga otra cosa

lee sobre el redireccionamiento de comandos.

Código
  1. @Echo off
  2.  
  3. Echo: [+] Cargando...
  4. SystemInfo.exe 1>"%TEMP%\SystemInfo.tmp" 2>NUL
  5. Type "%TEMP%\SystemInfo.tmp"
  6.  
  7. Pause&Exit

Saludos


Título: Re: [Batch] Hacerlo mas intuitivo
Publicado por: KZN en 16 Marzo 2014, 01:05 am
gracias esto si considero un comentario útil