curso de programacion en batch
TRANSCRIPT
-
8/4/2019 Curso de programacion en Batch
1/19
-
8/4/2019 Curso de programacion en Batch
2/19
Bueno gente la idea de este manual es que alguien que sepa al menos comoprenderlacomputadoraseacapazdecrearunpequeoprogramitaconstructivoyalterminarqueeseprogramitasetransformeendestructivoPeroempecemosporelprincipiommmmejorno,hayunmontndemanuales
(olamismaInternet)queexplicalasnocionesdelaprogramacinenbatch,dequesetratayunmontndecosasaburridas,solobastamencionarquetrabajarconbatchestrabajarconunashelldesistema,paraconoceraestebichitotanrarosolohacefaltaira
InicioEjecutarcmd(apretarenter)//Alternativa:TeclaWindos+R
Nos va a abrir la tpica ventanitanegra, esa ventanita es la shell (secierraescribiendoexit y apretandoenter), desde all podemos hacer loque queramos como si estuviramosenelmismsimowindows,claroque
no con unas ventanas tan lindas (nisuslindosiconos)perolarealidadesquelashellesmuytil,completaylaformadenavegaresmaseficienteunavezqueunosabecomofunciona.
1 www.hackxcrack.es1 www.hackxcrack.es
-
8/4/2019 Curso de programacion en Batch
3/19
Buenonoperdamosmastiempo,yatenemosunanocinbsicadeloqueeslalneadecomandos,ahorahacefaltaexplicarqueesunbatch:Unbatch,obat,esunaseriedeinstruccionesquenosotroslevamosadarala
computadoraquestavaarealizarconmuchogusto.
Como la ejecucin es rpida no vamos a tardar en darnos cuenta si nosequivocamosasquepasaremosaaprenderaprogramarcosillasnefastas
Cmocreamosunbatch?Larespuestaesmuysencilla,creamosundocumentodetextoplanoquecomolohacemos?
(digamosqueestamosenelescritorio)BotnderechoNuevoDocumentodetexto
Comoverneldocumentode textoesunahojaenblancodondenisiquieraselepuededarformato(formato=forma)masquealafuente(fuente= letra),noescomoelWordcontodosesosbotonesycolores.
2 www.hackxcrack.es2 www.hackxcrack.es
-
8/4/2019 Curso de programacion en Batch
4/19
Unavezquecreamoseldocumentodetextoconunarutinaadentro(tranquilo,yavamosallegaralarutina)cambiamoslaextensindelarchivoa.batCmocambiarlaextensindelarchivo?Muy fcil, si el documento de texto se llama nuevo documento de texto.txt,apretamossobrelBotnderechopropiedadesdondedicenuevodocumentodetexto.txtlocambiamospornuevodocumentode texto.bat, el truco es cambiar el archivo xxxxx.txt a xxxxx.bat, cuando lo
hagasunaventanitatevaapreguntarsiestasseguro,comoseguronohaynadaenlavidaclickeasi,vasavercomocambiaeliconodeunahojaaunaventanita
Nota Importante:Si elWindowsnoesta configuradoapt (aprueba detontos)deberas ver la extensin sin problemas, pero en general Windows viene
predeterminadoparaserapt,parasolucionarlovanaIniciopaneldecontrolopcionesdecarpetasHacemosclicenlasolapaverydestildamosocultarlasextensionesdearchivoparatiposdearchivosconocidos,clickeamosaplicarydespusaceptar,apartirdeahoravamosavertodaslasextensionesdelosarchivosExcel.xlsWord.docMsica.wma,.mp3
Videos.avi,.mpegBatch.bat(estenosinteresa)
3 www.hackxcrack.es3 www.hackxcrack.es
-
8/4/2019 Curso de programacion en Batch
5/19
Textoplano.txt(tambineste)Entremuchasotrasextensiones
RutinasAlfinllegamosalomasdivertidoytambinalomaslargoycomplicado,larutinaesaquelloqueyodeseoquehagaelprograma,hayqueteneralgomuyenclarobatch(obat)sonsecuenciales,estosignificaquehacenlarutina1,despusla2,latresyassucesivamenteencriollodigamosquemirutinadiariaes
1. Despertarme2. Desayunar3. Trabajar4. Entrarenhackxcrack5. Almorzar6. Estudiar7. Cenar8. Irmeadormirhastadespertarme
La computadora entiende una orden debajo de la otra por eso hay que tenercuidadodeelordenenelcualescribo,digamosqueyopusiera
1.Despertarme2. DesayunarTrabajar
3. Entrarenhackxcrack4. Irmeadormirhastadespertarme5. Almorzar6. Estudiar7. Cenar
Enestecasocuandolleguealaordenirme a dormir hasta despertarme
me salteara almorzar, estudiar ycenar, ya que estoy durmiendo y nopuedo hacer las rdenes restantesseentiende?
Muchas veces vamos a tenerpequeos errores que solo se van a
deberaquelarutinaesincorrectaono se encamina por donde nosotrosqueremos, en estos casos mirecomendacin (despus amplio untruco)esquesepreparenunatazadecaf y se alisten a pasar variosminutos observando porquedemoniosnoquierefuncionar.
4 www.hackxcrack.es4 www.hackxcrack.es
-
8/4/2019 Curso de programacion en Batch
6/19
@echooffSe que se ve raro pero es la lneaprincipal de cualquier programa en
batch,Quesloquehace?El echooff oculta los procesosquese llevan a cabo en el .bat y quenosotrosnotenemosintencinquesevean,yel@seencargadeocultaresaprimeraorden,elechooff,comoyadijimos antes, trabajarcon el .bat escomo trabajar en una shell (se
acuerdan? La ventanita negra), enrealidadel.batcorreenlashell,por
eso una vez que sepamos comofuncionael.batnosvaasermasfcilentender tambin la shell, cuandosientanqueaestetutorialyalosabenynoposeendudasquitenelechooffy van a ver la maquina detrs de lailusin,porahoraesmejorversoloalhombrevolando
echoEslapalabraquehayqueponerantesdeunafraseparaqueestaaparezcaenlashell(nosepreocupenenunpardelneasvanacomprendermejor)
pauseDetienealprogramaconelmensajepresioneunateclaparacontinuar,notienemuchaciencia,detienelarutinahastaqueapretemosunateclacualquiera,esmuyimportantedadalavelocidaddeestetipodeprocesos,delocontrarioseiniciara,ejecutarayacabarasinquenosotrosnosdiramoscuenta
Ahora si, con estos tres primeros comandos vamos a crear nuestro primerprogramaenbatchmuajaja!Abrimosundocumentodetextoquevamosallamarhola,vaaquedarhola.txt,loabrimosyadentroescribimos
@echooffEchoMiprimerprcticoenhackxcrack
PauseLo guardamos y convertimos enbatch cambiando laextensin de .txt a .bat, esdecir que con el cambio va a pasar a llamarse hola.bat, cuando el icono de lalibretitaseconvierteenventanitahacemosdobleclicksobreelVamosaverunaventananegraquediceMiprimerpracticoenhackxcrackpresioneunateclaparacontinuar
5 www.hackxcrack.es5 www.hackxcrack.es
-
8/4/2019 Curso de programacion en Batch
7/19
Cuando apretamos cualquier tecla elprograma se cierra, si sucede estosignifica que tu primer programahasidotodounxito!
Bien,deahoraenmasvoyaobviarlatransformacin de .txt a .bat, yo lesvoyadarla recetaparacompletarel.txt yelresultado que van aobtenercuando ejecuten el .bat, ya se esta
haciendotardeynoqueremosquetecanses con repeticiones que en elpeor de los casos podes chequearvolviendounaspaginasparaatrs
El comando echo tiene variasfunciones muy importantes, yaconocemosdosperohayunaterceraquenosvaaservirdemucho
echo.Exacto,consolounpuntoalfinal,lafuncindeesteecho.escrearunespacioentrelneas,esdecir,ngresamosenel.txtlosiguiente
@echooffEcho.EchoUnespacioEcho.EchoOtroespacioEcho.Pause
Cuandoejecutemosel.bat(ejecutar=dobleclicksobrelaventanitaconextensin.bat)vamosaverenlashell
UnespacioOtroespaciopresioneunateclaparacontinuarSiloves significaque tusegundobatchestaecho,yademsaprendistea usarelecho.
pause>nulEs igual que pause sin embargo este no escribe presione una tecla paracontinuaraunquesiquedaalaesperadequepresionesunateclacualquiera,probmosloIngresamoseneltxt.losiguiente
@echooffEchoEstoyaresultafcilPause>nul
6 www.hackxcrack.es6 www.hackxcrack.es
-
8/4/2019 Curso de programacion en Batch
8/19
Cuandoejecutemosel.batvamosaverEstoyaresultafcilEntienden?Noestaesemensajedepresione una teclapara continuary sin
embargoesperaaquepresionemosunateclacualquieraAhora comencemos, digamos que queremos hacerun programapara ofender aalguien(elsoftmaliciosonotieneporqueserdaino,jajaja)masomenosvaaverseasQueressaberquepiensodevos?presioneunateclaparacontinuarAcelusuariovaatenerquepresionarunateclaTeodioSabesquemas?,apretaunateclaElusuariotienequeapretarunateclaTedetestoperopensndolobienQuizsQuizs
ApretalasparasaberloElusuariotienequeapretarunatecla(esindiferentequeteclasea)Meprestas$5?LapesparaputearmeElusuariotienequeapretarunatecla(esindiferentequeteclasea)ytermina.Lasolucinestacontinuacinperointentalo,noestandifcil
@echooffEcho.EchoQueressaberquepiensodevos?PauseEcho.EchoTeodioEchoSabesquemas?,apretaunateclaEcho.Pause>nulEchoTedetestoperopensndolobien
Echo.EchoQuizs
7 www.hackxcrack.es7 www.hackxcrack.es
-
8/4/2019 Curso de programacion en Batch
9/19
Echo.EchoQuizsEcho.EchoApretalasparasaberloPause>nul
Echo.EchoMeprestas$5?Echo.EchoLapesparaputearmePause>nul
ClsSirveparalimpiarlapantalla,enelcasoanterior,laslneasseagregaban,conestecomandolaslneasvisualizadashastaelmomentodesaparecenprobmoslo
@echooffEchoPrimeralneaEcho.PauseClsEchoSegundalneaEcho.Pause
ComovanacomprobarprimeroaparecePrimerlneapresioneunateclaparacontinuarCuandonosotrospresionemosunateclanosvaaborrartodoloescritoycontinuaconelprogramaSegundalneapresioneunateclaparacontinuar
TitlePoniendoennuestrocdigo lapalabra titleseguidoporuntexto loquevamosalograr es que cambie el nombre de la ventanita, en su defecto aparece la rutadondesedesarrollaelbatch(conceptoquedespusampliaremos)
9 www.hackxcrack.es8 www.hackxcrack.es
-
8/4/2019 Curso de programacion en Batch
10/19
9 www.hackxcrack.es
-
8/4/2019 Curso de programacion en Batch
11/19
ColorEstafuncincambiaelcolordelasletrasydelfondo,laeleccineshexadecimal(esdecir0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f)yvadeapares
Ejemplo: titulo de la ventana hackxcrack con color al mejor estilo Windowsregistrodeerrorfatal(letrasblancas,fondoazul)
@echooffTitlehackxcrackColor1fEchoErrorfatalEcho.EchoPorfavorreiniciesupcPause>nul
Msg*Elcomandomsg*esparadejarunmensajedesdeelmostrador,unaventanitalacualnosdalasnicasopcionesdeaceptarocerrar
@echooffMsg*Uniteahackxcrackunitealconocimiento
Al ejecutarlo nos va a aparecer unaventanita con la misma leyenda, ya queno
necesitamosqueelprogramasedetenganohacefaltaingresarunpause
StartAhoraempezamosconunodeloscomandosmasimportantes,startnosvaaservir(por el momento) para abrir paginas de Internet, ejecutar programas y abrirarchivosDigamos que queremos abrir una pagina de Internet, mas precisamentehackxcrack,laordenenel.txtseria
@echooffStartwww.hackxcrack.es
10 www.hackxcrack.es10 www.hackxcrack.es
-
8/4/2019 Curso de programacion en Batch
12/19
Unavezmasaclaroquecomonomeinteresaverlashell(elcuadraditonegroqueaprendimosacambiardecolor)asquenopongoelpauseAhoraun.txtquehabrminavegadordeInternet
@echooffStartfirefox.exe
oiexplorer.exedependiendodecualtenganSedancuenta?Conunasimpleordenpodemosejecutarunprogramasinsiquierasaber en que lugar de la computadora estapara conocer el comando de cadasoftwarehayvariasrecetas,amicriteriolamassimpleeshacercorrerelprogramadespusAlt+Ctrl+SuprProcesos
Ahvamosavertodolosprocesosconsusintaxisparaejecutarlosconelcomandostart,essolocuestindelocalizarcualesOtrosejemplos:
Pdfacrord32.exe,Calculadoracalc.exe,Nod32nod32krn.exe,etc
11 www.hackxcrack.es11 www.hackxcrack.es
-
8/4/2019 Curso de programacion en Batch
13/19
SetEste individuo es quien realiza las funciones de un programa en batch y quienademspermitequeelusuariointeractuconelsinembargonuncavienesolo,siempreloacompaansusdosamigos/ay/p,todoestoesalgomasabstracto,
sinembargoyaaestasalturasnonosvamosadetenerconunasimplemontaitaSetsignificaqueaunavariablelevoyaentregardeterminadovalorSet/psignificaquelevoyapediralusuarioqueingreseelvalordeunavariableSet/asignificaquevoyahacerclculosconvariablesQuesunavariable?,esunaconcatenacindeletrasy/odgitosalcualleasignounvalorencriollo,letrasjuntasquerepresentanalgo(verdadquesonabamascomplicado?), las variables en batch no deben estar definidas al comenzar elprograma (algunos programas si lo requieren), se puede agregar una variable
dondelodeseesiempreycuandoseaanterioralmomentodeutilizarlaDigamosquequeremosquelavariableletrasvalga6
@echooffSetletras=6
Ahora le vamosnosolo apedir darleun valoraunavariable, sinoqueademsvamosapedirlequenosmuestreelvalordelamisma
@echooff
Setletras=6Echo%letras%Pause>nul
Algocuriosoquetenerencuenta,esnecesarioparallamaralavariableencerrarsunombreentre%,delocontrarioenestecasonosmostraralapalabraletrasEnlapantallasolovamosaver6
Cuandoapretemosunateclasecierra
Set/pAhoravamosa interactuarconelusuariopidiendoleaelqueingreseelvalordeuna variable, Cmo lo hacemos?, de la siguiente forma, pero hay que tener encuentaelformatoenqueescribimoselsetSet/pvil=Quenombreeseltuyo?=
Separemosloparacomprenderlodelamejormanera
12 www.hackxcrack.es12 www.hackxcrack.es
-
8/4/2019 Curso de programacion en Batch
14/19
Set/pnosindicaquelavariablevaapedirlealusuariosuvalorvilelegidoalazarpormieslavariablelacualguardaraeldatoingresado
=significaelfinaldelnombrede lavariabley elcomienzodeel textoquevaaaparecerenpantallaQuenombreeseltuyo?=eslapreguntaotextoquevaaleerelusuarioantesdeingresareldatoquepasaraatomarlavariable,el=finalessoloparalapercepcindelusuario,quedamasestticoperonotieneutilidadelagregarloonoEl.txtseriadeestaforma:
@echooffSet/pvil=Quenombreeseltuyo?=Echo.EchoTunombrees%vil%,laverdadnoesnadalindoPause
Cuandoloconvirtamosen.batvamosaverQuenombreeseltuyo?=Y en vez de continuar (como hasta ahora lo hacan todos los comandos), va adetenersehastaqueintroduzcamosundatoelset/pcomopuedenverahorahace
lasvecesdepausetambinAlingresaruntexto(porejemploAlan)yapretarentervamosaverQuenombreeseltuyo?=TunombreesAlan,laverdadnoesnadalindopresioneunateclaparacontinuarDelamismaformapodemospedirlealusuarioqueingresevaloresparadistintasvariables,elnombredeestasselodamosnosotrosanuestroantojo,perosiempreesmejorunnombrequeserelacioneparaminimizarerrores
Set/aEstenuevoamigonuestroseencargadelaaritmtica(cuentas)cuandoyoquierosumar,restar,multiplicarodividirNotaimportante:batchnotrabajacondecimalesporlocualalintentaringresarunvalorcondecimalesvaadecirnosFaltaeloperador.pornomandarnosafrerchurros,asuvezcuandoelresultadodecondecimalessoloselimitaaredondear
elnumeroydarnosunentero
13 www.hackxcrack.es13 www.hackxcrack.es
-
8/4/2019 Curso de programacion en Batch
15/19
Laformadeutilizarloeslasiguiente,digamosquequeremossumardosnmerosymostrarloporpantallaEl.txtseria
@echooffSet/asuma=5+3Echo%suma%Echo.Pause
Estonosvaadevolverporpantallaalejecutarelbatch8presioneunateclaparacontinuarPeroestonoestodoylograciosoesquenosotroslepodemospediralusuariodenuestrobatch(combinandoelset/pyelset/a)queinsertelosdatosasumar,multiplicar,restarodividirhagamostodojuntosaslosconfundounpoco.txt
@echooffSet/pero=Ingreseelprimernumero=Cls
Set/pndo=Ingreseelsegundonumero=ClsSet/asuma=%ero%+%ndo%Set/arest=%ero%-%ndo%Set/amult=%ero%*%ndo%Set/adivi=%ero%/%ndo%Echolosnmerosingresadosson%ero%y%ndo%Echo.EchoLasumaentreambosda%suma%Echo.EchoLarestadelprimeroporelsegundoda%rest%Echo.EchoLamultiplicacinda%mult%Echo.EchoLadivisindelprimeroporelsegundada%divi%Echo.Pause
LoqueveramosenlashellseriaIngreseelprimernumero=
14 www.hackxcrack.es14 www.hackxcrack.es
-
8/4/2019 Curso de programacion en Batch
16/19
Nosotrosalingresarelprimernumeroydarenter(supongamosqueingresoel60)vaaborrarlaprimerafrase(graciasalcls)ynosvaaaparecerenpantallaIngreseelsegundonumero=
Elusuariovaaelegirunsegundonumero(enestecaso10)yalapretarenterelotroclsnosvaaborrarlasegundafraseyvamosaverLosnmerosingresadosson60y10Lasumaentreambosda70Larestadelprimeroporelsegundoda50Lamultiplicacinda600Ladivisindelprimeroporelsegundoda6presioneunateclaparacontinuar
IfMucha gente se pregunta que hubiera pasado si, este if significa un sicondicional en ingles, una eleccin a travs de diversos parmetros, esto esta
sonandomuycomplicadoelifsirveparaelegiruncaminoencasodequeocurraalgoasquedobonitoEliffuncionaconsupandillaLSS(menor/)LEQ(menoroigual=)EQUo==(igual/=)NEQ(distinto/!=)
*En lasegundapartede cadaparntesis estn los operadores usados enlamayoradelenguajesunpocomsavanzados,asyaosvansonando.
Cmofunciona?Nosotroslevamosapreguntarsiunvaloresigual,menor,mayor,etc,yestenosvaaresponderendosforma,queelvalorcumplaconelrequisito(correcto)oquenolohaga(incorrecto)If(variable,nombreonumero)(condicin==,>,
-
8/4/2019 Curso de programacion en Batch
17/19
Ufff!!!, se vecomplicado pero con un ejemplo, algo sencillo (aclaro que el valorcorrectoeincorrectopuedenllevarelnombrequequieran)
@echooffIf1==1(echocorrecto)elseechoincorrecto
Pause>nulseentiendelasintaxis?,esteejemplosiemprenosvaamostrarcorrectoyaquesiempre1vaaser=a1,siplantearamoselcasodeque2seaiguala1nosvaamostrarincorrectoPeronosolopodemosdarleunvalor fijo,podemospedirlealusuarioqueinserteunoeinclusiveambosvaloresCmo?Conelset/pNota Importante: a medida que vamos avanzando no solo vamos a aprendernuevoscomandossinoquetambinvamosincitaraqueinteractenentreellos,elsiguienteesunbuenejemploVamos a realizar un pequeo juego en el cual nuestro usuario va a tener queadivinarenquenumeroestamospensando
@echooffEchoAdivinaenquenumeroestoypensandoSet/pnum=Esmayorque0ymenorque10=Echo.If%num%==6(echoGeniocomolosabias?)elseechoNonoadivinaste
Echo.Pause
EnlapantallavamosaverAdivinaenquenumeroestoypensandoEsmayorque0ymenorque10=Encasodeescribir6nosvaaaparecerlaleyendaSosGeniocomolosabias?presioneunateclaparacontinuarEncasodequeelnumeroseaotrovamosaleerNonoadivinastepresioneunateclaparacontinuarPufff! Cuantas cosas vamos aprendiendo, quiero dejar en claro desde ahora y
antesdeentrarenterrenomasturbulentoqueellimitetelovasaponervosytu
16 www.hackxcrack.es16 www.hackxcrack.es
-
8/4/2019 Curso de programacion en Batch
18/19
imaginacin,muchas cosas se te van aocurrir as comoamimientras busco elejemplomassencilloparadejarenclarocadapuntoContinuemos
GotoAhora comienzan los comandos, por as llamarlos, mas peligrosos, en realidadaquellosquenospermitenhaceralgunaqueotracosillaperversa,elgotoesunadeellasporunasencillaraznyesquegotoserialatraduccinliteraldeira,loquehaceestecomandoesenviarnosauna parte determinada del cdigo que estamos creando, la peculiaridad delcomandoesquenosvaaenviarallugardondeledemoslaorden,soloquecondos
puntitosantesGotoaca:acadifcil?...hagamosunprogramitasencillo
@echooffEchoComenzamosGotosegu:terc
EchoTerceralneaGotoCuar:seguEchoSegundalneaGototerc:cuarEchoCuartalneaPause
17 www.hackxcrack.es
Cuandolopasemosabatchvamosaverenlashell
ComenzamosSegundalneaTerceralneaCuartalneapresioneunateclaparacontinuarAqueahorapareceunatonteralaexplicacinquevoyadarGotosegu:seguGototerc:tercGotocuar:cuar
17 www.hackxcrack.es
-
8/4/2019 Curso de programacion en Batch
19/19
asdesimple,hayquetenerbienencuentaelordenyelnoabusar (pornuestrapropiasalud)deestecomando,peroademsahoravamosatenerqueingresaruncomandodecierre,comoyahemosvistoelbatchsiguelarutinadearribahaciaabajo,amenosqueelgotonosenveaunanuevadireccin,sinembargoavecesesnecesarioquesetermineenciertopuntoelprograma,paraesto(yesunasana
costumbreusarlosiempre)existeelexit