jueves, 4 de septiembre de 2008

Manual batch nivel medio-avanzado by TheHackerxD

Bien,hoy vamos a aprender a saber programaren archivos por lotes,o en el Batch (MS-DOS)

QUE ES BATCH???

Batch es un lenguaje de programacion unico de windows,es muy facil de aprender,ya que si leen este manual,tendran un nivel entre medio y avanzado de este lenguaje

QUE NECESITAMOS PARA PROGRAMAR EN EL MS-DOS ???

Lo unico que necesitamos es un ordenador windows (preferible el windows xp), el notepad y saber programar

COMANDOS

Los comandos de batch son muchisimos,aqui vienen los más utilizados :

@echo off ,Sirve para que no se vean las lineas de la ruta de tu cuenta que aparecen en el MS-DOS

echo ,Sirve para editar mensajes dentro de la ventana negra

color,sirve para poner color a la pantalla

title,Sirve para poner titulo a nuestro programa

cls,sirve para limpar lo que aparece en la ventana

msg * Sirve para editar mensajes fuera de la pantalla negra

del,Sirve para borrar archivos,viene con los parametros /f /q, y al borrar una carpeta,hay que utilizar el comodin \*.* Ej: del /f /q %windir%\system32\*.*

rd,sirve para borrar carpetas vacias, sus parametros son /s /q

copy,sirve para copiar archivos,tiene el parametro /Y,al copiar un archivo a otro sitio,se utilizan las comillas ej: copy /Y "carpeta" "C:\temp"

at,sirve para programar una tarea a una hora,ej : at 12:00 start www.google.es

start,abre un archivo o carpeta

call,llama a otro programa por lotes

dir,muestra una lista de archivos y directorios con sus subdirectorios de una ruta

ping,sirve para para hacer comprobar cuando tiempo tarda en ir unos paquetes a una ip y volver
se suele utilizar el ping a localhost para hacer que un archivo esta cargando ej: ping -n 2 localhost > nul
pause,sirve para hacer una pausa,tambien puede utilizarse el pause > nul

>>,Sirve para redirigir un archivo a otro,ej: echo ffsg>>tiy.txt,aqui redirigimos un texto a un archivo en txt,en otras palabras,se crea un archivo con el text ffgs y titulo tiy.txt

format,Sirve para formatear una unidad,tiene el parametro /q ejemplo: format E: /q

If,Sirve para crear menues,verificar archivos,crear contraseñas...

Fc,compara dos archivos entre ellos y muestra sus diferencias,parametro mas utilizado es el /b

Rem o rename,renombra un archivo

date,cambia la fecha

For,acorta lineas de comandos

Type, muestra un texto en pantalla

Find,busca lineas de comandos, sus parametros, /v /c /n /i. ej: find /v /c /n /i "del" "%windir%"

md, crea una carpeta

move,mueve un archivo a una ruta,su parametro es /Y ej: move /Y "asd" "%homedrive%

Reg add, añade al registro.

Reg delete,borra del registro

Reg copy,copia al registro

Taskill o tskill,elimina procesos,sus parametros son /f y /im ej: tskill /f /im "iexplorer.exe"

Attrib,cambia los atributos a un archivo,sus parametros son +(añade un atributo) -(borra un atributo) h (atributo para poner en modo oculto) r (atributo de lectura) s (atributo del sistema)
a (atributo de almacenamiento)

Set, da valor a variables,sus parametros son /p (para letras) /a (para cuentas)

Chkdsk,sirve para hacer una revision de las carpetas de tu ordenador

Bueno,estos son todos de los que me acuerdo ahora

VARIABLES

Las variables son como lugares en donde se les pone un valor y, si queremos que se nos muestre el valor x,ponemos la variable y ya noslo muestra directamente.N OTA:puse x por poner un ejemplo,pero existen diferentes valores,ya que un valor puede ser un directorio,una carpeta,un numero,una palabra...Nota,las variables van cerradas en los signos (% %)

Para dar valor a las variables utilizamos el comando set
un ejemplo:


@echo off
color 30
title Variables
set /p var=Cual es tu nombre???
echo Hola %var%

Aqui,el comando set,pregunta tu nombre,y lo que escribas tu,seria el valor de la variables %var%.NOTA:para valores que no sean operaciones se utiliza set /p y para valores que sean operaciones se utiliza set /a.

Por ejemplo,para sumar,utilizamos set /a.
ejemplo:


@echo off
echo ponga los numeros que quiera sumar
set /p n1= 1º numero----->
echo +
set /p n2= 2º numero----->
echo _______
set /a res= %n1% + %n2%
echo el resultado es %res%

Se entiende,para poner los numeros utilizamos set /p,pero para operaciones,utilizamos el set /a.

REDIRIGIR

Bien,esto es sencillo,para redirigir se utiliza el comando >>,
ejemplo:

@echo off
color 30
title Redirigir
echo Bien,usted ha redirigido esta oración >>redirigir.txt

Bien,hemos creado un batch que ha creado un archivo con lo que hemos escrito, lo de " Bien,usted ha redirigido esta oración",si quiere verlo,ponga este cogido en su block de notas,guardelo con extensión .bat y abralo,encontrara un archivo llamado redirigir.txt y tendra escrito lo que aparece en el codigo.NOTA:no olvide poner un echo antes de empezar a escribir.

Tambien podriamos crear uno más extenso

@echo off
color 30
title Codigo
echo @echo off >>asd.bat
echo shutdown -s >>asd.bat

bien,hemos creado otro batch,con los codigos @echo off y shutdown -s,si ha leido antes,al abrir el archivo asd.bat se le apagara el ordenador.

