Es cierto que en internet hay muchos tutoriales simplemente con una sencilla búsqueda, pero no todos se explican de una forma que un novato que quiera iniciarse desde 0 (como yo), pueda entender.
Así que empezaré aportando dos manuales muy buenos para iniciarse desde 0 en batch, y espero que si alguien que se esté iniciando conoce alguno mas, lo aporte.
También he creído que sería mejor poner un rango a cada tutorial que refleje su dificultad, de esa forma hacer mas sencillo un aprendizaje escalonado, si algún mod cree oportuno cambiar el rango de un tutorial no hay ningún problema
Lenguaje: batch
Rango: [1/5]
http://todohacker.com/tutoriales/lenguaje-batch
Este es un manual básico de bach, explica los conceptos iniciales con ejemplos muy completos, está muy bien escalonado, a sido mi primer tutorial, si alguien tiene alguna duda sobre este manual que me pregunte en este hilo, si puedo ayudarle se ahorrará tener que abrir uno nuevo
Lenguaje: batch
Rango: [1/5]
http://dawdamasir.com/wp-content/uploads/2012/04/MinitutorialFicherosBat.pdf
Otro manual básico de batch, también explica el lenguaje desde cero, pero ahonda un poco mas en el tema si as leído el primero y tienes ganas de más, este te ayudará a pasar al siguiente nivel 2/5
Lenguaje: batch
Rango: Tutorial extendido
https://foro.elhacker.net/buscador-t375135.0.html
Tutorial extendido de aprendizaje Batch - por Elektro, abarca barias dificultades, empezando por la primera, un tutorial útil para avanzar sin necesidad de cambiar de instructor, cosa que dificulta un aprendizaje escalonado
Lenguaje: bash
Rango: Tutorial extendido PDF
http://macprogramadores.org/documentacion/bash.pdf
Tutorial recomendado para iniciarse en bash, 227 paginas de conocimiento listo para tomar, que aproveche
Nota: Cualquier manual bien explicado sobre batch o bash será bien venido, no hace falta que sea básico, también puede ser intermedio, ya que el objetivo es avanzar no quedarse estancado en el inicio, pero muy avanzados no creo que convenga, ya que el hilo es para iniciarse en el tema
Modifico: batchelp creado
Hola de nuevo, con el fin de poder aportar algo con lo que he aprendido, he decidido crear un bat que sirve como "chuleta" en caso de necesitar ayuda con un comando, el bat tiene estas características;
Un menú sencillo, solo pulsa en numero correspondiente al comando del que quieras recibir ayuda y listo.
Le pide ayuda a la consola "comando"/?, si esto no es suficiente para resolver tu duda, crea un archivo de texto para que leas una explicación mas extensa, el texto se saco del primer tutorial aportado arriba
Citar
De momento ofrece ayuda básica con estos comandos:copy
del
pause
echo
cd
if
start
title
color
Se irán añadiendo mas, el script estará en constante actualización
Este script a sido creado con el fin de ayudar a comprender las distintas funciones de un comando batch, de ser una guía para que no solo se pueda aprender, si no también aplicar esos conocimientos, si crees que puedes contribuir al script de alguna forma eres libre de hacerlo y publicarlo en este hilo, una vez comprobado su funcionamiento, se actualizara el código, las características de la mejora y el nick del autor
Aviso de fallo importante!!
Pues si, antes siquiera de poner en funcionamiento la versión experimental de batchelp, tengo que informar de un bug , cuando respondes si a la opción de mostrar un texto con información detallada, el bat (aún no se como evitarlo, sería una buena aportación) no deja ver algunos caracteres, como los acentos (los he eliminado) > o < tampoco “” por lo que algún texto de ayuda (copy pause y habrá mas si no logro solucionarlo ) no se muestran como deberían, ejemplo, en vez de “ muestra âll, una vez solucionado el fallo tengo planes para actualizar el script y hacer de el una guía como dios manda, pero antes hay solucionar ese problema, confío en que esto despierte el interés de alguien que me pueda ayudar al respecto
Sin mas preámbulo aquí os lo dejo, acepto criticas constructivas de cualquier tipo
batchelp (experimental)
Batchelp actualizado!
No he podido trabajar mucho en el script, ya que mi ordenador me está dando problemas, pero si he actualizado la interfaz y he añadido alguna mejora:
se cambia el color negro verde por blanco negro
La ayuda sobre el comando se muestran en la terminal, mejor explicadas, y mas fáciles de leer
He añadido las instrucciones (usarlo no es dificil, pero leerlas te harán el uso de batchelp mas sencillo
He añadido un menú de ayuda y otro con el tutorial, ambos están en desarrollo, se incluirán en breve, el tutorial contiene un ejemplo interactivo para que te hagas a la idea de como serán
Navegación libre, puedes ir a donde queras estés donde estés, solo escribe donde quieres ir entre comillas "" en caso de no encontrarse en el menú actual, y aparecerá, por ejemplo, estoy en el menu, pero me quiero ahorrar entrar al diccionario para ver la ayuda de el comando cls, solo escribo "cls" y saldrá en la pantalla
Posiblemente hoy mismo actualice Batchelp de nuevo
Si tienes algún fallo o aspereza por limar, puede que mañana este solucionado
Código:
@echo off
title batchelp (experimental)
cls
mode con cols=100 lines=40
color fc
echo.
echo para usar Batchelp adecuadamente redimensione su terminal
echo asta que las lineas se encuentren visibles asta el final
echo si su terminal corta la imagen pulse enter
echo para refrescar la pantalla
echo.
pause
:testpant
cls
echo ========================================================================================================
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo la linea de abajo la de arriba deben verse por completo
echo si su terminal corta la imagen al redimensionar, pulse enter para refrescar la pantalla
echo.
echo cuando vea las lineas escriba menu en la pantalla :)
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo =========================================================================================================
set/P otest= ::
if %otest%==menu goto menu
if %otest%=="menu" goto menu
if %otest%=="tutorial" goto tutorial
if %otest%=="ayuda" goto ayuda
if %otest%=="salir" goto salir
if %otest%=="instrucciones" goto instrucciones
if %otest%=="echo" goto echo
if %otest%=="pause" goto pause
if %otest%=="cd" goto cd
if %otest%=="if" goto if
if %otest%=="cls" goto clsdic
if %otest%=="title" goto title
if %otest%=="copy" goto copy
if %otest%=="color" goto color
goto testpant
:menu
color 70
cls
echo ~~~~~~~~~~~~~~
echo ================================= : created by :
echo = MENU PRINCIPAL DE BATCHELP = : :
echo ================================= : -hckcrck :
echo : -... :
echo introduzca en la pantalla de batchelp : -... :
echo la palabra que este entre comillas ~~~~~~~~~~~~~~
echo del menu al que desea desplazarse
echo si no puede entrar al menu deseado
echo revise que este bien escrito
echo.
echo.
echo "diccionario" batch
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo "tutorial" basico de batch (en proceso...)
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo "instrucciones" batchelp
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo "salir" de Batchelp
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo "ayuda" para usar Batchelp (en proceso...)
echo =================================
echo.
set/P omenuP= ::
if %omenuP%==diccionario goto diccionario
if %omenuP%==tutorial goto tutorial
if %omenuP%==instrucciones goto instrucciones
if %omenuP%==salir goto salir
if %omenuP%==ayuda goto ayuda
if %omenuP%=="echo" goto echo
if %omenuP%=="pause" goto pause
if %omenuP%=="cd" goto cd
if %omenuP%=="if" goto if
if %omenuP%=="cls" goto clsdic
if %omenuP%=="title" goto title
if %omenuP%=="copy" goto copy
if %omenuP%=="color" goto color
goto menu
:correccion
echo.
echo Puede que el comando no este bien escrito, prueba de nuevo :)
echo.
pause
goto menu
:ayuda
cls
echo.
echo Se esta trabajando en un menu de ayuda con los errores
echo mas comunes que puedes encontrar en Batchelp,
echo pero si necesitas soporte por que una funcionalidad
echo del script no funciona bien, puede acudir a este link
echo y comentar tu problema, estaremos encantados de ayudar.
echo.
echo https://foro.elhacker.net/scripting/tutoriales_batch_y_bash_basicos_empieza_desde_0-t454010.0.html
echo.
pause
goto menu
:tutorial
cls
echo.
echo Esta fase del proyecto se encuentra en proceso, ofrecere
echo un adelanto de como sera:
echo El plan es un tutorial de batch basico como su nombre indica,
echo en el se aprendera lo basico, con ello tendra los conocimientos
echo para crear scrips sencillos, como lo es este.
echo el tutorial incluira ejemplos interactivos, por ejemplo
echo asta ahora hemos visto ejemplos escritos e imagenes de como
echo hacer un bat y de como quedara, como este tan sencillo
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo @echo off
echo echo hola mundo!
echo echo.
echo pause
echo exit
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo tipico ejemplo del uso del comando echo echo. y pause para visualizar
echo un texto en la pantalla, pero ahora ademas lo puedes
echo ejecutar y comprobar el resultado por ti mismo
echo pruebalo escribiendo "ejemplo" en la pantalla de batchelp
echo sin las comillas :)
echo escribe menu para volver al menu
echo.
set /P tutoej= ::
if %tutoej%==ejemplo goto tutoej
if %tutoej%==menu goto menu
if %tutoej%=="menu" goto menu
if %tutoej%=="tutorial" goto tutorial
if %tutoej%=="ayuda" goto ayuda
if %tutoej%=="salir" goto salir
if %tutoej%=="instrucciones" goto instrucciones
if %tutoej%=="echo" goto echo
if %tutoej%=="pause" goto pause
if %tutoej%=="cd" goto cd
if %tutoej%=="if" goto if
if %tutoej%=="cls" goto clsdic
if %tutoej%=="title" goto title
if %tutoej%=="copy" goto copy
if %tutoej%=="color" goto color
goto tutorial
:tutoej
cls
echo @echo off > ejemploholamundo.bat
echo echo hola mundo! >> ejemploholamundo.bat
echo echo. >> ejemploholamundo.bat
echo pause >> ejemploholamundo.bat
echo exit >> ejemploholamundo.bat
start ejemploholamundo.bat
echo.
echo creando ejemplo interactivo y ejecutandolo, cuando lo vea y lo cierre
echo pulse una tecla y volvera al tutorial :) (el bat se eliminara
echo automaticamente)
echo.
pause
del/f ejemploholamundo.bat
goto tutorial
:instrucciones
cls
echo.
echo ===========================
echo INSTRUCCIONES DE USO
echo ===========================
echo Las instrucciones de batchelp son muy sencillas, para
echo entrar a un menu, escribe su nombre, o numero correspondiente.
echo Si desea ver ayuda sobre un comando pero usted no esta en el diccionario,
echo escribalo entre comillas y aparecera el menu con informacion detallada de ese comando
echo le recomiendo que lea la lista, ya que algunos pueden no estar (lo estarán
echo proximamente)
echo Lo mismo si esta en cualquier parte pero quere ir a menu, o al tutorial,
echo si esta fuera de su menu actual escribalo entre comillas y aparecera.
echo.
echo Para contribuir a la mejora de batchelp puedes ir a el.hacker.net y
echo publicar tus ideas y proyectos, o comentar dudas y errores en este enlace:
echo.
echo https://foro.elhacker.net/scripting/tutoriales_batch_y_bash_basicos_empieza_desde_0-t454010.0.html
echo (este otro es el mismo link, pero ves 5 segundos de publicidad y
echo aportas una pequeña ganancia al creador del proyecto :)
echo.
echo http://adf.ly/1bKjiY
echo.
pause
goto menu
:diccionario
cls
echo. ~~~~~~~~~~~~~~~~~~
echo =================================== : 1-echo 2-pause :
echo DICCIONARIO DE BATCH : :
echo en el se encuentra informacion detallada : 3-cd 4-if :
echo sobre comandos de lenguaje batch : :
echo =================================== : 5-cls 6-title :
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : :
echo para volver a menu escriba "menu" en : 7-copy 8-color :
echo la pantalla de Batchelp : :
echo para recibir informacion de un : :
echo comando escriba el numero en la pantalla : :
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : :
echo ~~~~~~~~~~~~~~~~~~
set/P odicc= ::
if %odicc%==1 goto echo
if %odicc%==2 goto pause
if %odicc%==3 goto cd
if %odicc%==4 goto if
if %odicc%==5 goto clsdic
if %odicc%==6 goto title
if %odicc%==7 goto copy
if %odicc%==8 goto color
if %odicc%==menu goto menu
if %odicc%=="menu" goto menu
if %odicc%=="tutorial" goto tutorial
if %odicc%=="ayuda" goto ayuda
if %odicc%=="salir" goto salir
if %odicc%=="instrucciones" goto instrucciones
goto diccionario
:clsdic
cls
echo.
echo ====================
echo Comando cls
echo ====================
echo Este comando es muy facil de explicar, colocando "cls" en nuestro script,
echo limpiamos la pantalla de la terminal y nos muestra lo que venga despues
echo limpio. Como ejemplo de el futuro tutorial que programare en batch, he
echo decidido poner un ejemplo interactivo de este comando, como los que
echo aparecran en el tutorial, para ver el ejemplo 1 escribe ejemplo1, para el
echo ver el ejemplo 2 escribe ejemplo2, para ir a menu pulsa enter.
echo.
echo ejemplo 1 (con cls) : ejemplo 2 (sin cls)
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo @echo off : @echo off
echo cls :
echo echo. : echo.
echo echo este texto aparece en el primer bloque : echo este texto aparece en el primer bloque
echo pause : pause
echo cls :
echo echo. : echo.
echo echo el texto se a borrado por que si hay cls : echo no se ha borrado por que no hay cls
echo pause : pause
echo exit : exit
echo.
set /P clsej= ::
if %clsej%==ejemplo1 goto clsej1
if %clsej%==ejemplo2 goto clsej2
if %clsej%=="menu" goto menu
if %clsej%=="tutorial" goto tutorial
if %clsej%=="ayuda" goto ayuda
if %clsej%=="salir" goto salir
if %clsej%=="instrucciones" goto instrucciones
if %clsej%=="echo" goto echo
if %clsej%=="pause" goto pause
if %clsej%=="cd" goto cd
if %clsej%=="if" goto if
if %clsej%=="cls" goto clsdic
if %clsej%=="title" goto title
if %clsej%=="copy" goto copy
if %clsej%=="color" goto color
if %clsej%==menu goto menu
goto clsdic
:clsej1
cls
echo @echo off > clsejemplo1.bat
echo cls >> clsejemplo1.bat
echo echo. >> clsejemplo1.bat
echo echo este texto aparece en el primer bloque >> clsejemplo1.bat
echo pause >> clsejemplo1.bat
echo cls >> clsejemplo1.bat
echo echo. >> clsejemplo1.bat
echo echo se a borrado por que hay cls >> clsejemplo1.bat
echo pause >> clsejemplo1.bat
echo exit >> clsejemplo1.bat
echo.
echo creando ejemplo interactivo y ejecutandolo, cuando lo vea y lo cierre
echo pulse una tecla y volvera al diccionario :) (el bat se eliminara
echo automaticamente)
echo.
start clsejemplo1.bat
pause
del/f clsejemplo1.bat
goto clsdic
:clsej2
cls
echo @echo off > clsejemplo2.bat
echo echo. >> clsejemplo2.bat
echo echo este texto aparece en el primer bloque >> clsejemplo2.bat
echo pause >> clsejemplo2.bat
echo echo. >> clsejemplo2.bat
echo echo no se a borrado por que no hay cls >> clsejemplo2.bat
echo pause>> clsejemplo2.bat
echo exit >> clsejemplo2.bat
start clsejemplo2.bat
echo.
echo creando ejemplo interactivo y ejecutandolo, cuando lo vea y lo cierre
echo pulse una tecla y volvera al diccionario :) (el bat se eliminara
echo automaticamente)
echo.
pause
del/f clsejemplo2.bat
goto clsdic
:copy
cls
echo.
echo =================
echo = comando copy =
echo =================
echo El comando copy, que como su nombre indica sirve para copiar archivos.
echo Se utiliza de este modo:
echo copy ruta del archivo que queremos copiar “a la ruta del directorio donde lo
echo queremos copiar incluyendo el nuevo nombre del archivo.
echo ~Ejemplo:
echo si queremos copiar un archivo que se llama cosa.txt de el directorio del escritorio
echo a mis documentos, pondremos:
echo copy C:\Documents and Settings\Propietario\Escritorio\cosa.txt
echo “C:\Documents and Settings\Propietario\Mis documentos\cosa2.txt
echo.
pause
goto diccionario
:title
cls
echo. ===================
echo Comando title
echo ===================
echo Ahora otra cosa muy sencilla.
echo No se si os habeis fijado en la barra de titulo de la terminal, pone por defecto
echo la ubicacion en la que nos encontramos, normalmente system32.
echo Pues esto se puede cambiar poniendo simplemente "title" y el nombre que le
echo queramos poner, en este caso batchelp.
echo.
pause
goto diccionario
:color
echo En esta parte vamos a ver algo muy sencillo, se trata del codigo de colores de
echo las letras y el fondo de la consola simplemente se expresa con una combinacion
echo de numeros y letras de esta forma:
echo Primero ponemos "color", para indicar que lo que le vamos a decir es el color
echo del la letra y el fondo, y seguidamente debemos poner dos numeros sin espacio,
echo el primero es el color del fondo y el segundo el color de letra.
echo to menuP
echo Codigo de colores:
echo A = Verde claro
echo B = Aguamarina claro
echo C = Rojo claro
echo D = Purpura claro
echo E = Amarillo claro
echo F = Blanco brillante
echo 0 = Negro
echo 1 = Azul
echo 2 = Verde
echo 3 = Aguamarina
echo 4 = Rojo
echo 5 = Purpura
echo 6 = Amarillo
echo 7 = Blanco
echo 8 = Gris
echo 9 = Azul claro
echo Sabiendo esto, si queremos que el fondo sea blanco y las letras negras
echo ponderemos color 70 pruebalo tu mismo
echo.
pause
goto diccionario
:dir
cls
echo.
echo en construcción....
echo.
pause
goto diccionario
:cd
cls
echo.
echo =================
echo = Comando cd =
echo =================
echo Ahora vamos con el comando cd que utilizaremos para cambiar el directorio
echo general
echo de la terminal, es decir, si el archivo bat esta en el escritorio la terminal
echo estara en ese
echo directorio por defecto y para cambiarlo utilizaremos el mencionado cd.
echo Por ejemplo:
echo si queremos crear un archivo txt en mis documentos en vez de en el
echo escritorio, podriamos escribir la ruta cada vez que nos refiramos al archivo.
echo pero es mas
echo sencillo si cambiamos el directorio actual de la terminal para que siempre
echo se dirija alli.
echo Para ello escribiremos:
echo cd C:\Documents and Settings\Propietario\Mis documentos (los nombres de los
echo directorios pueden
echo cambiar segun el ordenador)
echo y todo lo que creemos o eliminemos sin especificar la carpeta lo hara en mis
echo documentos
echo Tambien podemos escribir:
echo cd..(con los puntos) e ira al directorio superior es decir, si estamos en mis
echo documentos se trasladara
echo propietario, en el caso del ejemplo, o cd \\ y se trasladara a la raiz del
echo directorio. en este caso C:
echo.
pause
goto diccionario
pause
goto diccionario
:pause
cls
echo.
echo =====================
echo = Comando pause =
echo =====================
echo Ahora vamor a ver una variacion del pause: pause NUL (unidos por un signo de
echo mayor a menor, yo lo he puesto asi por que si
echo lo escribo no aparece), sirve para hacer una pausa sin poner nada en la pantalla
echo Esto lo vamos a utilizar para poner nosotros el mensaje que queramos en vez del
echo "pulsa una tecla para continuar"
echo y lo vamos a hacer poniendo algo seguido de pause(signo mayor a menor)NUL
echo vereis el efecto
echo.
pause
goto diccionario
:if
cls
echo.
echo ================
echo = Comando if =
echo ================
echo.
echo If sirve para expresar una condicion. Es decir si pasa esto
echo entonces haz esto. Para ello vamos a utilizar la siguiente estructura: if
echo condicion accion
echo ejemplo: if ==4 echo bien!! esto quiere decir que si el valor de la variable es
echo igual a cuatro entonces escribe "bien!!"
echo Las distintas condiciones que podemos comprobar con un if en batch son las
echo siguientes: (operadores)
echo if variable==valor (para expresar si la variable es igual a valor haz esto)
echo if variable LSS valor (para expresar si la variable es menor a valor haz esto)
echo if variable GTR valor (para expresar si la variable es mayor a valor haz esto)
echo if variable LEQ valor (para expresar si la variable es menor o igual haz esto)
echo if variable GEQ valor (para expresar si la variable es mayor o igual haz esto)
echo if not se utiliza igual que if pero expresa todo lo contrario ej:
echo if not variable==valor (para expresar si la variable NO es igual a "valor") y
echo lo mismo con el resto de condiciones vistas arriba.
pause
goto diccionario
:set
cls
echo en construcción....
echo.
pause
goto diccionario
:echo
cls
echo.
echo ==================
echo = Comando echo =
echo ==================
echo ECHO ON muestra los comandos del archivo por lotes (el bat)
echo en la pantalla, ECHO OFF
echo invierte el efecto de ECHO ON, oculta los comandos y nos deja la terminal como
echo deseamos verla, aunque si se
echo tiene un error, se puede borrar el @echo off y asi ver donde puede estar
echo el problema. Bien ahora vamos a continuar
echo con otro codigo: el echo y el echo. (notese el punto) El echo sirve para
echo escribir algo en pantalla por ejemplo "echo hola" escribiria
echo "hola" en la pantalla y echo. sirve para dejar un espacio vacio
pause
goto diccionario
:goto
cls
echo.
echo en construcción....
echo.
pause
goto diccionario
:help
cls
echo.
echo en construcción....
echo.
pause
goto diccionario
:del
cls
echo.
echo =================
echo = comando del =
echo =================
echo Al comando del se pueden añdir distintas letras para que funcione de distinta forma:
echo del/f Modo force. Borra incluso los archivos de solo lectura
echo del/s Borra tambien los subdirectorios.
echo del/p Pide confirmacion
echo del/q Modo silencioso. No pide confirmacion en ningun caso
echo Se pueden utilizar varios en el mismo "del"
echo por ejemplo:
echo del/f/p archivo.txt
echo borraria el archivo aunque fuese de solo lectura y pediria confirmacion
echo.
pause
goto menu
:reiniciar
cls
echo.
echo ===============
echo = REINICIO =
echo ===============
echo.
echo pulse una tecla
echo para reiniciar
echo Batchelp
pause>nul
start batchelp.bat
exit
:salir
cls
echo =======================
echo = SALENDO DE BATCHELP =
echo =======================
echo.
echo pulse una tecla y se cerrara el script
pause>nul
exit
como esto es para quien empieza desde 0, diré como se ejecuta:
se copia el codigo en un archivo de texto y se guarda con la extensión .bat, doble clic para ejecutar