[Aportes indexados] Manual Batch

Estado
Cerrado para nuevas respuestas.

Zymeth

Newbie Lvl 1
Este manual va dirigido a gente que no tenga ni idea de este lenguaje.
Va a estar dividido en capitulos que los hire poniendo cada un dia , mas o menos.
Cualquier duda o sugerencia escribanla.
Quiero decir que algunas partes las he sacado de otros manuales y hay algunas partes hechas por mi.

Capitulo 1: Introduccion y primeros comandos.
Los programas que se hacen en batch suelen tener la extension .bat de ahi su nombre es posible cambiar esta extension con programas.
Bueno para programar en bat necesitas un editor de texto plano ( recomiendo el bloc de notas ) .Utiliza como compiler el cmd.
Ni se les ocurra programar en word o wordpad ya que no se puede porque no son editores de texto plano.
En este capitulo les enseñare el funcionamiento de echo, exit, pause, rem, goto y cls.

echo
Sirve para escribir en la pantalla ( por ahora nos quedamos con eso al llegar a los redireccionamientos veremos que hace mas cosas).
Normalmente los programas empiezan por @echo off esto sirve para q no aparezca al ejecutarse las lineas del cmd ( c.\documents & settings\user.). Si no entienden algo no pasa nada , con los ejemplos se entendera.

pause
Sirve para detener el programa hasta que se pulse una tecla.

exit
Sirve para salir del programa.

Ejemplo:

En todos los lenguajes se suele empezar con este programa lo que hace es escribir en la pantalla Hola con echo ,esperar una tecla con pause y salir con exit.


Código:
@echo off
echo Hola
pause
exit

Creas un bloc de notas introducis ese codigo , luego vamos a archivo - guardar como y le ponemos el nombre que queramos , pero al final con la entencion .bat.

Si al comando pause se le añade > nul ( pause > nul) , no pone en la pantalla lo de : presione una tecla para continuar..., y se sigue ejecutando de la misma forma.

Ahora explico los comandos rem , goto y cls

rem
Este comando sirve para poner comentarios en el codigo. se podria decir que hace lo contrario que echo lo pasa por la pantalla y rem lo "esconde".
su sintaxis es la siguiente:
rem comentario

goto
Los codigos bat suelen estar divididos en partes. una parte de un bat tiene la siguiente estructura (:nombreparte). este comando lo que hace es ir a una parte ( go to= ir a ) , tranquilos si no lo entendes , pero en los ejemplos lo veras claro .Igual lo de dividir un programa en partes no se ve muy util pero cuando lleguemos al comando if sabras cual es la utilidad de dividir.
la sintaxis de goto es esta:
goto nombreparte(sin los dos puntos)

cls
Este comando sirve para borrar la pantalla.
sintaxis:
cls (se pone tal cual sin nada mas)

Ejemplo:

Código:
@echo off
:menu
rem si se fijan :menu es una parte del programa al igual que  :menu2
rem con echo. dejo en blanco la lineas.
echo.
echo Hola
echo.
rem Utilizo pause > nul para que no aparezca el  mensaje de pulse una tecla
rem Proba quitarlo y veras la diferencia
pause > nul
goto menu2
:menu2
cls
rem con cls borro la pantalla proba quitarlo y veras la diferencia
echo.
echo Ahora estoy en la parte :menu2
echo.
pause > nul
exit

Capitulo 2: Variables.

Bueno este capitulo hablaremos de la declaracion de variables y de los tipos, tambien hablaremos de las variables de expansion.

Como declarar un variable

Es tan sencillo como esto:

Set nombrevariable= valor

Para llamar a la variable en un lugar del programa se debe hacer de esta manera:

%nombrevariable% ( es decir, entre tantos por ciento "%")

Esta variable puede contener tanto palabras como numeros, pero no operaciones como + - / etc en el capitulo siguente explicare como hacer
operaciones con variables. en este voy a explicar como hacer para que tu programa consiga una variable por el usuario.

esto se hace de esta manera:

Set /p nombrevariable= Lo que saldra en la pantalla para que el usuario lo rellene(ejemplo Nombre: )

Ejemplo:

Código:
@echo off
Title Ejemplo
rem title sirve para cambiar el texto que aparece en la barra azul de la ventana
cls
set saludo= Hola, 
set /p nombre= Como te llamas?
cls
set/p ape= Cual es tu primer apellido, %nombre%?
cls
set/p ape1= Y el segundo?
cls
echo.
echo %saludo% %nombre% %ape% %ape1%
echo.
pause 
exit

Bueno empezamos con lo de las operaciones con variables:

Para hacer operaciones (suma,resta,division etc) se ace con set /a .
sintaxis
set /a VariableEnLaQu eSeGuardaraElR esultado= variable +(o cualkier otra opercion) variable2

Ejemplo

Supongamos que tengo una variable a=2 y otra b=3 y quiero sumar las 2.
el resultado de esta suma quiero q este en c.

Se haria asi:

set /a c=a+b

Tambien es posible hacerlo asi pero es perder tiempo:

set /a c=%a%+%b%

Alumno: A¿ y q pasa si pongo set c= a+b ?
yo: la variable c seria "a+b"

A. A¿ y si pongo set c= %a%+%b%?
Y. que la variable c seria "2+3"

Bien la declaracion de variables ya esta dada.

Ahora voy a acer un pequeño repaso de lo que sabemos hasta ahora ( de variables):

set variable=valor

asignar un valor a una variables nosotros en el momento de la programacion.

set /p variable=pregunta

el usuario da el valor a esta variable respondiendo a la pregunta.

set /a variable=operacion

realiza la operacion y guarda el valor en la variables.

para ver las operaciones que se pueden realizar poned en cmd "set /?" sin las comillas .

Ejemplo:

Código:
@echo off
cls
title ejemplo para hacer medias de notas
echo.
echo.
set /p a=que nota has sacado en lengua?
cls
set /p b=que nota has sacado en ingles?
cls
set /p c=que nota has sacado en mates?
cls
set /p d=que nota has sacado en historia?
cls
set asignaturas=4
set /a media=a+b+c+d
set /a media=media/asignaturas
echo.
echo Tu media es %media%
echo.
echo.
pause
exit

Capitulo 3: If

El comando if sirve para hacer algo en caso de que se cumpla una condicion impuesta a una variable.C on este comando ,por ejemplo, podemos hacer menus. Su sintaxis es esta:

If [not] condicion accion

*el not es opcional y sirve para expresar la condicion de forma negativa ( ej/ if not %var1%==1 echo mal // si var1 NO es iwal a 1 escribe mal)

Las condiciones que se suelen utilizar son :

variable==valor (para expresar si la variable es igual a valor az esto)
variable LSS valor(" " " " " es menor a valor az esto)
variable GTR valor(" " " " " es mayor a valor az esto)
variable LEQ valor(" " " " " es menor o igual az esto)
variable GEQ valor(" " " " " es mayor o igual az esto)

Ejemplo:

Código:
@echo off
title Averigua el numero
:menu
cls
set /p var1=pon un numero: 
If %var1%==8 goto bien
If %var1% LSS 8 goto menor
If %Var1% GTR 8 goto mayor
:bien 
cls 
echo Muy bien, has acertado!!!
pause 
goto end
:menor
cls
echo el numero que has puesto es menor
echo sigue probando
pause
goto menu
:mayor
echo el numero que has puesto es mayor
echo sigue probando
pause
goto menu
:end
echo adios
pause
exit

Como dije el if vale para hacer algo segun condiciones que pongamos. pero que pasa si las condiciones que ponemos no se cumplen?
simplemente ( al ser un lenguaje lineal) pasa a la linea siguiente. Hacer esto da muchos errores:

Código:
if %var%==1 goto xx
if %var%==2 goto xy
if %var%==3 goto zz
etc

por que da errores??

por que si el usuario se confunde y pulsa 4. Proba a ver que pasa.
hace lo que quiere.

MUy bien y como se resuelve? pues con un comando muy sencillo llamado else y unos paretesis.

la sintaxis seria esta

IF condiciones (accion1*) ELSE accion2

explicacion //SI las condiciones son verdaderas haz accion1 SINO haz accion2

*la accion1 ha de ir obligartoriame entre parentesis

Ejemplo:

Código:
if %var%==1 (goto xx) else goto comp
:comp
if %var%==2 (goto xy) else goto comp2
:comp2
if %var%==3 (goto zz) else echo el numero pulsado es incorrecto && pause && goto menu

ahora diras , que es &&??
sirve para "decir al programa" haz esto (y) estor (y) esto.
el nexo conpulativo y se sutituye en nuestro programa por &&.

bien ahora imaginemos que queremos que el programa haga algo si existe tal archivo.

Pues bien esto se ace con IF EXIST.
su sintaxis:

IF EXIST rutaarchivo accion

por supuestro se puede combinar con else:

IF EXIST rutaarchivo (accion1) ELSE accion2

Ejemplo:

Código:
If exist c:\Hola.txt (goto si) else goto no
:si 
cls
echo Existe
pause
exit
:no
cls
echo No existe
pause
exit

Capitulo 4: Redirecionamientos.

Vamos a ver, imaginemos que queremos hacer un programa que guarde cierta informacion en un archivo. ese archivo se va a llamar ola.txt.

bien para guardar informacion en un archivo se hace con los redireccionamientos (echo ..... >> archivo....).

Ejemplo:

Código:
 
@echo off
echo.
echo se a copiado
echo.
pause
exit
 

Se haria asi:

Código:
echo @echo off > c:\ola.txt
echo echo. >> c:\ola.txt
echo echo se a copiado >> c:\ola.txt
echo echo. >> c:\ola.txt
echo pause >> c:\ola.txt
echo exit >> c:\ola.txt


que diferencia hay entre > y >>?

> = borra lo que aya en el archivo y escribe ( es decir sobreescribe )
por ejemplo:
echo echo ola > c:\ola.txt
borra todo lo que hay en ola.txt y luego escribe echo ola

>> = escribe respetando el texto anterior
por ejemplo
echo exit >> c:\ola.txt
quedaria asi:
echo ola( respeta lo que hay)
exit

Ejemplo que mas o menos resume bastante:

Código:
@echo off
title Creador de programa para medir areas
:menu
cls
echo.
echo 1.Area cuadrado
echo 2.Area rectangulo
echo 3.salir
set /p opc=Que quieres hacer??
if %opc%==1 goto cua
if %opc%==2 goto rec
if %opc%==3 (goto end) else echo No se reconoce la tecla pulsada && pause > nul && goto menu
:cua
echo @echo off > c:\cuadrado.bat
echo set /p a=Lado cuadrado: >> c:\cuadrado.bat
echo cls >> c:\cuadrado.bat
echo echo. >> c:\cuadrado.bat
echo set /a are=a*a >> c:\cuadrado.bat
echo echo El area del cuadrado es %%are%% >> c:\cuadrado.bat
echo pause >> c:\cuadrado.bat
echo goto end >> c:\cuadrado.bat
echo El programa se encuentra en c:\
pause
goto menu
:rec
echo @echo off > c:\rectangulo.bat
echo set /p b=base crectangulo: >> c:\rectangulo.bat
echo cls >> c:\rectangulo.bat
echo set /p h=Altura rectangulo: >> c:\rectangulo.bat
echo cls >> c:\rectangulo.bat
echo echo. >> c:\rectangulo.bat
echo set /a bas=b*h >> c:\rectangulo.bat
echo echo El area del rectangulo es %%bas%% >> c:\rectangulo.bat
echo pause >> c:\rectangulo.bat
echo goto end >> c:\rectangulo.bat
echo El programa se encuentra en c:\
pause
goto menu
:end
cls
echo.
echo Hasta la proxima
pause
exit

Capitulo 5: Comando For.

Commando FOR

SINTAXIS:

FOR %variable IN (cjto) DO comando

donde:
%variable: es la variable que va a tomar el valor correspondiente en cada iteraccion del for siendo de una unica letra, distinguiendo entre MAY y min (o numero)
cjto: un cjto de ficheros
comando: lo que queremos hacer en cada vuelta del for

Observaciones:
Dentro de un bat, se debe usar %%variable (no %variable), esto se debe a que como he dicho antes,
%variable puede tomar un numero, por lo que se podria confudir con los parametros del bat, si solo
se pusiese un %


PARAMETROS:

FOR /D %variable IN (conjunto) comando DO [parámetros]
se usa cuando las extensiones de comandos estan habilitadas

FOR /R [[unidad:]ruta] %variable IN (set) DO comando [parámetros]
Cuando usamos comodines, para ejecutar el for recursivamente dentro de un directorio especificado
(unidad:ruta) en los archivos especificados por los comodines

FOR /L %variable IN (ini,paso,fin) DO comando [parámetros]
Este es el típico FOR de toda la vida. supongo ini=0 paso=1 y fin=4, se crearia la sucesion 0,1,2,3,4,5

FOR /F ["opciones"] %variable IN (cjto archivos) DO comando [parámetros]
Este es el que teine chichita.


FOR /F ["opciones"] %variable IN (cjto archivos) DO comando [parámetros]

En este, se procesa un conjunto de archivos, de tal forma que se abre el primer archivo, se procesa, se cierra
y se pasa al siguiente archivo del cjto.
Cada archivo se procesa por lineas, es decir, que el for sera aplicado a cada una de las lineas del archivo.
el for inicia en la primera linea, y cuando acabe su proceso digamos que se "resetea" y pasa a la siguiente linea
Las lineas en blanco se saltan
Ahora, el procesamiento de cada linea se puede modificar a nuestro antojo mediante las ["opciones"], siendo estas:

EOL=c
Indica que se procesen todas las lineas del archivo menos las que empiecen por este caracter

SKIP=n
Indica el nº de linea del archivo por el que empezamos a procesarlo. es decir, si pongo skip=5, las 5 primeras lineas
del archivo no se procesaran

DELIMS=xxx
Dice donde (en que simbolos) se quedara el for en cada vuelta (dentro de una misma linea)

TOKENS=x,y,m-n
Dice cuales son las vueltas validas del for, es decir, en que vueltas del for nuestra variable tomara un valor. se pueden
poner posiciones sueltas: 2,3,4 o rangos: 1-4 o incluso los dos juntos: 1,3-5. ademas, si ponemos el *, se añade otra variable adicional
que contendra el resto de la cadena que no haya llegado a ser procesada por el FOR

USEBACKQ
Esto es para el uso de comillas, no es algo muy importante, pero puede ser util dependiendo de como se llamen los archivos
que vayamos a tratar y demas. esto mirarlo si interesa en la ayuda


Lo que viene despues en la ayuda es sobre el uso de expansion de variables, que puede ser util, pero mejor mirarlo en la ayuda
ademas, esto se puede entender mejor en la ayuda del SET



Bueno. hasta aqui es la ayuda del for de msdos explicada por mi, que posiblemente no nçkes haya servido para nada.
Vamos con unos ejemplos a ver si solucionan la cosa.

Primero explicare como funciona el FOR /F ["opciones"] .........

Pues vamos a ver, esto lo que hace es buscar en todas las filas de un archivo. Entonces, almacena en variables el trozo de cadena
que existe entre un delimitador y otro, y asi hasta el nº de tokens.
un ejemplo cutre seria, en la linea

hola buenos dias

si el delim=" " (espacio en blanco) y tokens=1,2,3. esto significa que queremos agarra 3 (1,2,3) trozos de cadena que esten uno tras
otro de forma contigua y delimitados por el espacio. asi obtendriamos 3 variables que almacenarian
i=hola
j=buenos
k=dias


Pongamos ahora un ejemplo real por si no se ha entendido.
Creamos el archivo de texto 1.txt con el siguiente contenido

----------- 1.txt
;hola buenos dias
este es un manual, dedicado al for
;para.la.gente. que.quiera.aprender
;y para los demas tambien
hasta luego
1 =Hola
2=adios
3=buenas
-----------------

vamos a realizar un primer FOR. abrimos la consola y ponemos

for /f "eol=; tokens=1 delims=," %i in (1.txt) do echo %i

Este for procesara todas las lineas menos las que empiecen por ; ya que eol=;
En cada linea que procese solo dara tantas vueltas como "," se encuentre (delims=,). y almacenara en la variable %i,
solamente la parte de la cadena que se encuentre entre el principio y la primera (tokens=1) aparicion de ","
Para las lineas que no tengan "," se considera el primer token como la linea completa, porlo que en esas lineas
en vez de pasar de ella, las tomara enteras en la variable. Asi, el resultado de este for seria:

este es el manual ---> falta lo que viene a partir de la "," porque no lo ha agarrado debido al delims
hasta luego |
1 =Hola |-->En estas, como no hay "," agarrado toda la linea
2=adios |
3=buenas |


Otro ejemplo mas claro seria:

for /f "eol=; tokens=1,2,3 delims= " %i in (1.txt) do echo %i %j %k

lo mismo daria poner la parte tokens asi:
for /f "eol=; tokens=1-3 delims= " %i in (1.txt) do echo %i %j %k

Ahora queremos agarrar de cada linea, menos de las que empiecen por ; (eol=;) las cadenas que se encuentren entre
token1 --> el principio y el primer " " (delims=" ")
token2 --> el primer " " y el segundo " "
token3 --> el segundo " " y el tercer " "
y el resto lo desechariamos.
Darse cuenta de que en este caso necesitamos agarrar 3 cosas por cada linea, por lo que no nos vale solo con la variable
%i, si no que necesitaremos tambien las %j y %k. Para esto, j y k no se declaran en el for (como la %i, de hecho
unicamente se dclara la primera que se vaya a usar, puede ser %i, %a, %1 o lo que sea), si no que se ponen en el la
parte del comando a la hora de trabajar con ellas.
Tener en cuenta tambien que si declaramos la variable %i en el for todas las que usemos deben ir consecutivas en
orden alfabetico y nunca superar los 26 simbolos. seria %i %j %k %l %m....
si seleccionamos %a en el for, seria %a %b %c %d.
y siempre diferenciando entre MAY y min.

Entonces en este ejemplo nos saldria lo siguiente:

este es un
hasta luego
1 =Hola
2=adios
3=buenas

si queremos, para verlo mas claro, podemos meter algun caracter raro entre %i, %j y %k

for /f "eol=; tokens=1-3 delims= " %i in (1.txt) do echo %i ? %j ? %k

Obteniendo el siguiente resultado

este ? es ? un
hasta ? luego ?
1 ? =Hola ?
2=adios ? ?
3=buenas ? ?

Vemos como en las lineas 3 y 4 aparecen las ? al final y sin nada entre medias, esto se debe a que la variable %i
contiene 2=adios (todo hasta el final) y las variables %j y %k estan vacias


Un ultimo ejemplo para ver el uso del * seria. para ello le quitamos el ; al principio de todas las lineas que lo tuvieran:

for /f "tokens=1,2* delims= " %i in (1.txt) do echo %i ? %j ? %k

Ahora pone en las variables %i y %j:
token1 (variable %i)--> entre el principio y el primer " " (delims=" ")
token2 (variable %j)--> entre el primer " " y el segundo " "

y en la variable %k, que viene definida por el token *, se pondra el resto de la cadena

asi el resultado seria:

hola ? buenos ? dias
este ? es ? un manual, dedicado al for
para.la.gente. que.quiera.apr ender ? ?
y ? para ? los demas tambien
hasta ? luego ?
1= ? hola ?
2=adios ? ?
3=buenas ? ?


--------------------------

por ultimo les doy un ejemplo muy util cuando por ejemplo queremos buscar en un archivo de registro, un valor determinado.

imaginemos que quiero buscar en el archivo 1.reg, el valor de la clave SwapMouseButto ns. sabiendo que en el archivo
1.reg, existe una linea que pone
SwapMouseButto ns=1.
pero ademas hay muchas otras lineas similares como:
mouse=9
but=6
....

asi que si usamos el for normal sobre el archivo directamente no hay forma de sacar solo el valor que queremos
por lo que podemos hacer un find sobre el archivo que nos devuelva unicamente la linea que contiene la palabra
SwapMouseButto ns, y hacer el for sobre ella. con esto quiero decir, que ademas de sobre archivos, podemos aplicar el for
sobre comandos que actuen sobre archivos y nos den lo que queremos de ellos de una forma mas especifica.
este ejemplo seria asi:

FOR /F "tokens=1* delims==" %A IN ('FIND /I "SwapMouseButto ns" c:\1.reg') do echo %B

el resultado seria que muestra por pantalla:
1
si hubiesemos puesto ..... do echo %A
mostraria por pantalla
SwapMouseButto ns

A trabajar:

Capitulo 2: Haz un programa que al iniciarse te pida una variable ( set /p) de como te llamas , otra de tu edad y de que has comido hoy.
Una vez le hayas pedido eso que escriba en la pantalla Pues -nombre- comiendo -lo que haya comido- y teniendo en cuenta que tienes -edad- sos feo xD , otro programa que te pida que nombre le quieres poner al cuadrado , pide el lado del cuadrado , calcula su area y se despide

Capitulo 3: Mejora el programa del capitulo anterior agregandole un menu en el que te de opcion a elegir que area quieres calcular la del un rectangulo o la de un cuadrado y otro programa que te pida la ruta de un archivo a buscar , compruebe si existe , en caso de que sea afirmativo diga existe o en nevativo no existe.
 

^[GS]^

GS-Zone Admin
Miembro del equipo
Administrador
Moderador
El Batch es muy util para armar scripts en linux.... realmente no lo veo nada lango y complicado de explicar como para hacer "el gran manual" xD pero si tiene varios secretitos interesantes.. que lo hacen un arma 1337 xD
 

Tavo

[color=#BF0000]Lucha por tus ideales![/color]
MOVED TO MANUALES Y AYUDAS

PostIt ya que es muy bueno y segui poniendole mas informacion ^^ !
 

^[GS]^

GS-Zone Admin
Miembro del equipo
Administrador
Moderador
jajaajaj muy lindo pero esto es "Archivo por Lotes" de Windows :p yo queria ver sangre!, queria ver Batch de Linux :p jajjaa

Muy completo igual y Exelente material ;) lastima que los archivos por lotes sean tan simples y limitados :p con batch de linux agitas mejor :oops:
 

Shura

Dragón Ancestral Lvl 2
^[GS]^ dijo:
jajaajaj muy lindo pero esto es "Archivo por Lotes" de Windows :p yo queria ver sangre!, queria ver Batch de Linux :p jajjaa

Muy completo igual y Exelente material ;) lastima que los archivos por lotes sean tan simples y limitados :p con batch de linux agitas mejor :oops:
jajaj cc
 

Zymeth

Newbie Lvl 1
Bueno esta listo el capitulo del comando "For"
Para saber todos los comados que hay vayan a inicio - ejecutar - cmd y escriban help.

Bueno ahora investiguen mas sobre este lenjuague si quieren algun capitulo sobre un determinado comando o variable , pidanmelo.

Bueno si revisan el primer post , al final les he dejado ejercios para cada capitulo.
 

Gladiador

Newbie Lvl 1
Muy bueno , he echo los ejercios:

Capitulo 2: Haz un programa que al iniciarse te pida una variable ( set /p) de como te llamas , otra de tu edad y de que has comido hoy.
Una vez le hayas pedido eso que escriba en la pantalla Pues -nombre- comiendo -lo que haya comido- y teniendo en cuenta que tienes -edad- sos feo:

Código:
@echo off
cls
set /p var1=como te llamas?
cls
set/p var2=que has comidoh oy?
cls
set /p var3=que edad tienes?
cls
echo   %var1%, comiendo %var2% y teniendo %var3% sos feo
pause
exit
 
Otro programa que te pida que nombre le quieres poner al cuadrado , pide el lado del cuadrado , calcula su area y se despide:
 
[code]@echo off
set /p nombre1= cual es el nombre del cuadrado?
cls
set /p lado= cual es el lado del cuadrado?
cls
set /a area= %lado%*%lado%
echo el area de %nombre1% es %area%
pause
cls
set /p rect= cual es el nombre del rectangulo?
set /p base= cual es su base?
set /p h= cual es su altura?
set /a area2 = %h%*%base%
echo.
echo la area de %rect% es %area2%
pause
cls
echo adios
pause
exit
 
Capitulo 3: Mejora el programa del capitulo anterior agregandole un menu en el que te de opcion a elegir que area quieres calcular la del un rectangulo o la de un cuadrado.
 
No me gusta lo de calcular el area (odio geometria) , pero hice lo de los promedios
 
Código:
@echo off
title promedios de notas
color F0
cls
goto menu
 
:menu
echo 1.quieres sacar tu promedio general?
echo 2.quieres sacar el promedio de alguna materia?
echo 3.desea salir de este programa?
set /p opc= que servicio deseas que te prestemos?
if %opc%==1 goto :promedio general
if %opc%==2 goto :materia
if %opc%==3 goto :salida
 
:promedio
cls
echo.
echo.
set /p a=que promedio tienes en lenguage?
cls
echo.
echo.
set /p b=que promedio tienes en ingles?
cls
echo.
echo.
set /p c=que promedio tienes  en matematicas?
cls
echo.
echo.
set /p d=que promedio tienes  en historia?
cls
echo.
echo.
set /p e= que promedio tienes en biologia?
cls
echo.
echo.
set /p f= que promedio tienes en quimica?
cls
echo.
echo.
set /p g=  que promedio tienes en fisica?
cls
echo.
echo.
set /p h= que promedio tienes en ed.fisica?
cls
echo.
echo.
set /p i= que promedio tienes en artes visuales?
cls
echo.
echo.
set /p j= que promedio tienes en tecnologia?
cls
echo.
echo.
set /p k= que promedio tienes en musica?
cls
echo.
echo.
set /p l= que promedio tienes en filosofia?
cls
set asignaturas=12
set /a media=a+b+c+d+e+f+g+h+i+j+k+l
set /a media=media/asignaturas
echo.
echo Tu promedio general es %media%
echo.
echo.
pause
cls
goto menu
 
:materia
cls
echo.
set /p materia=de que materia deseas sacar el promedio?
cls
set /p nnotas= cuantas notas tienes en %materia% ?
cls
set /p notas= pon las suma de todas tus notas!__
cls
set nnotas= %nnotas%
set /a promedio= %notas%/%nnotas%
cls
echo.
echo tu promedio en %materia% es %promedio%
echo.
pause
cls 
goto menu
 
:salida
@echo off
echo.
echo adios
pause > nul
exit
 
Otro programa que te pida la ruta de un archivo a buscar , compruebe si existe , en caso de que sea afirmativo diga existe o en nevativo no existe:
 
 
Código:
@echo off
title ver si existe un archivo
color 47
if exist "c:\Documents and Settings\Eric\Mis documentos\Mi Musica\Iron Maiden\The number of the beast\Run to the hills.mp3" (goto existe) else goto no
:existe
echo.
echo.
echo.
echo si existe el archivo Run to the hills
echo.
echo.
cls
pause
exit
:no
echo.
echo.
echo.
echo no existe
echo.
cls
pause
exit

Listo.
 

Hello

Oráculo Lvl 6
revivi nomas..

edito nomas para que no me digas que robo post:

ya se que se puede revivir pero aclara que PREGUNTANDO, ACLARANDO ALGO no por decir "BUEN APORTE ;)" ¬¬
 
A

Anonymous

Invitado
Hello dijo:
revivi nomas..
No robes post...:p, el puede hacerlo en este tipo de posts..

Reglamento dijo:
2.4. Revivir un thread y/o posts se le considera pasando las 3 semanas desde el último mensaje en el mismo, y esto estará penado con las penas y/o advertencias aplicables al usuario vigentes en este reglamento (en caso de revivir un tema, se advertirá solo al primero que haya hecho la acción en el mensaje), Si es un usuario registrado, no tiene escusa para no poder editar su post anterior y sumarle información. Solo se acepta si suma información, después de 1 dia del ultimo post. (aunque no se podría hacer demasiadas veces porque lo utilizarían para revivir un tema indefinidamente). No obstante, existen algunos temas, que se podrían considerar Inmortales, o de mucho interes y estos no serán penados (post-its).
 
Buen tuto, yo hace mucho que uso este lenguage y la verdad me ha servido de mucho.

Claramente me decepciono porque no se puede usar para crear servers de ao xd

Ojala se pudiera :lol:

Saluos!
 
Estado
Cerrado para nuevas respuestas.
Arriba