programar con el bloc de notas

Necesitaremos:

-Bloc de notas


Así quedaria el principio:



Ante todo decir que esto es un manual de introducción y no un manual para expertos.

¿Qué es Batch?

Un archivo batch (o bat) es un archivo de procesamiento por lotes: se trata de archivos de texto sin formato, guardados con la extensión .bat que contienen un conjunto de comandos DOS. Cuando se ejecuta este archivo bat, los comandos contenidos son ejecutados en grupo, de forma secuencial, permitiendo automatizar diversas tareas.

Cualquier comando DOS puede ser utilizado en un archivo batch. Tienes también varios comandos especiales para este tipo de archivos.

¿Qué es un Comando?

Es una orden que le damos al sistema operativo para que haga una tarea determinada.
Ya sabeis lo necesario...ahora empecemos.

Siempre que termineis un programa, debeis de cambiarle la extensión .txt por .bat
SIEMPRE y cuando digo SIEMPRE es SIEMPRE que inicies un programa .bat se iniciara con:

@echo off

Este comando, deshabilita el echo para que no muestre los comandos, que se ejecutaran posteriormente.

Asi será como siempre comenzaremos el programa.
Ahora, para ponerle un titulo a la ventana tenemos que escribir este comando:

title **TITULO**
Sustituyendo **TITULO** por lo que quieras poner de titulo.

Así quedaria el principio:

@echo off
title Mi Primer Programa

Seguimos con más comandos..

Para mostrar un mensaje en la ventana, debeis escribir este comando:

echo **MENSAJE**

Sustituyendo **MENSAJE** por lo que quieras poner en el mensaje.

Para dejar un espacio de linea en el programa. Es lo equivalente a pulsar intro en el Word hay que escribir este comando:

echo.

Para poner un automensaje, es decir, tan solo se vera en el modo edición, donde estamos ahora, en el bloc de notas...(suele escribirse para hacer tus aclaraciones) debemos escribir este comando:

rem **ACLARACIÓN**

Sustituyendo **ACLARACIÓN** por lo que quieras aclararte.
Bien, un ejemplo con todos estos comandos:

@echo off
rem esto es el principio
title HOLA
rem esto es el titulo
echo Hola qué tal?
rem esto es un simple mensaje
echo.
rem bajo la linea
echo Jejeje
rem otro mensaje

¿Lo entendeis? Es sencillo no?? bien, sigamos..

Para hacer una pausa y que te diga el programa "Pulse una tecla para continuar..." debeis escribir este comando:

pause

Si en cambio, lo que quereis es que haga una pausa, pero no diga nada el programa, y que siga al pulsar una tecla, pero sin decirte nada, debeis escribir este comando:

pause > nul

Si quereis acabar el programa y que salga de la ventana, debeis escribir este comando:

exit

Bien, dicho todo esto, podemos ya hacer un programita...

EJEMPLO

@echo off
title hola
echo jeje
echo.
echo jeje
pause
echo lo estais entendiendo todo?
pause > nul
rem hasta aqui todo
exit

Ahora, compliquemos un poquito la cosa...las variables.

Una variable, es una especie de memoria a la que podemos asignarle un dato, para hacerle referencia más adelante. Para entenderlo, un ejemplo:

EJEMPLO

@echo off
title ejemplo variable
set var=hola
%var% qué tal?
pause
exit

La variable se hace con este comando:

set var=**LA VARIABLE**

Sustituyendo **LA VARIABLE** por lo que querais... y después haciendole referencia con este otro comando:

%var%

Hemos puesto var como ejemplo, pero también puedes hacerlo asi:

set **PALABRA**=**LA VARIABLE**

Sustituyendo **PALABRA* y *LA VARIABLE** por lo que querais... y después haciendole referencia con este otro comando:

%**PALABRA QUE HAYAIS PUESTO**%

Sustituyendo **PALABRA QUE HAYAIS PUESTO** por la palabra puesta anteriormente...

Un ejemplo de variable:

@echo off
echo hola
echo.
set var=hola
set jeje=papa
%var% %jeje%
exit

En este código donde puse %var% %jeje% aparecerá hola papa

Ahora vamos a otro tipo de variables, son muy parecidas, estan hacen que puedas escribir algo y él ejecutador te responda...un ejemplo:

@echo off
title ejemplo variables2
set/p=¿como te llamas?
echo.
pause
echo.
set/p edad=¿y cuantos años tienes?
echo.
pause
echo.
echo te llamas %nombre% y tienes %edad% años
echo.
pause > nul
exit

¿¿Lo entendeis??

Es exactamente igual, escribimos el codigo:

set/p **VARIABLE**=**PREGUNTA, TEXTO, ETC..**

