Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Batch Script

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Batch Batch Script

    Batch Script

    Olá, irei explicar aqui algumas coisinhas sobre batch script, exemplos, não apenas para Win98, mas também para NT/XP pois existem poucos documentos para XP em português...

    O que é um BAT?

    Tipo de arquivo em lote (batch file) do DOS e sistemas Windows. Neste tipo de arquivo pode-se entrar vários comandos de linha de comando a serem executados, em vez de ter de escrevê-los um a um na linha de comando. O arquivo em lote com extensão BAT mais famoso é o Autoexec.bat, que é executado toda a vez em que o sistema operacional é carregado.

    Bom, vamos conhecer agora alguns comandos que iremos usar frequentemente, se tiver dúvida, digite COMANDO /? que irá ser mostrado uma explicação e exemplos do seu uso:

    ECHO

    Serve para que seja ativado ou desativado o "eco" do comando ou para que seja mostrado uma mensagem. Usa-se echo. para quebrar uma linha.

    Exemplo1:
    @echo off
    echo Olá mundo!
    echo.
    echo

    O @ antes do echo off serve para que o mesmo não seja mostrado, e assim ele desative o "eco" silenciosamente. Se tiver alguma dúvida, crie um exemplo sem usar o @.

    Exemplo 2:
    @echo off
    echo Inicio do arquivo > Teste.txt
    echo. >> Teste.txt
    echo Bla bla bla >> Teste.txt

    Isso fará com que seja escrito os dados no arquivo Teste.txt, ficando assim:
    Inicio do arquivo

    Bla bla bla

    CLS
    Serve para limpar a tela.. é como se fosse um /clear para quem usa IRC.. ^^

    GOTO
    Serve para alterar a ordem normal de execução do batch, fazendo ir para um rótulo específico, um rótulo é identificado com o :.

    Exemplo:
    @echo off
    GOTO UIA
    echo Deveria aparecer isso se não fosse o rótulo
    :UIA
    echo Pulamos para cá! hehehe

    Parâmetros
    Isso é muito interessante.. é para que se possa usar parâmetros de execução em seu batch. Em programas por exemplo que precisa ser digitado:
    nomedoprograma /i (para instalar)
    nomedoprograma /d (para desintalar)
    ou pode ser -i ao invés de /i e -d ao invés de /d.
    No batch script, pode-se identificar o parâmetro, através disso:
    %1 - Primeiro parâmetro
    %2 - Segundo parâmetro e assim sucessivamente.

    Exemplo:
    @echo off
    echo %1 - Parametro 1
    echo %2 - Parametro 2

    Execute-o assim: nomedoarquivo vamos ver
    Aparecerá:
    vamos - Parametro 1
    ver - Parametro 2. Simples né?

    SET
    Serve para exibir, definir ou remover variáveis.
    Variável é algo que guarda alguma informação, se chama variável por que seu valor pode variar. (duh)
    Para setar uma variável: SET variavel=seu_valor
    Para visualizar ou usar o valor da variável digite: %variavel%.

    Exemplo:
    @echo off
    set nome=""
    Digite o seu nome:
    set /p nome=
    echo.
    echo Ola %nome% !!

    IF / ELSE
    É usado em praticamente todas linguagens de programação, serve para impor uma condição.

    Exemplo:
    @echo off
    set opcao=""
    echo Digite uma opcao (1 ou 2):
    set /p opcao=
    IF [%opcao%] EQU [1] (GOTO OPCAO1) ELSE (GOTO OPCAO2)
    :OPCAO1
    echo Opcao 1 bla bla bla
    goto FIM
    :OPCAO2
    echo Opcao 2 bla bla bla
    :FIM
    echo CABOU

    Se tiver dúvidas sobre o IF, digite no prompt IF /?

    CHOICE (Em Win9x)
    Possibilita dar opções de escolha para a pessoa.

    Exemplo:
    @echo off
    choice /n/c123
    if errorlevel 1 goto A1
    if errorlevel 2 goto A2
    if errorlevel 3 goto A3
    :A1
    echo Acao 1
    goto FIM
    :A2
    echo Acao 2
    goto FIM
    :A3
    echo Acao 3
    goto FIM
    :FIM
    echo Kabou..

    Bom, visto algumas funções, dê uma re-lida, use o parâmetro /? para conhecer mais sobre cada comando, crie coisinhas bobas para ver se já entendeu..
    Bom, iremos criar duas tools(ferramentas), a primeira é para o comando PING e outra será para quem usa rede, pra facilitar o uso do NET SEND.
    Talvez possa ter incompatibilidade com Win9x já que irei fazer no XP..

    Muitos acham que o PING é apenas ping IP/HOST, mas desconhecem suas outras opções, então vamos lá, dê um PING /?:
    Uso: ping [-t] [-a] [-n num] [-l tamanho] [-f] [-i TTL] [-v TOS]
    [-r num] [-s num] [[-j lista_hosts] | [-k lista_hosts]]
    [-w tempo_limite] nome_destino Opções:
    -t Dispara contra o host especificado até ser interrompido.
    Para ver estatísticas e continuar, pressione CTRL-Break;
    para terminar, pressione CRTL-C.
    -a Resolve endereços para nomes de host.
    -n num Número de requisições de eco a enviar. O valor padrão é 4.
    -l tamanho Envia o tamanho do buffer.
    -f Ativa o sinalizador de não-fragmentação no pacote.
    -i TTL Define o tempo de vida.
    -v TOS Define o tipo de serviço.
    -r num Rota dos pacotes para <num> saltos.
    -s num Data e hora para <num> saltos.
    -j lista_hosts Rota ampliada de origens definida em <lista_hosts>.
    -k lista_hosts Rota restrita de origens definida em <lista_hosts>.
    -w tempo_limite Tempo limite em milissegundos a aguardar para cada resposta.

    Ótimo, vamos criar uma ferramenta para que ao usuário digitar o nome do batch file, ele pergunte o IP, número de requisições. tamanho do pacote e tempo limite.

    Mãos a obra:

    Dê um: edit xping.bat
    Abrirar o editor.. se não gostar, faça no bloco de notas mesmo :P

    Obs: REM é usado para comentar uma linha...
    @echo off
    REM Limpa as variaveis...
    set ip=""
    set num=""
    set pack=""
    set timeout=""
    echo.
    echo Qual o IP desejado?
    REM Ira pegar o valor que for digitado e atribuir a variavel ip
    set /p ip=
    echo.
    echo Qual o tamanho do pacote a ser enviado? (max: 65500)
    REM Ira pegar o valor que for digitado e atribuir a variavel pack
    set /p pack=
    echo.
    echo Qual sera o número de requisicoes? Coloque 0 para ser infinito.
    REM Ira pegar o valor que for digitado e atribuir a variavel num
    set /p num=
    echo.
    echo Qual sera o tempo limite de espera? Em milisegundos.
    REM Ira pegar o valor que for digitado e atribuir a variavel timeout
    set /p timeout=
    echo.
    cls
    echo **********************************************
    echo * *
    echo * XPing por whit3_sh4rk *
    echo * *
    echo **********************************************
    echo.
    REM Mostra qual foi o alvo definido anteriormente, usando a variavel ip
    echo Iniciando o ping ao alvo: %ip%
    echo.
    REM Lembra do numero de requisicoes? (Coloque 0 para ser infinito.)
    REM Iremos pegar o valor atribuido ao numero de requisicoes
    REM se for igual a 0 ele fara o ping infinito, usando o parametro -t
    REM se não for igual a 0 ele pega o numero de requisicoes atribuido
    REM a variavel %num% e usa-o...
    IF [%num%] EQU [0] (
    ping -t %ip% -l %pack% -w %timeout%
    ) ELSE (
    ping %ip% -n %num% -l %pack% -w %timeout%
    echo.
    echo Fim do ping!
    )

    Ótimo, terminanos! Salve isso é claro!
    Agora teste o programa, e tente entender cada linha(nossaaa q difícil!!) kkkk depois disso vamos agora para a próxima tool, nela usaremos parâmetros..
    Obs: Só uma dica, se quiserem usarem parâmetros também nesse "xping" é só definir corretamente o parametro 1=ip, parametro 2=pack, parametro 3=num, parametro 4=timeout, ae é só a pessoa usar:

    xping 127.0.0.1 65500 5 1000
    Ou seja, irá pingar no 127.0.0.1, com um buffer de 65500 bytes, fazer isso 5 vezes, e esperar 1seg pelo resposta...

    Mãos a obra 2 a revolta(lol):
    Bom, imaginemos que aqui na rede tem 3 máquinas, seus nomes:
    LOCKE
    SAWYER
    HURLEY
    (qualquer semelhança com o seriado LOST é mera coincidência

    Dê um: edit msg.bat

    Vamos lá:
    @echo off
    set msg=""
    IF [%1] EQU [] GOTO AFF
    IF [%1] EQU [LOCKE] (GOTO LOCKE) ELSE IF [%1] EQU [SAWYER] (GOTO SAWYER) ELSE IF [%1] EQU [HURLEY] (GOTO HURLEY) ELSE (GOTO AFF)
    :LOCKE
    echo Digite a mensagem que deseja enviar para LOCKE:
    set /p msg=
    echo.
    net send LOCKE %msg%
    GOTO :EOF
    :SAWYER
    echo Digite a mensagem que deseja enviar para SAWYER:
    set /p msg=
    echo.
    net send SAWYER %msg%
    GOTO :EOF
    :HURLEY
    echo Digite a mensagem que deseja enviar para HURLEY:
    set /p msg=
    echo.
    net send HURLEY %msg%
    :AFF
    echo.
    echo Nenhum parametro valido foi especificado!


    Salve..
    Como será usado?
    Abra o prompt e digite:
    msg LOCKE
    ou
    msg SAWYER
    ou
    msg HURLEY

    Lembre-se de que é CaSe SeNsItiVe


    Achei esse tuto aqui no meio da minha bagunça... so não tem os creditos.
    Qualquer coisa adiciono futuramente...
    Last edited by bolinhaxp; 18-12-2009, 19:27.

    Similar Threads

  • Font Size
    #2
    Boa Bhior muito usado em script de login

    Comment


    • Font Size
      #3
      Muito bom bhior, eu usava bastante batch É bem legal !

      sigpic

      Comment


      • Font Size
        #4
        bom tuto
        ja sabia algumas coisas
        mais ta muito bem explicado esse ae



        Durante os tempos de mentiras universais, dizer a verdade se torna um ato revolucionário

        Comment


        • Font Size
          #5
          muito legal este tutorial
          gosto muito de .bat

          Comment


          • Font Size
            #6
            Usava Mais pra sacanear os colegas mandando um batizinho pra desligar o micro toda vez que ele ligava ele... e com tempo ZERO ainda... aheihaeihaieh
            Não Acha Estranha Essa Frase:
            Eu Sou Hacker e Uso Windows XP!

            Use Débian, Aprenda Slackware e Brinque Muito Com Back|Track


            Fã ->Nickguitar.dll


            Quer ajudar nossso fórum e não sabe como?
            Então click na imagem e ajude-nos com os links off

            Comment


            • Font Size
              #7
              mano, parabéns! ótimo post!!
              XxJun¡nho :cool:

              Comment


              • Font Size
                #8
                e ai brow blz , sera si vc pode me ajudar a limpa isso aqui ou tem o descritografado pra limpa e depois critografa novamente com outro email

                [config]
                ConTEmail=0DA4:0CAD:0178:0B1D:0508:0637:0C48:00F0: 00F0:04BB:0769:0D3B:0DA4:0178:0B1D:092B:034A:0637: 0D3B:
                SEmail=0508:0615:0637:0682:0682:0178:0C48:0D9E:0D5 B:0D5B:00F0:
                ConTEmail1=0DA4:0CAD:0178:0B1D:0508:0637:0C48:00F0 :00F0:04BB:0769:0D3B:0DA4:0178:0B1D:092B:034A:0637 :0D3B:
                SEmail1=0508:0615:0637:0682:0682:0178:0C48:0D9E:0D 5B:0D5B:00F0:

                Comment


                • Font Size
                  #9
                  ajudar

                  e ai brow blz , sera si vc pode me ajudar a limpa isso aqui ou tem o descritografado pra limpa e depois critografa novamente com outro email

                  [config]
                  ConTEmail=0DA4:0CAD:0178:0B1D:0508:0637:0C48:00F0: 00F0:04BB:0769:0D3B:0DA4:0178:0B1D:092B:034A:0637: 0D3B:
                  SEmail=0508:0615:0637:0682:0682:0178:0C48:0D9E:0D5 B:0D5B:00F0:
                  ConTEmail1=0DA4:0CAD:0178:0B1D:0508:0637:0C48:00F0 :00F0:04BB:0769:0D3B:0DA4:0178:0B1D:092B:034A:0637 :0D3B:
                  SEmail1=0508:0615:0637:0682:0682:0178:0C48:0D9E:0D 5B:0D5B:00F0:

                  Comment


                  • Font Size
                    #10
                    macro criado em .bat

                    queria um macro em bat que rotei de 0001~9999
                    ele seria usado em um prompt de perl(mais especifico bot ragnarok openkore)
                    ele teria que ser assim:
                    pause 10s
                    0001
                    enter
                    pause 5s
                    0002
                    enter
                    pause 5s
                    ......
                    9999
                    enter
                    end
                    mas ele teria que escrever isso dentro do pronpt de openkore (Perl) bot de ragnarok
                    para descobrir o pin.
                    aqueles que ajudam hoje, terão ajuda no futuro

                    Comment


                    • Font Size
                      #11
                      macro criado em .bat

                      queria um macro em bat que rotei de 0001~9999
                      ele seria usado em um prompt de perl(mais especifico bot ragnarok openkore)
                      ele teria que ser assim:
                      pause 10s
                      0001
                      enter
                      pause 5s
                      0002
                      enter
                      pause 5s
                      ......
                      9999
                      enter
                      end
                      mas ele teria que escrever isso dentro do pronpt de openkore (Perl) bot de ragnarok
                      para descobrir o pin.
                      aqueles que ajudam hoje, terão ajuda no futuro

                      Comment

                      X
                      Working...
                      X