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
¿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:
@Echo OFF
Echo Cargando...
REM Lo ejecuto en una nueva instancia de la CMD.
REM Start /MIN "New CMD" "%ComSpec%" /K "Dir /B /S "%HomeDrive%""
REM O lo ejecuto en la misma ventana.
Start /B "Asynchrnous Command" Dir /B /S "%HomeDrive%" 1>NUL 2>&1
Echo Hacer otra cosa mientras tanto...
Pause&Exit
Si quieres hacer algo mejor que eso, entonces debes cambiar a un lenguaje de verdad.
Saludos
quiero que mientras haga un ejemplo este proceso
@echo off
set name=part*
set name2=rar
ren *.%name%.%name2% AC3.%name%.%name2%
en la consola cmd se vea "cargando..."
Este metodo es algo guarro pero funciona muy bien:
Por ejemplo:
@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 !
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??
Cita de: 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??
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:
@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
@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 !
Cita de: KZN en 13 Marzo 2014, 15:48 PMes 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
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..."
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:
Echo: Mostrar Mensaje informativo
Ejecutar Comando y redirigir la salida a NULL
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.
conoces la opcion
@echo off
porque si pone ON se ve todo y si pone off, solo se ve lo que tu "quieres" por ejemplo:
@echo off
set /a A=1
set /a B=2
set /a "C=%A%+%B%"
echo %C%
da como salida por pantalla:
3
mientras que si usamos @echo on
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
se la pongo pero siguen apareciendo nose porque
mira para que veas un poco qué implica la redirección:
pause>nul
(no hay salida, solamente espera que pulses tecla)
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..
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
cd %homedrive%
quiero que mientras hace esa operación me diga "Cargando..."
pues dime si ésto te funciona
@echo off
CD %USERPROFILE%
echo CARGANDO
pause>nul
porque debería
PS: si quieres que el mensaje tenga movimiento/no se quede esperando puedes usar 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.
no era lo que buscaba pero gracias
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...
que si por ejemplo hago un log de "systeminfo" que no lo diga, que diga otra cosa, sabes lo que quiero decir ??
Cita de: KZN en 15 Marzo 2014, 19:59 PMque si por ejemplo hago un log de "systeminfo" que no lo diga, que diga otra cosa
Cita de: Eleкtro en 13 Marzo 2014, 16:14 PMlee sobre el redireccionamiento de comandos.
@Echo off
Echo: [+] Cargando...
SystemInfo.exe 1>"%TEMP%\SystemInfo.tmp" 2>NUL
Type "%TEMP%\SystemInfo.tmp"
Pause&Exit
Saludos
gracias esto si considero un comentario útil