Sustituyendo **VARIABLE** por lo que querais y **PREGUNTA, TEXTO, ETC..** por la pregunta, texto, etc que querais que le aparezca...

Y Después le haceis referencia así:

%**VARIABLE PUESTA ANTERIORMENTE**%

Sustituyendo **VARIABLE PUESTA ANTERIORMENTE** por la variable puesta anteriormente...

Vayamos con otro comando, este, sirve para limpiar lo anterior escrito en pantalla, es decir, elimina de la vision del ejecutador lo anterior...es este:

cls

Ejemplo:

@echo off
title hola
echo hola
echo.
echo qué tal?
echo.
cls
pause
exit

¿Fácil no?

Ahora vamos con los códigos de los colores, para la ventana..

0 = Negro
1 = Azul
2 = Verde
3 = Aguamarina
4 = Rojo
5 = Púrpura
6 = Amarillo
7 = Blanco
8 = Gris
9 = Azul claro

A = Verde claro
B = Aguamarina claro
C = Rojo claro
D = Púrpura claro
E = Amarillo claro
F = Blanco brillante

Un ejemplo de como aplicarlos:

@echo off
title hola
color 5E
echo hola
exit

Seria asi el comando:

color **COLOR VENTANA****COLOR LETRA**

Sustituyendo **COLOR VENTANA** por el color de fondo y **COLOR LETRA** por el color de la letra...por ejemplo color 6C o color F1...

Ahora vamos con nuevas variables...es para operaciones matemáticas...se expresa asi:

set/a **VARIABLE**=**PREGUNTA, TEXTO, ETC..**

Mejor ver un ejemplo:

@echo off
title ejemplo
set/p a=¿cual es tu nota en matematicas?
cls
set/p b=¿cual es tu nota en tecnologia?
cls
set/p c=¿cual es tu nota en lengua?
cls
set/p d= ¿cual es tu nota en ingles?
cls
set/p e=¿cual es tu nota en sociales?
cls
set/p f=¿cual es tu nota en dibujo?
cls
set asig=6
rem esto que acabo de poner es para sacar una media, al valor asig le asignamos 6, porque son 6 las preguntas..
set/a suma=a+b+c+d+e+f
rem aqui sumamos
set/a media=%suma%/%asig%
rem aqui sacamos la media dividiendo suma que es = a+b+c+d+e+f que es el resultado puesto por el ejecutante entre asig, que es = 6, y asi, sacamos la media...
echo tu nota media es de : %media%
pause
exit

¿¿Lo habeis entendido??

Ahora vamos con el if, menus y gotos..

Para hacer menus en nuestro bat, debeis utilizar este comando:

:**NOMBRE MENU**

Sustituyendo **NOMBRE MENU** por el nombre del menu...ejemplo; :menu1 o :menu2 ..

Para dar saltos de menus a menus, se utiliza este comando:

goto **NOMBRE MENU**

Sustituyendo **NOMBRE MENU** por el nombre del menu al que queremos saltar..

Para establecer una condicion, como...si esto se cumple haz esto, y si no se cumple, haz lo otro utilizamos el comando if, es algo complejo, os lo explico:

Primero se le da un valor al variable:

set/p **VARIABLE**=**PREGUNTA, TEXTO, ETC..**

Sustituyendo **VARIABLE** por lo que querais y **PREGUNTA, TEXTO, ETC..** por la pregunta, texto, etc que querais que le aparezca...

Y Después le haceis referencia así:

%**VARIABLE PUESTA ANTERIORMENTE**%

Sustituyendo **VARIABLE PUESTA ANTERIORMENTE** por la variable puesta anteriormente...

Y Despues se ponen las condiciones:

If %**VARIABLE PUESTA ANTERIORMENTE**%==**RESPUESTA** goto *NOMBRE MENU**

If %**VARIABLE PUESTA ANTERIORMENTE**% LSS **RESPUESTA** goto *NOMBRE MENU**

If %**VARIABLE PUESTA ANTERIORMENTE**% GTR **RESPUESTA** goto *NOMBRE MENU**

If %**VARIABLE PUESTA ANTERIORMENTE**% LEQ **RESPUESTA** goto *NOMBRE MENU**

If %**VARIABLE PUESTA ANTERIORMENTE**% GEQ **RESPUESTA** goto *NOMBRE MENU**

Cuando es == es si la variable puesta anteriormente es igual a la respuesta ve a este menu

Cuando es LSS es si la variable puesta anteriormente es menor a la respuesta ve a este menu

Cuando es GTR es si la variable puesta anteriormente es mayor a la respuesta ve a este menu

Cuando es LEQ es si la variable puesta anteriormente es menor o igual a la respuesta ve a este menu

Cuando es GTR es si la variable puesta anteriormente es mayor o igual a la respuesta ve a este menu

