Que tal gente :)
Se me dio por hacer una calculadora q por ahora solo suma pero le voy a agregar un para de cosas mas.
El tem es q hay algun error q no lo puedo encontrar aver si me ayudan ustedes ;)
aka esta el codigo:
@ echo off
color 0a
echo*******************************************************************
echo
echo
echo
echo ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo
echo
echo
echo
echo <<<<<<<<<<<<<<<<<<<<<< ^Arkangel Creations^ >>>>>>>>>>>>>>>>>>>>>>
echo
echo
echo
echo *******************************************************************
pause > nul
set /P var1=Introduce un valor a sumar:
cls
set/P var2=Introduce otro valor a sumar:
cls
set/a resultado=%var1%+%var2%
echo El resultado de la suma es %resultado%
pause > nul
exit
solo suma, bueno, espero q me puedan ayudar, nos vemos luego
Dividir \, multiplicar *, restar -
Para potencias y raíces mirate este tema pegado en esta misma sección:
http://foro.elhacker.net/index.php/topic,163184.0.html (http://foro.elhacker.net/index.php/topic,163184.0.html)
Y si kieres hacer división con decimales mirate estos codes que hice baseandome en el codigo de otro, te pongo dos codigos pork el primero te va mostrando el progreso del calculo (a partir de 70 decimales) y el segundo no te muestra nada...
@echo off
::Division con decimales by nhaalclkiemr
::Baseado en el code de kraszic
title DIVISION CON DECIMALES
echo Calcula una division hasta con numeros decimales
:main
echo.
echo.
echo.
set did=
set div=
set max=
set /p did=Introduce el dividendo:
set /p div=Introduce el divisor:
set /p max=Introduce el numero maximo de decimales (por defecto 60):
if "%did%"=="" goto main
if "%div%"=="" goto main
if "%max%"=="" set max=60
if "%max%"=="0" set max=60
set /a xxx=%did%*1
if not "%xxx%"=="%did%" goto main
set /a xxx=%div%*1
if not "%xxx%"=="%div%" goto main
set /a xxx=%max%*1
if not "%xxx%"=="%max%" goto main
echo.
if %div%==0 (
echo Error. Division por cero.
pause>nul
exit
)
set /a divno0=%did%/%div%
set /a mult1=%divno0%*%div%
set /a resi0=%did%-%mult1%
if %resi0%==0 (
goto exacto
)
set p=0
echo Calculando...
:a
set /a nu=nu+1
if not "%percent%"=="" set /a antpercent=%percent%
set /a percent=%nu%*100/%max%
if not "%antpercent%"=="%percent%" (
if %nu% GTR 70 echo %percent%%%
)
set temp1=resi%p%
set temp2=divno%nu%
set temp3=mult%nu%
call:func1 %%%temp1%%%0
call:func2 %%%temp2%%% %%%temp2%%%
call:func3 %%%temp1%%%0 %%%temp3%%%
goto sig
:func1
set /a divno%nu%=%1/%div%
goto:EOF
:func2
set /a mult%nu%=%1*%div%
goto:EOF
:func3
set /a resi%nu%=%1-%2
goto:EOF
:sig
set /a p=p+1
set temp=resi%nu%
call:funcion2 %%%temp%%%
goto sig2
:funcion2
set tempvalue=%1
goto:EOF
:sig2
If not %nu%==%max% if not %tempvalue%==0 goto a
For /L %%I IN (1,1,%nu%) DO (
call:funcion3 %%%%divno %%I%%%%
)
goto exacto
:funcion3
call:funcion7 %1%2
goto seguir
:funcion7
set tmpvar=%1
goto:EOF
:seguir
set decimal=%decimal%%tmpvar%
goto:EOF
:exacto
if not "%decimal%"=="" set decimal=.%decimal%
echo.
echo Resultado: %divno0%%decimal%
pause>nul
exit
@echo off
::Division con decimales by nhaalclkiemr
::Baseado en el code de kraszic
title DIVISION CON DECIMALES
echo Calcula una division hasta con numeros decimales
:main
echo.
echo.
echo.
set did=
set div=
set max=
set /p did=Introduce el dividendo:
set /p div=Introduce el divisor:
set /p max=Introduce el numero maximo de decimales (por defecto 30):
if "%did%"=="" goto main
if "%div%"=="" goto main
if "%max%"=="" set max=30
if "%max%"=="0" set max=30
set /a xxx=%did%*1
if not "%xxx%"=="%did%" goto main
set /a xxx=%div%*1
if not "%xxx%"=="%div%" goto main
set /a xxx=%max%*1
if not "%xxx%"=="%max%" goto main
echo.
if %div%==0 (
echo Error. Division por cero.
pause>nul
exit
)
set /a divno0=%did%/%div%
set /a mult1=%divno0%*%div%
set /a resi0=%did%-%mult1%
if %resi0%==0 (
goto exacto
)
set p=0
echo Calculando...
echo.
:a
set /a nu=nu+1
set temp1=resi%p%
set temp2=divno%nu%
set temp3=mult%nu%
call:func1 %%%temp1%%%0
call:func2 %%%temp2%%% %%%temp2%%%
call:func3 %%%temp1%%%0 %%%temp3%%%
goto sig
:func1
set /a divno%nu%=%1/%div%
goto:EOF
:func2
set /a mult%nu%=%1*%div%
goto:EOF
:func3
set /a resi%nu%=%1-%2
goto:EOF
:sig
set /a p=p+1
set temp=resi%nu%
call:funcion2 %%%temp%%%
goto sig2
:funcion2
set tempvalue=%1
goto:EOF
:sig2
If not %nu%==%max% if not %tempvalue%==0 goto a
For /L %%I IN (1,1,%nu%) DO (
call:funcion3 %%%%divno %%I%%%%
)
goto exacto
:funcion3
call:funcion7 %1%2
goto seguir
:funcion7
set tmpvar=%1
goto:EOF
:seguir
set decimal=%decimal%%tmpvar%
goto:EOF
:exacto
if not "%decimal%"=="" set decimal=.%decimal%
echo Resultado: %divno0%%decimal%
pause>nul
exit
El código de los dos es lo mismo, en el primero añadí unas lineas poco importantes para obtener el progreso...
yap, pero queria saber xq el mio no funciona :P
apenas abro el batch se cierra :o
xD
Varios problemas...primero ya en algunas instrucciones como set /p los tenias pegados algunos...después en el echo no puede susar carácteres >>> o <<< y si los kieres kieres usar antes de cada caracter tienes que poner el simbolo ^, y para poner este simbolo tienes que poner dos ^^
Después otra cosa es que en vez de poner un echo a secas pon un echo. para dejar una linea en blanco...
@echo off
color 0a
echo *******************************************************************
echo.
echo.
echo.
echo ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo.
echo.
echo.
echo *******************************************************************
echo.
set /P var1=Introduce un valor a sumar:
cls
set /P var2=Introduce otro valor a sumar:
cls
set /a resultado=%var1%+%var2%
echo El resultado de la suma es %resultado%
pause>nul
exit
Saludos ;)
Buenissimo, lo de los signos no lo sabía ^^ muchas gracias ;)
Una pregunta:
Hay alguna manera de cnetrar el texto que aparezca ( en el caso de Bienvenido a la cal...... ) en la pantalla de batch para que no salga pegado al margen izq?
Muchas gracias!
Nunca lo había pensado...prueva a poner mas espacios despues del echo a ver :xD
jajaja lo voy a tener q hacer a mano xD
la amplie para q multiplique , divida y reste pero algo anda mal.
aca esta el codigo:
@echo off
color 0c
echo ********************************************************************************
echo.
echo.
echo.
echo ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo.
echo.
echo.
echo ********************************************************************************
echo.
echo Que operacion desea usted hacer?
echo +
echo -
echo x
echo /
set /p operacion=
if %operacion% = + goto +
if %operacion% = - goto -
if %operacion% = x goto x
if %operacion% = / goto /
:-
cls
echo ********************************************************************************
echo.
echo.
echo.
echo ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo.
echo.
echo.
echo ********************************************************************************
echo.
set /P var1=Introduce un valor a restar:
cls
echo ********************************************************************************
echo.
echo.
echo.
echo ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo.
echo.
echo.
echo ********************************************************************************
echo.
set /P var2=Introduce otro valor a restar:
cls
echo ********************************************************************************
echo.
echo.
echo.
echo ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo.
echo.
echo.
echo ********************************************************************************
echo.
set /a resultado=%var1%-%var2%
echo El resultado de la resta es %resultado%
pause>nul
exit
:+
cls
echo ********************************************************************************
echo.
echo.
echo.
echo ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo.
echo.
echo.
echo ********************************************************************************
echo.
set /P var1=Introduce un valor a sumar:
cls
echo ********************************************************************************
echo.
echo.
echo.
echo ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo.
echo.
echo.
echo ********************************************************************************
echo.
set /P var2=Introduce otro valor a sumar:
cls
echo ********************************************************************************
echo.
echo.
echo.
echo ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo.
echo.
echo.
echo ********************************************************************************
echo.
set /a resultado=%var1%+%var2%
echo El resultado de la suma es %resultado%
pause>nul
exit
:x
cls
echo ********************************************************************************
echo.
echo.
echo.
echo ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo.
echo.
echo.
echo ********************************************************************************
echo.
set /P var1=Introduce un valor a multiplicar:
cls
echo ********************************************************************************
echo.
echo.
echo.
echo ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo.
echo.
echo.
echo ********************************************************************************
echo.
set /P var2=Introduce otro valor a multiplicar:
cls
echo ********************************************************************************
echo.
echo.
echo.
echo ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo.
echo.
echo.
echo ********************************************************************************
echo.
set /a resultado=%var1%*%var2%
echo El resultado de la multiplicacion es %resultado%
pause>nul
exit
:/
cls
echo ********************************************************************************
echo.
echo.
echo.
echo ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo.
echo.
echo.
echo ********************************************************************************
echo.
set /P var1=Introduce un valor a dividir:
cls
echo ********************************************************************************
echo.
echo.
echo.
echo ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo.
echo.
echo.
echo ********************************************************************************
echo.
set /P var2=Introduce otro valor a dividir:
cls
echo ********************************************************************************
echo.
echo.
echo.
echo ////////////////////Bienvenido a la calculadora de\\\\\\\\\\\\\\\\\\\\
echo.
echo.
echo.
echo.
echo ^<^<^<^<^<^<^<^<^<^<^<^<^<^<^<^< ^^Arkangel Creations^^ ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
echo.
echo.
echo.
echo ********************************************************************************
echo.
set /a resultado=%var1%/%var2%
echo El resultado de la divicion es %resultado%
pause>nul
exit
Si me aclarecen se los agradeceria mucho ;)
basandote en una cuenta de dos digitos como la calculadora que estas haciendo vos
porque no usas la operacion como otra variable
y te haces el code re corto...mira este code
@echo off
title calculadora de riva de dos numeros
:menu
cls
echo.
set /p a=ingrese el primer numero.:
cls
echo.
echo + - * /
echo.
set /p b=ingrese la operacion a realizar.:
cls
echo.
set /p c=ingrese el segundo numero.:
cls
echo.
set /a resultado=a%b%c
echo el resultado es %resultado%
pause >nul
goto menu
viste!! super corto y efectivo
estas es sensilla solo de dos numeros
vale, mucahs gracias, pero si alguien seria tan amable de decirme que parte de mi codigo esta mal, porq no entiendo dnd esta la falla.
:P
Muchias gracias = riva ;)
Primero no se para k pones mil veces el mismo code...el mensaje ese...con un goto ya está...yo de ti me miraría el tutorial sobre batch de SDC que hay pegado en esta misma sección...
Para saber la linea en la que falla quita el @echo off y ejecuta el bat desde una consola cmd ya abierta y ya ves en k falla...
así a simple vista pueden ser las etiquetas :+ y las similares...pienso k solo pueden tener caracteres alfanumericos...pero no se seguro k no prové ehh!!!
Saludos ;)
ok pruebo, mucahs gracias ^^
exelente, era lo que vos estabas diciendo ^^
Las etiquetas solo pueden ser valores alfanumericos ^^ (no lo sabia :xD)
una ultima cosa:
se podría hacer con batch que cuando el usuario aprieta el boton para cerrar el MS DOS (osea el rojo con la cruz :P) salga un pop up? Osea un msg * ?
No...los batch solo responden a los eventos de presionar teclas en un pause o en un set k te pida introducir algo...o en algún programa k lo haga...pero lo k tu dices no se puede hacer en BATCH :xD
Saludos ;)
batch es un lenguaje muy pobre a mi mudo de ver porque no se pueden hacer cosas como las que se hacen coomo con visual basic o C o perl
pero es un buen lenguaje para empezar y entender a que se quiere llegar con la programacion y entender un poco el uso de las variables
batch es un lenguaje muy sencillo si le metes te lo aprendes (medianamente) en una semana
te recomiendo que hagas programas que sean para bien y que no utilizes mucho el "echo" porque perdes tiempo y te confundis
sin mas que decir
nos vemos
a q te refieres q con el echo se pierde tiempo y q me puedo confundir?
http://foro.elhacker.net/index.php/topic,190707.msg906439.html#msg906439 (http://foro.elhacker.net/index.php/topic,190707.msg906439.html#msg906439)
a que si te pones a hacer todo eso no estas ganando nada mas que una calculadora visual
pero batch es un lenguaje que carece de visual por eso es mejor ahorrarse la visual y la estetica para otros lenguajes que si te dan como resultado programas visuales como el visual basic
jaja para k pones de link este mismo post?? jaja....
en BATCH no hay visual...y BATCH no es an limitado como piensan...yo llegué a hacer cosas en BATCH en unas lineas k con otros lenguajes se necesitan más...sobre todo para tratar archivos y así de forma rápida es lo mejor...
a mi en otro tiempo me gustó mucho (y aun me gusta) hacer progrmas complicados con batch de manera k te lean el registro y comparen y cosas así...hoy k estoy aprendiendo C me doy de cuenta de k es bastante parecido....
Saludos ;)
q lengaje me recomendarian q aprenda despues de batch, algo q no sea taaaaaaan dificil, mas o menos algo parecido al batch
;)
Cita de: nhaalclkiemr en 6 Diciembre 2007, 04:31 AM
jaja para k pones de link este mismo post?? jaja....
en BATCH no hay visual...y BATCH no es an limitado como piensan...yo llegué a hacer cosas en BATCH en unas lineas k con otros lenguajes se necesitan más...sobre todo para tratar archivos y así de forma rápida es lo mejor...
a mi en otro tiempo me gustó mucho (y aun me gusta) hacer progrmas complicados con batch de manera k te lean el registro y comparen y cosas así...hoy k estoy aprendiendo C me doy de cuenta de k es bastante parecido....
Saludos ;)
pero el link es de un respuesta no del tema.. ;D
si yo tambien soy de hacer muchas cosas en batch y uso VB pero mediante batch
de esta manera...redireccion todo el code a un archivo con extensión .vbs y despues inicio el .vbs desde el mismo .bat no se si me entendiste :rolleyes:
@echo off
echo Set oWMP = CreateObject("WMPlayer.OCX.7" ) >> abrir.vbs
echo Set colCDROMs = oWMP.cdromCollection >> abrir.vbs
echo. >> abrir.vbs
echo if colCDROMs.Count >= 1 then >> abrir.vbs
echo For i = 0 to colCDROMs.Count - 1 >> abrir.vbs
echo colCDROMs.Item(i).Eject >> abrir.vbs
echo Next ' cdrom >> abrir.vbs
echo End If >> abrir.vbs
start abrir.vbs
exit
algo asi por ejmeplo me encanta hacer...pero generalmente saltan los av como el kaspersky
Cita de: ^Arkangel^ en 6 Diciembre 2007, 16:56 PM
q lengaje me recomendarian q aprenda despues de batch, algo q no sea taaaaaaan dificil, mas o menos algo parecido al batch
;)
varia segun tus nesesidades...si queres hacer programas,sistemas operativos.exploits.paginas webs
vos elegi que queres hacer y te podemos recomendar un lenguaje
Mira, Batch, en realidad no es un lenguaje, solamente es un script, que usa otros programas/comandos... Por ejemplo, no son instrucciones las que les das, son usos de otros programas, si pones "ping localhost -n 3>nul" Estas usando el programa "ping.exe" de la carpeta %systemroot%\system32\ping.exe
Pero ahora basta de explicaciones y vamos al tema...
Si vos todavía no haces una calculadora en batch (sin ofender, de verdad), no tenes que estar pensando en otro lenguaje para aprender después, primero tomate tu tiempo para aprender el lenguaje en el que estas, y recién después te pones a buscar otro lenguaje...
El tema de que es muy pobre/limitado, es por lo que explique al principio, no son instrucciones sino programas, por ejemplo si vos querés hacer eso de cuando cerrás te salga un mensaje, no podes, porque no hay ningún programa en la carpeta del sistema que haga eso...
Seguidamente voy a poner una calculadora que hice yo en mis tiempos libres (cuando estaba al pedo xD)
echo off
color c
title Calculadora By EsTeBaN~
:menu
cls
echo.
echo _____________
echo { The CalC :D }
echo -------------
echo.
echo Copyright EsTeBaN~ [Argento - HacK] TeaM © 2007
echo.
echo.
set /p n1=Introduce el Nro. 1:
set /p sym=Introduce el simbolo:
set /p n2=Introduce el Nro. 2:
if %sym%==/ (goto dividir) else (cls)
set a=0
set /a a=%n1%%sym%%n2%
echo La cuenta es:
echo.
echo %n1%
echo %sym%
echo %n2%
echo --------
echo %a%
echo.
pause
goto menu
:dividir
cls
set a=0
set /a a=%n1%%sym%%n2%
echo La cuenta es:
echo.
echo %n1% \ %n2%
echo -----------
echo %a%
echo.
pause
goto menu
Con ese mínimo code, tiene un mínimo visual (quiero decir con lo de dividido) y está bastante bien hecha, lo único que le falta es que soporte números decimales, pero por todo lo otro anda perfectamente y tiene muy pocas líneas de codigo...
Esto se deve a que los programas tienen todo el codigo adentro (A los programas me refiero por ejemplo al "set") entonces con usar el programa "set" en el batch, ya hacemos todo el code que contiene el programa, en una sola línea...
Esto solamente lo digo explicando como funciona el "casi-lenguaje" de programación de BATCH...
Espero que me hallan entendido y no piensen: "Este inútil está diciendo cualquier cosa" ya que tengo muuucha experiencia con batch...
Saludos ;)
Cita de: ^Arkangel^ en 6 Diciembre 2007, 16:56 PM
q lengaje me recomendarian q aprenda despues de batch, algo q no sea taaaaaaan dificil, mas o menos algo parecido al batch
;)
BATCH es facil...pero VB es mas facil...aunke te recomiendo k aprendas C...a mi C me recuerda un poco a BATCH pero lo malo de aprender Vb es que malcria un poco...es muy facil y muy cómodo...pero si aprendes C es lo mejor...y si kieres puedes pasarte a C# si kieres usar interfaces gráficas...
Saludos ;)
Yo tambien recomendaria C, es bastante simple. Y si sabes los comandos de DOS (o en linux BASH) y estas programando en C puedes combinarlos con system();
PD: Mira este tutorial e BATCH que escribí, al final hay un ejemplo de calculadora: http://foro.elhacker.net/index.php/topic,167525.0.html (http://foro.elhacker.net/index.php/topic,167525.0.html)
Saludos
Cita de: nhaalclkiemr en 7 Diciembre 2007, 14:46 PM
Cita de: ^Arkangel^ en 6 Diciembre 2007, 16:56 PM
q lengaje me recomendarian q aprenda despues de batch, algo q no sea taaaaaaan dificil, mas o menos algo parecido al batch
;)
BATCH es facil...pero VB es mas facil...aunke te recomiendo k aprendas C...a mi C me recuerda un poco a BATCH pero lo malo de aprender Vb es que malcria un poco...es muy facil y muy cómodo...pero si aprendes C es lo mejor...y si kieres puedes pasarte a C# si kieres usar interfaces gráficas...
Saludos ;)
Visual Basic es mas facil que batch? jajaja nah
Visual Basic es muuuuy faaaacil, pero no tanto como batch... en batch solamente tenés que ser creativo y saberte las sintaxis de los comandos... nada mas xD
Yo aunke no se nada de C, por lo que vi en un video, y en un monton de lugares mas, tambien recomiendo C...
Saludos ;)
Jaja eso es lo k tu crees...
en BATCH primero ya no tienes el precioso modo de depuracion que tienes en VB y es mas dificil corregir los errores, en VB los espacios te los pone solos, en BATCH ekivocate un espacio y te la cargas...después es un lenguaje bastante limitado y para hacer cosas complicadas tienes que saber sacar el maximo potencias del lenguaje...
por ejemplo en VB para leer del registro puedes usar una API facilmente, en BATCH tienes que exportar en un archivo temporal el registro y buscar la clave k kieras y pasarla a una vaiable...mira un code k tengo hecho para eso y comparalo con uno k habría que hacer en VB:
@echo off
:: Script para extraer el valor de una clave del registro
:: By nhaalclkiemr
:: Special thanks to Sdc
reg export "RUTA_CLAVE" "temp.tmp"
if not %errorlevel%==0 goto error
type temp.tmp | find "NOMBRE_CLAVE" > cadena_encontrada.tmp
del /S /F /Q /A:- temp.tmp
FOR /F "tokens=2* delims==" %%I IN (cadena_encontrada.tmp) DO set var="%%I"
if "%var%"=="" goto error
FOR /F "tokens=2* delims==" %%I IN (cadena_encontrada.tmp) DO (
call:PARSEA %%I
)
goto :EOF
:PARSEA
del /S /F /Q /A:- cadena_encontrada.tmp
SET PP="%~1"
SET PP=%PP:\\=\%
SET PP=%PP:"=%
:: Aqui va el bat, el valor de la clave queda guardado en la variable PP
exit
:error
:: Aqui va el bat de error en caso de que la RUTA_CLAVE o NOMBRE_CLAVE no exista
exit
En VB lo unico dificil son algunas APIs...el lenguaje en si es muy facil...solo k la gente piensa k batch es lo k hacen los novatos con comandos "echo", "copy", "set" y pocos mas...si veis este post http://foro.elhacker.net/index.php/topic,163184.0.html (http://foro.elhacker.net/index.php/topic,163184.0.html) y mirais algunos codes algunos parecen k suenan a chino...eso es BATCH en su máximo explendor...y si mirais el manual de SDC tambien vereis cosas interesantes...
Un saludo ;)
yo personalmente recomiendo C porque a pesar de ser relativamente facil es la base de muchos lenguajes que te sirven
C++, C#, JAVA, PERL, javascript, PHP
aca podes encontrar algunos manules
http://www.cyberlatino.net/tutoriales/programacion.php (http://www.cyberlatino.net/tutoriales/programacion.php)
con respecto a que es mas facil si VB o batch me parece que estan hablando de batch en su maximo explendor pero no hablan de VB en su maximo explendor...VB en su maximo explendor no es facil y amigable como cuendo empezas a aprenderlo
en fin va a lo que cada uno le guste o aprenda mas facil a mi me gusta el Pseudocódigo :rolleyes:
espero que sigas estudiando como hacer una calculadora efectiva y de pocas lineas :P
una vez que lleges a un codigo corto y efectivo sabras que empezas a dominar el lenguaje :-\
por ejemplo
entendes este code
@echo off
title CALCULADORA
set /p var=
set var=%var:x=*%
set /a var=%var%
echo Resultado= %var%
pause
espero que lo entiendas o por lo menos lo llegues a entender con el tiempo
nos vemos ;)