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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Batch Borrar la pantalla pero no el call
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Batch Borrar la pantalla pero no el call  (Leído 7,696 veces)
ELVJop

Desconectado Desconectado

Mensajes: 132



Ver Perfil
Batch Borrar la pantalla pero no el call
« en: 16 Abril 2012, 19:07 pm »

Hola amigos una vez mas traigo un reto muy complicado. Resulta que viendo una imagen vi como una barra de progreso hiba avanzando. Esa idea me encanto asi que me puse a revisar su script. Lo que paso fue que utilizaba el call cosa que me soluciono otra duda que no viene al caso. La question es que mi programa borra archivos (de cache ect) la question es que si pongo el call me sale: No se ha encontrado X archivo. Y claro queda fatal. Despues se me ocurrio limpiando la pantalla pero claro tambien limpia el call. Tengo una solucion que seria:
Código:
if exist XXXX.XX goto :seguir1
del /F /Q XXXXXX.XX
:seguir1
Pero es super aburrido tenr que poner eso en todo el code. Existe alguna manera de reparar mi problema?

PD: Duda extra haber quien la sabe: Que es echo+???

PD2:Edito para degar la duda mas clara que uso call como etiqueta no como comando. (Urge un poquito gracias)

PD3: trible duda: Sabe alguien el comando para que salte una ventana de aviso? El amo Google me dice que es msg pero no.

PD4: Otra duda mas!!! Tengo otra duda que la busco en google si no modifico el post

PD5: Esta no es la duda de antes pero: Existe alguna manera de mandar a windows que comprima un archivo a Zip? Gracias

PD6: Esta si es la duda del PD4: Estoy intentando hacer un registro que pongas una pass y te diga Version registrada o no registrada (De aqui el PD3) La question es que si lo hago en archivo es muy facil de jaquear. Si lo meto en el registro es mas dificil. Por eso usario Reg add. Pero claro para comparar necesito reg compare y no entiendo su sintaxis. Alguien me ayuda?


« Última modificación: 16 Abril 2012, 19:53 pm por ELVJop » En línea

El dia 3 de mayo esta cuenta sera borrada.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Batch Borrar la pantalla pero no el call
« Respuesta #1 en: 16 Abril 2012, 20:30 pm »

Por dios, 6 postdatas xD

Pero claro para comparar necesito reg compare y no entiendo su sintaxis. Alguien me ayuda?

Para verificar el valor de una clave, Usa reg query.

Código
  1. @echo off
  2.  
  3. Set pass=elektro
  4. Reg add "HKCR\Test" /v "login" /d "%pass%" /F >NUL
  5.  
  6. :Login
  7. cls
  8. Echo Dime el pass...
  9. Set /P compare=^>
  10. Reg query "HKCR\Test" /f "%compare%" /e >NUL
  11. If NOT %Errorlevel%==0 (Echo pass incorrecto) Else (Echo pass correcto!)
  12. Goto :Login



si pongo el call me sale: No se ha encontrado X archivo

Redirecciona la salida del comando DEL para ocultar el mensaje de "no se encuentra el archivo"...

Código
  1. Call :borrar_cache
  2.  
  3. :borrar_cache
  4. Del /Q /F archivo 2>NUL
  5. Goto :EOF



PD3: trible duda: Sabe alguien el comando para que salte una ventana de aviso? El amo Google me dice que es msg pero no.

En windows XP puedes usar el comando "MSG"
En otros windows NO. Puedes usar las aplicaciones de terceros: NirCMD, Messagebox, y alguna más q no recuerdo...
También puedes hacerlo con una simple línea de vbscript:

Código
  1. MsgBox "bla bla bla" & chr(13) & "zzZzzZz...",0,"AVISO"



PD5: Esta no es la duda de antes pero: Existe alguna manera de mandar a windows que comprima un archivo a Zip? Gracias
7zip, gzip, winzip o WinRAR por linea de comandos



Que es echo+???
Lee un tutorial básico de Batch y lo entenderás  :P

Salu2


En línea



ELVJop

Desconectado Desconectado

Mensajes: 132



Ver Perfil
Re: Batch Borrar la pantalla pero no el call
« Respuesta #2 en: 16 Abril 2012, 20:58 pm »

Rengo que ir por puntos que si no no me aclaro:

1-Exacto!!! Pero existe alguna forma de hacer: If exist Y una entra da de registro?

2-Ahora lo pruebo pero hace pinta  de ser exactamente lo que busco.

3- ¿? (Que conste que tengo que irme por eso no pruebo todavía los codes) No entiedo. Osea ese codigo que tu me has dado es valido o no?