Un ejemplo de adivinanza de número:

@echo off
title ejemplo
:menu
cls
echo debes averiguar el numero para poder salir
echo.
set /p var=pon un numero:
If %var%==5 goto si
If %var% LSS 5 goto menor
If %Var% GTR 5 goto mayor
:si
cls
echo correcto!!
pause
goto salir
:menor
cls
echo elije otro mas alto
echo.
echo sigue jugando
pause > nul
goto menu
:mayor
echo elije otro mas pequeño
echo.
echo sigue probando
pause > nul
goto menu
:salir
exit

Tambien pueden usar el comando if not que hace lo contrario que el if. En vez de decir SI pasa esto....haz esto, lo que hace es decir, SI NO pasa esto...haz esto.

Si en vez de escribir un número lo que hace es escribir letras, pasará a la siguiente linea...pero no os preocupeis, esto, tiene solucion....con el comando else..

EJEMPLO :

if %vari%=1 (goto menu1) else goto menu2

Esto quiere decir que si la variable es = a 1 va al menu 1, y si no, va al menu 2, la primera accion SIEMPRE debe ir entre parentesis...

Sigamos...

Para eliminar archivos pidiendote confirmacion es este comando:

del /p **RUTA ARCHIVO**

Sustituyendo **RUTA ARCHIVO** por la ruta del archivo a querer borrar..

Para eliminar archivos a la fuerza, y hasta los que estan "en solo lectura" es este comando:

del /f **RUTA ARCHIVO**

Sustituyendo **RUTA ARCHIVO** por la ruta del archivo a querer borrar..

Para eliminar archivos y los subdirectorios es este comando:

del /s**RUTA ARCHIVO**

Sustituyendo **RUTA ARCHIVO** por la ruta del archivo a querer borrar..

Para eliminar archivos silenciosamente, es decir, sin pedir confirmación, es este comando:

del /q**RUTA ARCHIVO**

Sustituyendo **RUTA ARCHIVO** por la ruta del archivo a querer borrar..

Tambien se pueden unir en todas las combinaciones que querais:

del /q /s**RUTA ARCHIVO**

Sustituyendo **RUTA ARCHIVO** por la ruta del archivo a querer borrar..

Para comenzar algo, como por ejemplo, una web, es este comando:

star **DIRECCION WEB**

Sustituyendo **DIRECCION WEB** por la web.

Para matar un proceso, es este comando:

taskkill **NOMBRE PROCESO**

Sustituyendo **NOMBRE PROCESO** por el nombre del proceso..

Para formatear una unidad, es este comando:

Format **UNIDAD**

Sustituyendo **UNIDAD** por el nombre de la unidad, como c: por ejemplo.

Para enviar un mensaje en una ventana de windows es este comando:

msg* **MENSAJE**

Sustituyendo **MENSAJE** por el mensaje..

Ahora el caracter *

Si ponemos: del *.jpg
eliminará todos los archivos con la extension .jpg
Si ponemos: a*.jpg
eliminará todos los archivos que empiecen por a y tengan extension .jpg..

Para reiniciar el ordenador es este comando:

shutdown -r

Para apagar el ordenador es este comando:

shutdown -s

Para cerrar todos los programas es este comando:

shutdown -f

Para indicar un tiempo de realizacion a un valor anterior es este comando:

shutdown -**r/s/t SEGUN LA PREFERENCIA** -t **TIEMPO EN SEGUNDOS**

Sustituyendo **r/s/t SEGUN LA PREFERENCIA** por r, s o f.. y **TIEMPO EN SEGUNDOS** por el tiempo de espera a realizar la accion, en segundos..

tambien podes hacer virus con este comando:

: e
start cmd.exe
goto :e

que quedaria asi:

@echo
: e
start cmd.exe
goto :e

tambien al virus les pueden poner bentanas con mensajes,color a la entana y ponerle todos los comandos que aprendieron en este post




Bueno yo creo que no queda mucho más por explicar,cualquier consulta,pregunten en comentarios.

29 comentarios - programar con el bloc de notas

@franfdd +1
pascoslp dijo:COPY PASTE

hasta las manos..
pero buena info igual
@kadar28
...
tambien al virus les pueden poner bentanas con mensajes,color a la entana y ponerle todos los comandos que aprendieron en este post

juro que lo intenté...pero el maldito me decía una y mil veces:
- o mardito programador...te dicho mil veces que no pienso atacar ni en Bentanas ni en Entana...joder tío...
@martincasla +1
buena info... no se nada de esto.. pero me entretuve un ratito.. te dejo 5
@JUXN3
Hay tenes 10
@Antis0ciaL
Esto es muy antiguo, yo aprendi Batch y HTML hace mas de 2 años en Portalhacker
@Antis0ciaL +1
lucas109_regresa dijo:
Antis0ciaL dijo:Esto es muy antiguo, yo aprendi Batch y HTML hace mas de 2 años en Portalhacker

