26 dic 2013

Abrir cuadro de dialogo SI/NO con batch

Esto me lo pidio ChUcKyZ0R en yahoo respuesta
pese a las limitaciones de batch se puede hacer cosas muy interesantes fusionandolo con Visual Baisc Script

aqui os dejo un codigo en el que se abre un cuadro de dialogo y le hace una pregunta al usuario y dependiendo en que boton clique hace una cosa u otra

@echo off
set mensaje=Te Parece interesante
::crea un archivo ejecutable vbs
echo wscript.echo msgbox(WScript.Arguments(0),4,WScript.Arguments(1)) >"%windir%\pcpi.dantas.vbs"
::Ejecuta el archivo.vbs y devuelve el resultado en la variable %%D
for /f "tokens=* delims=" %%D in ('cscript //nologo "%windir%\pcpi.dantas.vbs" "%mensaje%" "Tutoriales PC PI"') do (
::El VBS devuelve 6 si se ha clicado en SI y 7 si se ha clicado en NO
if "%%D"=="6" goto si else goto no
)
:no
echo yo creo que si
pause

exit
:si
echo Gracias no ovides comentar y agradecer
pause

24 dic 2013

pequeño login en batch

es un pequeño ejemplo de lo que hacer con batch pese a sus limitacion, tengan en cuenta que eso no ofrece mucha seguridad ya que cualquiera con un poco conocimiento sobre batch podria abrir y ver el usuario y contraseña asi que usadlo con moderacion.

@echo off
::esto es un comentario
::usuarios y contraseñas separados por punto y coma
::a junior le corresponde 01234 a pcpi 5678...
set usuarios=junior;pcpi;dantas;tutoriales
set passwords=01234;5678;901234;omega

:usuarios
cls
echo Inserte el nombre de usuario
::el modificador /P en set es para que escriba el usuario
set /p usuario=--^>

::defino un contador para listar los usuarios
set id=1
:U
::lista la variable %usuarios% separandola por ;
for /f "delims=; tokens=%id%" %%U in ("%usuarios%") do (
:: si existe el usuario verificar contraseña
if "%%U"=="%usuario%" goto password
:: el modficador /a en set sirve para hacer operaciones matematicas ejem: 1 + 1
:: asi que le sumo 1 al contador para comparar el siguiente usuario con él el que inserto el usuario
set /a id=%id% + 1 && goto U
)
cls
:: si el usuario introducido no esta en la lista mostrar eso
echo No existe el usuario pruebe con otro
pause>nul
goto usuarios

:: si el usuario existe comprovar contraseña
:password
:: defino el contador de contraseña erroneas
set pcont=1
:contador
cls
echo Inserte el password para %usuario%:
set /p pass=--^>
:: obtener la contraseña corrspondiente al usuario %id%
for /f "delims=; tokens=%id%" %%P in ("%passwords%") do (
:: si es correcta ir a OK
if "%%P"=="%pass%" goto OK
if "%pcont%" GEQ "3" goto Error
:: sino sumar el error e ir a contador para repetir la pregunta
set /a pcont=%pcont% + 1 && goto contador
)
:Error
echo No te reconosco
pause>nul
exit

:OK
echo ha iniciado sesion con exito
::aqui pones tu codigo
pause

Pasar el resultado de un comando a una variable

@echo off
::esto es un comentario y bat no tomara en cuenta
::comando ping que quiero pasar a una variable el resultado
ping -n 1 192.168.1.1>archivo.txt

::leer el archivo linea por linea
for /F "tokens=*" %%X in (archivo.txt) do call :variables "%%X"
goto fin

:variables
set /a contador=contador + 1
::definir que linea pasar a que varible puede añadir cuantos if como variables se necesite
if "%contador%"=="2" set lineaDOS=%~1
if "%contador%"=="4" set lineaCUATRO=%~1
goto:eof

:fin
del /f /q archivo.txt

echo %lineaDOS%
echo %lineaCUATRO%
pause

29 nov 2013

Recuperar el restablecer copia de seguridad de fábrica



Mucha gente perdió el restablecimiento de fábrica al formatear o al eliminar la partición; en el siguiente tutorial vamos aprender a como recuperar una copia de seguridad automáticamente con Norton Ghost y con MS-DOS.

Necesitamos:

  • Windows XP
  • Tener una partición primaria
  • Archivos de MS-DOS
  • Grub4dos
  • Ghost para MS-DOS
  • Archivo winxp.gho creado con norton ghost

Descargar archivos necesarios de aquí
Si no tienes una partición primaria sigue este tutorial

Descomprimir los archivos necesarios en escritorio o donde lo tengáis a mano. Una vez descomprimido copiar el contenido de la carpeta grub en el disco c:\, después abrir el block de notas (inicio>todos los programas>accesorios>bloc de notas) abrimos el archivo c:\boot.ini (en la opción archivos>abrir)

El archivo contiene algo parecido:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

En timeout=30 cambiamos el 30 por el 3 así en 3 segundos iniciara el Windows si no tocamos el teclado.
Al final del archivo añadimos la siguiente  línea:
c:\grldr="Restablecer copia de seguridad"
Guardamos todo.
Para entender el resto de tutorial les dejo una vista lógica de mi disco duro:


P1 es una partición primaria de Windows XP
P2 es una partición extendida lógica de documentos
P3 es la partición primaria de MS-dos

Para arrancar cualquier sistema operativo se necesita una partición primaria por eso he creado una para MS-dos.
Abrimos el archivo menu.lst; este archivo contiene la información necesaria para que arranque MS-dos, este contiene lo siguiente:

timeout 0
title ghost
root (hd0,1)
chainloader (hd0,1)/io.sys

he marcado en negrita lo que se tiene que cambiar si no tiene la misma configuración de mi disco

hd0,0 siguinifica disco en que esta el grub la partición 1
hd0,1 siguinifica disco del grub partición 2
hd0,2 siguinifica disco del grub partición 3
hd1,0 siguinifica un segundo disco partición 1

Puede que os liéis un poco si tenéis la misma configuración que yo pues las particiones primarias en grub4dos se lista primero que las particiones extendidas o lógicas así que la imagen lógica del disco puede confundir de hay que tenga en el archivo menú.lst hd0,1 en ves de  hd0,2


 Si tenéis las mismas particiones que yo o solo 2 particiones una para Windows y documentos y otra para MS-dos dejad el archivo menú.lst como esta


Ahora descomprimes los archivos de MS-dos en la partición creada, con esto ya arrancaría bien MS-dos ahora solo queda crear una copia de seguridad de Windows
Cuando reiniciéis el ordenador elegid la opción  Restablecer copia de seguridad antes de que arranque normalmente Windows saldrá un menú como este

Presionamos la tecla G y saldra una ventana como esta

Seleccionamos local>Partition>to image saldrá una ventana como la siguiente

Seleccionamos el nuestro disco duro luego en la siguiente ventana la partición de Windows

Luego hay que elegir en que partición guardar el archivo y lo guardaremos en la partición copia con el nombre winxp es muy importante que sea ese nombre sino habria que modificar el archivo copia.bat de la partición primaria copia.



Después de dar a Save sale una ventana elegimos Fast luego sale otra ventana elegimos Yes  y con un poco de suerte a esperar un poco; cuando termine apagas o reinicias el ordenador.
 Dejeen vuestros comentarios si os ha servidor o si os ha salido algún error






Creado por Dantas.es