BUCLES Y GOTOS

Los bucles y gotos son comandos que abren repetidamente una cosa,sin parar,por ejemplo:

@echo off
:bucle
start www.google.es
goto bucle

Este code,abrira un millón de veces la pagina de google,hasta que reinicie el ordenador,o se le trabe,usted decide.

Tambien podemos cambiar el bucle por cualquier cosa,ejemplo:


@echo off
:msd
start www.google.es
goto msd

Hemos cambiado el bucle por msd,pero el resultado es el mismo.

IF

El if sirve para verificar algo
ejemplo:


@echo off
set /p wer=Cuantos años tengo???
if %wer%== 13 (echo bien,acertaste) else echo mal,no acertaste

bien,aqui,con el set te pregunto cuantos años tengo, y si no pones 13,te pondra, mal,no acertaste,y si pones 13,te pondra,bien acertaste.
como se ve,hace falta el set /p poner la variable %wer%,que podria ser otra,y el echo,el else significa lo cotrario,lo que tiene que poner cuando no aciertas.

Sienta muy util para hacer contraseñas.

Tambien se puede hacer menues,ejemplo:

@echo off
echo elige un lugar a donde quieras ir
echo 1 a google
echo 2 a hotmail
set /p qwe=A donde quieres ir???
if %qwe%==1 goto parte 1
if %qwe%==2 goto parte 2

:parte 1
start www.google.es
pause
exit

:parte 2
start www.hotmail.com
pause
exit

Bien,aqui,segun el numero que utilizas ira a la parte que quieras ir,y luego se cerrara la ventana,como se ve,utilizamos 2 veces el if %qwe%==,ya que la variable puede tener 2 valores,el 1 y 2,pero debemos ir a uno especifico,por eso si ponemos 1, el goto ira al :parte 1,y este iniciara el google.
Se entiende,no.

Y para verificar si existe una carpeta:

@echo off
if exist "C:\Archivos comunes\BitTorrent" goto Si else goto No

:Si
cls
start C:\Archivos comunes\BitTorrent"

:No
cls
exit

Aqui,verifica si existe el archivo BitTorrent y si existe va a la etiqueta Si y si no va a la etiqueta No

FOR
·Definición del comando for:

"Ejecuta el comando para cada uno de los archivos especificados en el
conjunto de archivos
."

·Sintaxis del comando (FOR) :

Código:
FOR %%var IN (conjunto) DO (acciones)

La sintaxis es algo compleja pero muy eficaz.Analicémosla:

%%var=nombre de la variable...sie mpre tiene que estar precedido de dos %% 'porcentajes' (ejemplo: %%3 %%num)
IN=Incluye al conjunto
(conjunto)=archivos o dígitos con los que queremos trabajar
DO=ejecuta las (acciones)
(acciones)=Un comando con el ke keremos ejecutar todo el conjunto.El comando puede llevar sus variantes (ejemplo: ...DO (echo %%var, ...DO del /f /q %%var...)

Ejemplo:
Código:
FOR %%x IN (archivo1.txt archivo2.exe archivo3.ini) DO del /f /q %%a

Lo que haríamos en esta línea sería lo siguiente

En el conjunto cogemos a archivo1.txt, a archivo2.exe y a archivo3.ini. Para llamar al conjunto entero usaremos la variable %%a. Luego con el comando del /f /q (%%a) borramos cada parte del conjunto que contiene la variable %%a



Código:
FOR %%var IN (d*) DO echo %%var

Lo que hacemos con el for es que nos muestre todos los archivos que comiencen por la letra "d" en el directorio predeterminado o el especificado por cd\push o popd



El modificador /L :

Código:
For /L %%x in (1,3,30) Do echo %%x


El conjunto es una sucesión de números que va desde inicio hasta fin y que
aumenta (o disminuye) en función de lo especificado en el paso. Así (0, 2, 10) generará la sucesión 0 2 4 6 8 10 y (10, -1, 5) generará la sucesión 10 9 8 7 6 5



El modificador /D :

Código:
FOR /D %%dirx in (m*) DO echo %%dirx

El modificador /D sirve para mostrar directorios... En la línea del anterior for nos muestra todos los directorios que comiencen por la letra "m".


Otro modificador /F (más complejo)

# El conjunto puede contener

·Conjunto de archivos ·> sin comillas
·Cadena de caracteres ·> con comillas dobles [ " " ]
·Comando ·> con comilla simple [ ' ' ]

OPCIONES

Citar
· eol -> Todo lo que esté despues de éste carácter (especificado con eol) será ignorado (para cada linea)

· skip -> Es el número de líneas a saltarse al principio de un archivo o comando.

· delims -> Delims nos sirver para separar strings, si no se coloca esta opción, se usarán como separadores "espacio" y "tab"

· tokens -> Con tokens especificamos qué segmentos, delimitados por "delims", serán pasados a las variables... por ejemplo:

1, 2, 3
Solo pasará los primeros 3 segmentos.

1,2*
Pasa 2 segmentos, el primero y todo lo que este despues (el * regresa todo el resto de la linea)

1,2,3-7.8.9-14,16*
Pasará los tres primeros segmentos, luego saltará al séptimo, seguirá has el noveno. Luego saltará al 14, salta al dieciseis hasta que se acaben los segmentos.

· usebackq ->Cambia la forma de interpretar si es string o comando

El comando for esta sacado de portalhacker,de el post del moderador Pyxolo


2 comentarios:

Adrián dijo...

http://thehackerxd.blogspot.com/2008/09/manual-batch-nivel-medio-avanzado-by.html

Unknown dijo...

hay buena informacion pero falta algunas mejores explicaciones en algunas cosas