pero algunos no lo savian

mm si igual en realidad creo que muchos no saben todavia.
@cordobez_07
bat. o cmd. no es programacion!..o si?
@JACKSON39
Hola amigo, muy bueno el post. pero no conoses un manual para descargar que expliq algo de los codigos, por q la verdad estoy algo confundido,,,, igual esta muy groso este post. si me ayudas van +10
@Euromas +1
Buen post, bien explicado van +10. Cuando lo lei estaba tan al pe2 que me puse a hacer esto: (es para calcular el promedio de cada trimestre y luego el del año con las materias de mi escuela)

@echo off
title Promedio
color 0A
echo En cada caso ingrese la nota del primer trimestre
echo.
set/p a1=Nota en Analisis:
cls
set/p b1=Nota en Ed. Civica:
cls
set/p c1=Nota en Ed. Fisica:
cls
set/p d1=Nota en Electrotecnia:
cls
set/p e1=Nota en Estatica:
cls
set/p f1=Nota en Ingles:
cls
set/p g1=Nota en Laboratorio:
cls
set/p h1=Nota en Literatura:
cls
set/p i1=nota en Materiales:
cls
set/p j1=Nota en Mecanica:
cls
set/p k1=Nota en Mecanica de Fluidos:
cls
set/p l1=Nota en Quimica:
cls
set/p m1=Nota en Taller:
cls
set asig=13
set/a suma1=a1+b1+c1+d1+e1+f1+g1+h1+i1+j1+k1+l1+m1
set/a media1=%suma1%/%asig%
echo Su promedio del primer trimestre es de: %media1%
echo.
set/p 2do=¿Desea continuar al segundo trimestre? S(Si) N(No)
cls
if %2do%==S goto 2
if %2do%==N goto esc
:2
echo En cada caso ingrese la nota del segundo trimestre
echo.
set/p a2=Nota en Analisis:
cls
set/p b2=Nota en Ed. Civica:
cls
set/p c2=Nota en Ed. Fisica:
cls
set/p d2=Nota en Electrotecnia:
cls
set/p e2=Nota en Estatica:
cls
set/p f2=Nota en Ingles:
cls
set/p g2=Nota en Laboratorio:
cls
set/p h2=Nota en Literatura:
cls
set/p i2=nota en Materiales:
cls
set/p j2=Nota en Mecanica:
cls
set/p k2=Nota en Mecanica de Fluidos:
cls
set/p l2=Nota en Quimica:
cls
set/p m2=Nota en Taller:
cls
set/a suma2=a2+b2+c2+d2+e2+f2+g2+h2+i2+j2+k2+l2+m2
set/a media2=%suma2%/%asig%
echo Su promedio del segundo trimestre es de: %media2%
echo.
set/p 3do=¿Desea continuar al tercer trimestre? S(Si) N(No)
cls
if %3do%==S goto 3
if %3do%==N goto esc
:3
echo En cada caso ingrese la nota del tercer trimestre
echo.
set/p a3=Nota en Analisis:
cls
set/p b3=Nota en Ed. Civica:
cls
set/p c3=Nota en Ed. Fisica:
cls
set/p d3=Nota en Electrotecnia:
cls
set/p e3=Nota en Estatica:
cls
set/p f3=Nota en Ingles:
cls
set/p g3=Nota en Laboratorio:
cls
set/p h3=Nota en Literatura:
cls
set/p i3=nota en Materiales:
cls
set/p j3=Nota en Mecanica:
cls
set/p k3=Nota en Mecanica de Fluidos:
cls
set/p l3=Nota en Quimica:
cls
set/p m3=Nota en Taller:
cls
set/a suma3=a3+b3+c3+d3+e3+f3+g3+h3+i3+j3+k3+l3+m3
set/a media3=%suma3%/%asig%
echo Su promedio del tercer trimestre es de: %media3%
echo.
set/p 4do=¿Desea saber su promedio en el año? S(Si) N(No)
cls
if %4do%==S goto 4
if %4do%==N goto esc
:4
set trim=3
set/a suma4=%media1%+ %media2%+%media3%
set/a media4=%suma4%/%trim%
echo Su promedio en el año es de: %media4%
pause>nul
exit
:esc
exit
@chicomalo314 +1
Se programar java, C++ y Pascal y no sabia en bloc de notas?? jajaja
Te dejo 10 bro, gracias jajaja xDD
@jro900 +3
Gracias me sirvio de ayuda! file:///C:/Users/Jairo Abreu/Pictures/11.png
@LanatoGamer369
Muy buen post me ayudo mucho van mis 10
segui asi