curso de programacion en batch

Upload: benito-torres

Post on 07-Apr-2018

306 views

Category:

Documents


2 download

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