4-Si pero en Windows 7 (No se si en Vista o XP) Existe la posibilidad de comprimirlo en zip sin un compresor (Enviar a > Archivo comprimido zip

5- Haro lo busco pero en google todo el rato me estan apareciendo tutoriales de echo y echo.
En línea

El dia 3 de mayo esta cuenta sera borrada.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Batch Borrar la pantalla pero no el call
« Respuesta #3 en: 16 Abril 2012, 21:18 pm »

Cita de: ELVJop
1-If exist Y una entra da de registro?
No, "If exist" es una comprobación para archivos. Tienes que usar reg query.

Cita de: ELVJop
3- ese codigo que tu me has dado es valido o no?
Si, Como ya dije es un simple vbs.
http://msdn.microsoft.com/en-us/library/sfw6660x%28v=vs.85%29.aspx

Código
  1. @Echo off
  2. echo MsgBox "bla bla bla" ^& chr(13) ^& "zzZzzZz...",0,"AVISO" > script.vbs
  3. start /B wscript.exe  script.vbs
  4. Del /Q script.vbs

Cita de: ELVJop
4-en Windows 7 Existe la posibilidad de comprimirlo en zip sin un compresor (Enviar a > Archivo comprimido zip
Pero no es un comando.

Cita de: ELVJop
5-  lo busco me estan apareciendo tutoriales de echo y echo.

Código
Sirve para insertar una línea en blanco.

Saludosss
En línea



ELVJop

Desconectado Desconectado

Mensajes: 132



Ver Perfil
Re: Batch Borrar la pantalla pero no el call
« Respuesta #4 en: 16 Abril 2012, 21:36 pm »

vamos reduciendo!!!! Edit: No terminamos de reducir

1- Si pero si es el usuario el que pone la contraseña como lo hago? En archivos es if exist xxxx.xx goto :yaregistrado else goto :sinregistrar. El query esta bien pero y si no existe la entrada? Tendra que ser creada no?

4- ¿Pero existe alguan forma de coger la ruta o algo y pasarlo tipo start XXX.exe /C:\Misarchivos\comprimirestacarpeta
¿?
« Última modificación: 16 Abril 2012, 22:36 pm por ELVJop » En línea

El dia 3 de mayo esta cuenta sera borrada.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Batch Borrar la pantalla pero no el call
« Respuesta #5 en: 16 Abril 2012, 22:36 pm »

Cita de: ELVJop
El query esta bien pero y si no existe la entrada? Tendra que ser creada no?
El ejemplo que te dí crea primero la entrada con el pass ya predefinido para probar el code... luego el usuario tiene que typear la contraseña, y si no es correcta O SI NO EXISTIERA LA ENTRADA manda un código de error "1", El cual te sirve para lo que intentas.

Si por otro lado tienes dificultades para hacer un menú de login, busca en los primeros temas (sobre batch) de este subforo encontrarás ejemplos recientes ya hechos, y en el buscador encontrarás muchos más.



Cita de: ELVJop
Código:
@echo off
MsgBox "bla bla bla" & chr(13) & "zzZzzZz...",0,"AVISO"
pause
exit

ELVJop, Te estoy haciendo comprender que esa línea es vbs (VisualBasicScript), Es otro lenguaje de scripting.
msgbox es una función de VBS, si quieres usarlo en un bat, usa el ejemplo tal cual lo puse en el comentario de arriba.



Cita de: ELVJop
4- ¿Pero existe alguan forma de coger la ruta o algo y pasarlo tipo start XXX.exe /C:\Misarchivos\comprimirestacarpeta

A cualquier programa por línea de comandos le puedes pasar un argumento.
Código
  1. REM Para WinRAR
  2. Set "ARCHIVO=c:\test.jpg"
  3. Rar.exe a Test.zip "%ARCHIVO%"

PD: Mírate la ayuda de los programas: XXX.exe /?



Cita de: ELVJop
5-que diferiencia hay entonces entre echo+ y echo.?
Exactamente ninguna.

Puedes usar:
Código:
echo+ hola
echo: hola
echo. hola
echo hola
En línea



ELVJop

Desconectado Desconectado

Mensajes: 132



Ver Perfil
Re: Batch Borrar la pantalla pero no el call
« Respuesta #6 en: 16 Abril 2012, 22:39 pm »

Te adelantaste a mi ultimo edit. A vale ya te entiendo lo que quieres es que ponga set /p y que el diga la contraseña. Muy ingenioso gracias. No espera me estoy liando. Un segundo que me organize porque no lo entiendo. PErdon estoy echo un lio. Ya aclare mis ideas Lo que tu dices que si no existe (Errolevel) ME da 1 si pero lo malo es que entonces ya habras tipeado una contraseña. Pero lo tuyo no me sirve. Porque si yo quiero hacer algo tipo esto:
Código
  1. if exist HCKU\XXXXX goto :yaregistrado else goto :registro
  2.  
  3. :registro
  4. echo Digame una pass
  5. set /p XXX=
  6. cls
  7. echo Repita la pass
  8. set /p XXXX=
  9. if %XXX%==%XXXX% goto :bien else goto registro
  10.  
  11. :bien
  12. reg add %XXX% HCKU\XXXXX
  13. goto :programa
  14.  
  15. :registrado
  16. cls
  17. echo Digame la pass
  18. set /p XXXP=
  19. Reg query "HKCR\XXXXX" /f "%XXXP%" /e >NUL

No se si me explico

El problema esta en que IF exist como tu dices es para archivos. No para entradas en el registro.
Lo que se me acaba de ocurrir es crear 2 entradas. 1 de ellas seria por ejemplo 1234
Despues un REg query para comparar esa entrada que es 1234 entonces lo comparo por errorlevel si me dice error es que nunca se ha registrado si no si se ha registrado



Elektro H@cker: Usa las etiquetas para los códigos
« Última modificación: 16 Abril 2012, 23:10 pm por EleKtro H@cker » En línea

El dia 3 de mayo esta cuenta sera borrada.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Batch Borrar la pantalla pero no el call
« Respuesta #7 en: 16 Abril 2012, 23:08 pm »

A vale ya te entiendo lo que quieres es que ponga set /p y que el diga la contraseña.
Muy ingenioso gracias.

La verdad es que... No es ingenio, Es la única manera aquí y en China para interactuar con el usuario xD.

Repito, Si leyeras (más) un tutorial básico o ejemplos, Conocerías los comandos de Batch y las posibilidades que te permiten hacer cada uno de ellos (al menos los comandos básicos como SET).

if exist HCKU\XXXXX goto :yaregistrado else goto :registro
PD: Borra eso de tu mente ya xD  :P

Si que te sirve. Otro ejemplo:
Código
  1. @echo off
  2. Reg query "HKCU\Test1" >nul 2>&1
  3. If %Errorlevel% equ 0 (goto :registrado) Else (goto :registro)
  4.  
  5. :registro
  6. echo Usuario no registrado, Digame una pass
  7. set /p XXX=
  8. cls
  9. echo Repita la pass
  10. set /p XXXX=
  11. if "%XXX%"=="%XXXX%" (goto :bien) else (goto :registro)
  12.  
  13. :bien
  14. Reg add "HKCU\Test1" /v "login" /d "%XXX%" /F >NUL
  15. goto :programa
  16.  
  17. :registrado
  18. cls
  19. echo Usuario registrado, Digame la pass
  20. set /p XXXP=
  21. Reg query "HKCU\Test1" /f "%XXXP%" /e >NUL
  22. If NOT %Errorlevel% equ 0 (Echo pass incorrecto & goto :registrado) Else (Echo pass correcto!)
  23.  
  24. :programa
  25. echo bienvenido
« Última modificación: 16 Abril 2012, 23:10 pm por EleKtro H@cker » En línea



ELVJop

Desconectado Desconectado

Mensajes: 132



Ver Perfil
Re: Batch Borrar la pantalla pero no el call
« Respuesta #8 en: 17 Abril 2012, 19:03 pm »

Conseguido!!! He conseguido hacer mi programa. Ahora el problema esta en que quiero entendero.  :¬¬ lo unico que no entiendo de todo el code es esto :
Código:
Reg query "HKCU\Test1" >nul 2>&1
AL final y al cabo reg query es para comparar.
En línea

El dia 3 de mayo esta cuenta sera borrada.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Batch Borrar la pantalla pero no el call
« Respuesta #9 en: 17 Abril 2012, 19:19 pm »

lo unico que no entiendo de todo el code es esto :
Código:
Reg query "HKCU\Test1" >nul 2>&1
AL final y al cabo reg query es para comparar.

Query es para buscar coincidencias, Tú haces la comparación basándote en la búsqueda (Lo que encuentra).

El comando de arriba busca la clave "HKCU\Test1", Redireccionando las dos salidas para no mostrar nada en pantalla.
En línea



Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Borrar en BATCH « 1 2 »
Scripting
XP. 10 7,001 Último mensaje 2 Mayo 2007, 15:09 pm
por nhaalclkiemr
Batch comando DEL - Borrar archivos
Scripting
CaronteGold 4 5,737 Último mensaje 28 Agosto 2009, 04:48 am
por CaronteGold
Comando CALL [BATCH]
Scripting
CaronteGold 5 16,112 Último mensaje 23 Septiembre 2009, 00:54 am
por CaronteGold
¿Borrar pantalla Pascal?
Programación General
pyxolo 1 5,777 Último mensaje 9 Diciembre 2011, 02:26 am
por Ferno
Instrucción para borrar la pantalla en C++
Programación C/C++
JonaLamper 1 2,175 Último mensaje 27 Diciembre 2015, 00:22 am
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines