Curso Batch [Variables]
Etiquetas: Batch
Que es Batch?
Batch en sí, no es un lenguaje de programación sino que es un lenguaje script ya que ejecuta solamente comandos del sistema creando un archivo por lotes de texto sin formato. No es case sensitive, es decir, que tanto es válido Variable1 como VARIABLE1 o variable1.
CMD o Shell
Nuestra Shell o consola de comandos es la ventanita negra que vemos cada que se ejecuta un bat, la pueden abrir dirigiéndose a Inicio>>Ejecutar>>Escriben cmd>>Enter. Ahí pueden ir haciendo sus pruebas sobre las diferentes variables de entorno que tenemos en el sistema o bien hacer línea por línea para probar su archivo ;).
Como guardar un archivo BAT
Usaremos nuestro glorioso bloc de notas para guardar nuestros trabajos que iremos realizando durante el curso, para guardarlo como un BAT, al darle guardar como escribiremos el nombre que queramos pero con extensión .bat. Esto es lo que haremos cada que quiéranos probar un code de los del curso o algún otro. (Para que ya no pregunten cómo se guarda xD)

Variables
Como sabemos, una variable es un espacio que se reserva en memoria para alojar cierto tipo de dato. En batch solo hay 2 tipos de datos: enteros y cadenas.
El código anterior tiene 2 variables, una donde almacenamos una cadena y en la otra un numero, no hay ciencia :). Otro dato importante es la primera línea que hemos puesto al igual que las 2 últimas.
@echo off: Nos sirve para que al momento de ejecutar nuestro archivo, no se muestren cada línea mostrando la ruta o el proceso de cada variable o función que vayamos realizando en nuestro programa. Prueben el programa anterior quitándole la primer línea y verán como aparece
Pause: Hace un pause durante la ejecución y presionando una tecla continua con su camino :), prueben pause>nul y notarán la diferencia, lo que hace el >nul es suprimir el resultado que da la el pause en este caso Presione una tecla para continuar… dejándolo solo en blanco.

Exit: Salida o fin del programa xD
Este pedazo de código de arriba realiza una operación entre num1 y num2.
Con esto acabamos de hacer una operación con un decimal y un hexadecimal, el 0x indica que se trabajará con números hexadecimales; 0xff=255, entonces 4*=255 y al final num1=510.
Operadores
Introducir datos por el teclado
Tan fácil como se ve, con el set /p name nos sirve para poder reservar un espacio en memoria para guardar la cadena del nombre que se ingresara para después imprimirlo con echo Hola %name%
Conclusion sobre Variables
Es un ejemplo muy claro sobre el uso de variables, datos introducidos por el teclado y operaciones matemáticas.
Nota: En este lenguaje script solo se manejan cifras enteras, no hay decimales :(
Batch en sí, no es un lenguaje de programación sino que es un lenguaje script ya que ejecuta solamente comandos del sistema creando un archivo por lotes de texto sin formato. No es case sensitive, es decir, que tanto es válido Variable1 como VARIABLE1 o variable1.
CMD o Shell
Nuestra Shell o consola de comandos es la ventanita negra que vemos cada que se ejecuta un bat, la pueden abrir dirigiéndose a Inicio>>Ejecutar>>Escriben cmd>>Enter. Ahí pueden ir haciendo sus pruebas sobre las diferentes variables de entorno que tenemos en el sistema o bien hacer línea por línea para probar su archivo ;).
Como guardar un archivo BAT
Usaremos nuestro glorioso bloc de notas para guardar nuestros trabajos que iremos realizando durante el curso, para guardarlo como un BAT, al darle guardar como escribiremos el nombre que queramos pero con extensión .bat. Esto es lo que haremos cada que quiéranos probar un code de los del curso o algún otro. (Para que ya no pregunten cómo se guarda xD)
Variables
Como sabemos, una variable es un espacio que se reserva en memoria para alojar cierto tipo de dato. En batch solo hay 2 tipos de datos: enteros y cadenas.
@echo off
set var_string= hola
set var_num=5
echo %var_string%
echo %var_num%
pause
exit
El código anterior tiene 2 variables, una donde almacenamos una cadena y en la otra un numero, no hay ciencia :). Otro dato importante es la primera línea que hemos puesto al igual que las 2 últimas.
@echo off: Nos sirve para que al momento de ejecutar nuestro archivo, no se muestren cada línea mostrando la ruta o el proceso de cada variable o función que vayamos realizando en nuestro programa. Prueben el programa anterior quitándole la primer línea y verán como aparece
Pause: Hace un pause durante la ejecución y presionando una tecla continua con su camino :), prueben pause>nul y notarán la diferencia, lo que hace el >nul es suprimir el resultado que da la el pause en este caso Presione una tecla para continuar… dejándolo solo en blanco.
Exit: Salida o fin del programa xD
@echo off
set num1 = 9
set num2=8
set /a resul=%num1%+%num2%
echo El resultado es: %resul%
pause
exit
Este pedazo de código de arriba realiza una operación entre num1 y num2.
@echo off
set num1 = 4
echo Numero uno es: %num1%
set /a num1*=0xff
echo Ahora numero uno es: %num1%
pause
exit
Con esto acabamos de hacer una operación con un decimal y un hexadecimal, el 0x indica que se trabajará con números hexadecimales; 0xff=255, entonces 4*=255 y al final num1=510.
Operadores
Agrupación: () Aritméticos: * / % + - Bits: << >> And: & OR: ^ XOR: | Asignación: = *= /= %= += -= &= ^= |= <<= =>> Separador de expresión: ,
Introducir datos por el teclado
@echo off
set /p name = Escribe tu nombre:
echo Hola %name %
pause
exit
Tan fácil como se ve, con el set /p name nos sirve para poder reservar un espacio en memoria para guardar la cadena del nombre que se ingresara para después imprimirlo con echo Hola %name%
Conclusion sobre Variables
@echo off
echo Promedio
set /p name = Escribe tu nombre:
echo ------Calificaciones------
set /p c1 = Primer semestre:
set /p c2 = Segundo semestre:
set /p c3 = Tercer semestre:
set /p c4 = Cuarto semestre:
set /a resul=(%c1%+%c2%+%c3%+%c4%)/4
echo Tu promedio final es: %resul%
pause
exit
Es un ejemplo muy claro sobre el uso de variables, datos introducidos por el teclado y operaciones matemáticas.
Nota: En este lenguaje script solo se manejan cifras enteras, no hay decimales :(
Apps Execute, agregar programas a ejecutar
Etiquetas: Batch
Este programa es el mismo que el anterior solo que este esta hecho en Batch puramente y este agrega rutas al registro en vez de agregar accesos directos a la carpeta de Windows.
Disfrutenlo ;)
Disfrutenlo ;)
@echo off
color 0B
title Apps Execute
mode con cols=65 lines=15
:menu
set "file="
set "name="
set "temp0="
set "temp1="
set "opc="
cls
echo.Arrastre aqui su archivo [exe]
set /p file=">> "
call:com %file%
call:error1 %file%
echo.Nombre que usara para ejecutar su programa
set /p name=">> "
REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\%name%.exe" /ve /d %file% /f >nul
echo.
echo.Programa %name% agregado !!!
msg * Para verificar: Escriba [%name:~0,-4%] o [%name%] en [Ejecutar]
ping -n 4 localhost >nul
echo.Desea agregar otro programa [Y/N]
set /p opc=">> "
if /i ["%opc%"] == ["Y"] (goto:menu) else (msg * Gracias por usar Apps Execute&exit)
:com
set temp0=%1
if not [^%temp0:~0,1%] == [^"] (set file="%file%"&goto:eof) else (goto:eof)
:error1
set temp1=%1
if /i not ["%temp1:~-5,4%"] == [".exe"] (echo. Error23: Archivo invalido&pause>nul&goto:menu)
goto:eof
Agregar accesos directos a C:\Windows
Etiquetas: Batch, VBS
Tal vez sea un nombre no muy claro pero la correcta explicación de este pequeño programa es la siguiente:
Cuando abren cierto programa desde Ejecutar es porque la ruta del ejecutable esta asociada al sistema y si no se encuentra les dice que Windows no puede encontrar el archivo "nombre"... entonces el programa siguiente hace eso, agregar accesos directos de tus programas al sistema para que los abras desde Ejecutar.
Cuando abren cierto programa desde Ejecutar es porque la ruta del ejecutable esta asociada al sistema y si no se encuentra les dice que Windows no puede encontrar el archivo "nombre"... entonces el programa siguiente hace eso, agregar accesos directos de tus programas al sistema para que los abras desde Ejecutar.
@echo off
color 0B
title Shortcut Execute
mode con cols=60 lines=15
:menu
cls
echo.Arrastre aqui su archivo [exe]
set /p file=">> "
echo.Nombre del acceso directo
set /p name=">> "
if exist "%systemroot%\%name%.lnk" (goto:comp)
:create
echo set WshShell = WScript.CreateObject("WScript.Shell") >> "%temp%\add.vbs"
echo set LinkCreator = WshShell.CreateShortcut("%systemroot%\" ^& "\%name%.lnk") >> "%temp%\add.vbs"
echo LinkCreator.TargetPath = %file% >> "%temp%\add.vbs"
echo LinkCreator.WindowStyle = 1 >> "%temp%\add.vbs"
echo LinkCreator.Description = "%name%" >> "%temp%\add.vbs"
echo LinkCreator.Save >> "%temp%\add.vbs"
call "%temp%\add.vbs"
ping -n 2 localhost >nul
echo.
msg * Acceso directo [%name%] creado con exito
del "%temp%\add.vbs"
pause>nul&exit
:comp
echo.
echo.Ya existe un acceso directo con ese nombre !!!
echo.
echo.Desea reemplazarlo? [Y/N/X] X=salir
set /p mod=">> "
if /i ["%mod%"] == ["X"] (pause>nul&exit)
if /i ["%mod%"] == ["Y"] (goto:create) else (goto:menu)
Suscribirse a:
Entradas (Atom)