OK, bueno el caso es k me parece my chindo volverlo loco XD, me paso escribiendo números randes muxo rato XD, peo una cosa... No me funcionan los núeros negativos XD, me dice k e escrito una letra...
OK, bueno el caso es k me parece my chindo volverlo loco XD, me paso escribiendo números randes muxo rato XD, peo una cosa... No me funcionan los núeros negativos XD, me dice k e escrito una letra...
Ya, solo funcionan los normales.Iniciado por JK3
P.D: Pronto continuaré el curso.
Estoy deseando verlo, el batch es uno de mis lenguajes informaticos favoritos...Iniciado por Maestro html
Yo tampoco creo que alguien ponga un número mayor a ese.
Por otro lado estuve practicando, tratando de hacer uno que no solo multiplique, sino que te dé opciones para sumar, restar y dividir también, y hasta ahora no lo he conseguido. Creo que hay un error en los comandos que pongo. Podrías echarme una mano Html, o incluso tú Kaotick, que al parecer estás experimentado en el tema.
Gracias
Se puede hacer algo así:Iniciado por KYD
Saludos.Código:@echo off :ini cls echo Calculadora echo. echo 1.Sumar echo 2.Restar echo 3.Multiplicar echo 4.Dividir set /p i=Que quieres hacer? if not defined i (goto ini) if %i%==1 (goto sumar) if %i%==2 (goto restar) if %i%==3 (goto multiplicar) if %i%==4 (goto dividir) else ( cls echo Numero no valido pause > nul goto ini ) :sumar cls set /p i=Primer sumando: cls set /p j=Segundo sumando: set /a r=i+j cls echo Resultado: %r% pause >nul exit :restar cls set /p i=Minuendo: cls set /p j=Sustraendo: set /a r=i-j cls echo Resultado: %r% pause >nul exit :multiplicar cls set /p i=Primer factor: cls set /p j=Segundo factor: set /a r=i*j cls echo Resultado: %r% pause >nul exit :dividir cls set /p i=Dividendo: cls set /p j=Divisor: set /a r=i/j cls echo Resultado: %r% pause >nul exit
O.o o.O K LIO O.o o.OIniciado por Maestro html
uff kyd no encontre la forma de darte el progrmita ese asique con un poco de retraso pero bueno, ya e solucionao un par de cosillas que iban mal, te pongo aqui el codigo de una agenda que ize, pero es muuuy largo...
lo que mas me gusta es usar el apagado rapido xD no tarda na en apagarse y se apaga bien.@echo off
color 1F
:menu
title Agenda-Menu
cls
echo.
echo 1.Nuevo usuario
echo 2.Login
echo 3.Eliminar usuario
echo 4.Salir
set /p in=Que desea hacer?
if %in%==1 goto reg00
if %in%==2 goto log00
if %in%==3 goto delete
if %in%==4 (goto exit) else echo no se reconoce ese caracter && pause > nul && goto menu
rem FIN MENU--------
:reg00
cls
title Agenda-Nuevo usuario
echo.
echo Ingrese el nombre de nuevo usuario.
set /p name=
echo.
echo Ingrese su password
set /p pass=
goto :reg01
:reg01
title Agenda-Nuevo usuario
cls
mkdir c:\Agenda\%name%\
echo %pass% > c:\Agenda\%name%\%pass%.dat
attrib +h c:\Agenda\%name%\%pass%.dat
echo %name% > c:\Agenda\%name%\%name%.dat
echo Apuntes: > c:\Agenda\%name%\apuntes.txt
attrib +h c:\Agenda\%name%\apuntes.txt
echo Lista de tus resultados de imc > c:\Agenda\%name%\imc.txt
attrib +h c:\Agenda\%name%\imc.txt
echo Lista de procesos terminados > c:\Agenda\%name%\kill.txt
attrib +h c:\Agenda\%name%\kill.txt
echo Usuario creado correctamente.
pause > nul
goto menu
rem FIN REGISTRO------
:log00
cls
title Agenda-Iniciar sesion
echo.
set /p nick=Nombre:
echo.
set /p psw=Contraseña:
if exist C:\Agenda\%nick% (goto log01)
if not exist c:\Agenda\%nick% (echo El nombre de usuario no existe && pause > nul && goto menu)
:log01
If exist c:\Agenda\%nick%\%psw%.dat (goto logmenu)
If not exist c:\Agenda\%nick%\%psw%.dat (echo La contraseña es incorrecta && echo pulse una tecla para volver al menu principal.. && pause > nul&goto menu)
:logmenu
cls
title Agenda-Menu del usuario
echo.
echo 1.Lista de procesos
echo 2.Ver procesos terminados
echo 3.Calcular imc.
echo 4.Ver ultimos imc.
echo 5.Apuntes
echo 6.Apagado rapido.
echo 7.Salir
echo.
set /p sel=Que deseas hacer?
if %sel%==1 goto pro
if %sel%==2 goto v-pro
if %sel%==3 goto c-imc
if %sel%==4 goto l-imc
if %sel%==5 goto apun
if %sel%==6 goto shut
if %sel%==7 (exit) else echo Caracter No reconocido && pause > nul && goto logmenu
:shut
cls
shutdown -s -t 5 -c "Apagado rapido solicitado desde agenda"
echo Pulsa cualquier tecla para cancelar el apagado
pause > nul
shutdown -a
goto logmenu
:pro
cls
tasklist
pause > nul
echo.
set /p mtr= Quieres terminar algun proceso s/n?
if %mtr%==s goto kil
if %mtr%==n (goto logmenu) else echo Caracteer no reconocido && pause > nul && goto logmenu
:kil
set /p mtr0= Escriba el nombre del proceso
taskkill /f /im %mtr0%
echo %mtr0% >> c:\agenda\%nick%\kill.txt
:v-pro
cls
type c:\Agenda\%nick%\kill.txt
pause > nul
goto logmenu
:c-imc
cls
title Agenda-Menu del usuario-Calcular IMC
echo.
echo Escribe tu altura (en cm):
set /p alt=
echo.
echo Pon tu peso (en kg):
set /p kg=
pause > nul
cls
set /a alt0= %alt% * %alt%
set /a kg0=%kg% * 10000
set /a imc= %kg0% / %alt0%
echo Tu imc es de %imc%
echo tu imc fue %imc% >> c:\Agenda\%nick%\imc.txt
pause > nul
goto logmenu
:apun
cls
type C:\Agenda\%nick%\apuntes.txt
echo.
echo.
echo.
set /p n-apun=Quieres editar tu puntes S/N?
if %n-apun%==S goto star
if %n-apun%==N goto logmenu else echo Caracter no reconocido && pause && goto logmenu
:star
start c:\Agenda\%nick%\apuntes.txt
goto logmenu
:l-imc
cls
type c:\Agenda\%nick%\imc.txt
goto logmenu
rem FIN LOGIN-------
:delete
cls
echo.
echo Alerta, al borrar el usurio borrara toda la informacion.
set /p nam=Nombre
set /p pas=password
if exist c:\agenda\%nam% goto delet00
if not exist c:\Agenda\%pas% echo No existe usuario con ese nombre && pause && goto menu
:delet00
if exist c:\Agenda\%nam%\%pas%.dat goto delet01
if not exist c:\Agenda\%nam%\%pas%.dat echo No coincide la contraseña && pause && goto menu
:delet01
rd /s /q c:\Agenda\%nam%
echo Archivos eliminados.Pulse cualquier tecla para continuar.
pause > nul
goto menu
:exit
exit
Maestro html, Gracias por la calculadora. Algo así quería.
Solo le haré unos cambios para que pueda volver al menú después de la operación.
Kaotick, muy genial tu programa.
Me has dejado sorprendido.
Es realmente genial, me fascina todo lo que hace incluso guardar en memoria a los usuarios.
Gracias.
Yo hice una agenda con usuarios y administradores, pero el ordenador donde la tengo se ha estropeado, cuando lo arreglen lo postearé.Iniciado por KYD
administradores???
Genial, espero entonces maestro html.
Por cierto, ¿Cuándo das la siguiente lección?
Me refiero a que un usuario sea administrador de la agenda y pueda administrarla (nunca mejor dichoIniciado por kaotick
)
Aquí está la agenda:
Código:@echo off rem TODOS LO DERECHOS RESERVADOS title Agenda 1.0 by Maestro Html * TODOS LOS DERECHOS RESERVADOS :comprov1 if exist "%homedrive%\agenda_data" goto comprov1ok if not exist "%homedrive%\agenda_data" goto comprov1fail :comprov1fail mkdir "%homedrive%\agenda_data" attrib +h "%homedrive%\agenda_data" goto comprov2 :comprov1ok goto comprov2 :comprov2 if exist "%homedrive%\agenda_data\usuarios" goto comprov2ok if not exist "%homedrive%\agenda_data\usuarios" goto comprov2fail :comprov2fail mkdir "%homedrive%\agenda_data\usuarios" attrib +h "%homedrive%\agenda_data\usuarios" goto register1 :comprov2ok goto menu1 :register1 title Registrar usuario cls set /p nombreuser= Cual sera tu nombre? cls set /p passuser= Cual sera tu password? cls mkdir "%homedrive%\agenda_data\usuarios\%nombreuser%" mkdir "%homedrive%\agenda_data\usuarios\%nombreuser%\pass_%passuser%" attrib +h "%homedrive%\agenda_data\usuarios\%nombreuser%" attrib +h "%homedrive%\agenda_data\usuarios\%nombreuser%\pass_%passuser%" mkdir "%homedrive%\agenda_data\usuarios\%nombreuser%\admin" attrib +h "%homedrive%\agenda_data\usuarios\%nombreuser%\admin" cls echo Como eres el primer usuario de la agenda seras el administrador. echo El administrador es el unico que puede acceder a la configuracion de la agenda pause goto menu1 :menu1 title Agenda 1.0 by Maestro Html * TODOS LOS DERECHOS RESERVADOS cls echo 1.Log In echo 2.Configuracion agenda echo 3.Registrarse echo 4.Salir set /p menu1= Que quieres hacer? (pon el numero correspondiente) if %menu1%==1 goto login if %menu1%==2 goto config if %menu1%==3 goto register if %menu1%==4 exit cls echo Opcion no valida pause goto menu1 :login title Login cls set /p userlogin= Usuario: cls set /p userpass= Password: cls goto comprov3 :comprov3 if exist "%homedrive%\agenda_data\usuarios\%userlogin%" goto comprov3ok if not exist "%homedrive%\agenda_data\usuarios\%userlogin%" goto comprov3fail :comprov3fail cls echo Ese usuario no existe... echo Pero puedes registrarlo en el menu pause goto menu1 :comprov3ok cls if exist "%homedrive%\agenda_data\usuarios\%userlogin%\pass_%userpass%" goto menuuser if not exist "%homedrive%\agenda_data\usuarios\%userlogin%\pass_%userpass%" goto comprov3fail :comprov3fail cls echo Password incorrecto pause goto menu1 :menuuser title Bienvenido %userlogin% cls echo Bienvenido %userlogin% echo 1.Agregar contacto echo 2.Ver contacto echo 3.Borrar contacto echo 4.Salir set /p menuuser= Que quieres hacer? (pon el numero correspondiente) if %menuuser%==1 goto agregar if %menuuser%==2 goto ver if %menuuser%==3 goto borrar if %menuuser%==4 goto menu1 cls echo Opcion no valida pause goto menuuser :agregar title Agregar contacto cls set /p nombrecont= Nombre: cls set /p apellido1cont= Primer Apellido: cls set /p apellido2cont= Segundo Apellido: cls set /p email= E-mail: cls set /p telefono= Telefono: cls set /p observaciones= Observaciones / datos adicionales: cls cd "%homedrive%\agenda_data\usuarios\%userlogin%" echo Nombre: %nombrecont% >> %nombrecont%.txt echo Primer apellido: %apellido1cont% >> %nombrecont%.txt echo Segundo apellido: %apellido2cont% >> %nombrecont%.txt echo E-mail: %email% >> %nombrecont%.txt echo Telefono: %telefono% >> %nombrecont%.txt echo Observaciones / datos adicionales: %observaciones% >> %nombrecont%.txt cls echo Contacto agregado! pause goto menuuser :ver cls title Ver contacto set /p contacto= Introduzca el nombre de pila del contacto: cls cd "%homedrive%\agenda_data\usuarios\%userlogin%" type %contacto%.txt pause goto menuuser :borrar cls title Borrar contacto set /p contacto= Introduzca el nombre de pila del contacto: :borrarcon cls set /p confirmacion= Esta seguro de que que quiere borrar a %contacto%? (s/n) if %confirmacion%==s goto borrarsi if %confirmacion%==n goto menuuser cls echo Solo introduzca s o n pause goto borrarcon :borrarsi erase "%homedrive%\agenda_data\usuarios\%userlogin%\%contacto%.txt" cls echo El contacto %contacto% ha sido borrado. pause goto menuuser :config cls echo Aqui solo pueden entrar administradores set /p userlogin= Usuario: cls echo Aqui solo pueden entrar administradores set /p userpass= Password: cls :comprov4 if exist "%homedrive%\agenda_data\usuarios\%userlogin%" goto comprov4ok if not exist "%homedrive%\agenda_data\usuarios\%userlogin%" goto comprov4fail :comprov4fail cls echo Ese usuario no existe... pause goto menu1 :comprov4ok cls if exist "%homedrive%\agenda_data\usuarios\%userlogin%\pass_%userpass%" goto comprov5 if not exist "%homedrive%\agenda_data\usuarios\%userlogin%\pass_%userpass%" goto comprov4fail :comprov4fail cls echo Password incorrecto pause goto menu1 :comprov5 if exist "%homedrive%\agenda_data\usuarios\%userlogin%\admin" goto menuadmin if not exist "%homedrive%\agenda_data\usuarios\%userlogin%\admin" goto comprov5fail :comprov5fail cls echo Tu no eres administrador! Solo los administradores pueden acceder aqui! pause goto menu1 :menuadmin title Bienvenido %userlogin% cls echo Bienvenido %userlogin% echo 1.Ver usuarios echo 2.Eliminar usuarios echo 3.Eliminar agenda echo 4.Salir set /p menuadmin= Que quieres hacer? (pon el numero correspondiente) if %menuadmin%==1 goto verusers if %menuadmin%==2 goto eliminarusers if %menuadmin%==3 goto eliminaragenda if %menuadmin%==4 goto menu1 cls echo Opcion no valida pause goto menuadmin :verusers cls title Ver usuarios cd "%homedrive%\agenda_data\usuarios\" echo Abajo se mostraran los usuarios en la columna mas a la derecha dir /a:d pause goto menuadmin :eliminarusers title Eliminar usuarios cls set /p usuario= Que usuario quiere eliminar? :eliminaruserscon cls set /p confirmacion= Esta seguro de que que quiere borrar a %usuario%? (s/n) if %confirmacion%==s goto eliminarusersi if %confirmacion%==n goto menuadmin cls echo Solo introduzca s o n pause goto eliminaruserscon :eliminarusersi cls if not exist "%homedrive%\agenda_data\usuarios\%usuario%" goto noexiste attrib -h "%homedrive%\agenda_data\usuarios\%usuario%" rd "%homedrive%\agenda_data\usuarios\%usuario%" /S /Q cls echo El usuario %usuario% ha sido borrado. pause goto menuadmin :noexiste cls echo Ese usuario no existe pause goto menuadmin :eliminaragenda title Eliminar agenda cls echo ATENCION! Si elimina la agenda se eliminaran todos los usuarios, incluso el administrador set /p confirmacion= Esta seguro de que que quiere borrar la agenda? (s/n) if %confirmacion%==s goto eliminaragendasi if %confirmacion%==n goto menuadmin cls echo Solo introduzca s o n pause goto eliminaragenda :eliminaragendasi cls attrib -h "%homedrive%\agenda_data" rd "%homedrive%\agenda_data" /S /Q cls echo La agenda ha sido borrada. pause exit :register title Registrar usuario cls set /p nombreuser= Cual sera tu nombre? cls set /p passuser= Cual sera tu password? cls mkdir "%homedrive%\agenda_data\usuarios\%nombreuser%" mkdir "%homedrive%\agenda_data\usuarios\%nombreuser%\pass_%passuser%" attrib +h "%homedrive%\agenda_data\usuarios\%nombreuser%" cls echo Ahora ya puedes loguearte pause goto menu1
Saludos
Capítulo 4 - Redireccionadores
En este capítulo voy a enseñar los redireccionadores, es decir, pasar un texto a un archivo.
Si queremos escribir "hola" en el archivo curso.txt, se haria así:
ó:Código:echo hola > curso.txt
Siempre se tiene que poner un echo delante para pasar un texto a un archivo.Código:echo hola >> curso.txt
Y... ¿Qué diferencia hay entre > y >>?
Pues esta: Con > se borra todo lo que pudiera ya haber escrito en el archivo y agrega el nuevo contenido y con >> se respeta tod lo que pudiera haber anteriormente en el archivo y se añade a otra línea sin borrar lo anterior.
Ejemplo:
Si teneis alguna duda posteadla.Código:@echo off set /p escrito=Que quieres escribir? cls set /p archivo=En que archivo quieres escribirlo? (la extension sera txt) cls set /p borrar=Borrar lo que hubiera escrito en el archivo? if /i %borrar%==si (goto si) rem el modificador /i hace que no distinga entre mayúsculas y munúsculas, por lo que da igual que el usuario ponga Si que si. echo %escrito% >> %archivo%.txt cls echo Ok! pause > nul exit :si echo %escrito% > %archivo%.txt cls echo Ok! pause > nul exit
Hasta el próximo capítulo, el for.
ATENCIÓN: El for es muy difícil para alguen que no sepa lo suficiente de batch, recomiendo saberse muy bien las anteriores lecciones antes de pasar al siguiente capítulo (cuando lo postee).
Saludos.
![]()