[Tutorial] Batch Script

Iniciado por whit3_sh4rk, 16 de Março , 2006, 03:27:14 PM

tópico anterior - próximo tópico

0 Membros e 1 Visitante estão vendo este tópico.

whit3_sh4rk

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:
Citar@echo off
echo Olá mundo!
echo.
echo :D

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:
Citar@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:
Citar@echo off
GOTO UIA
echo Deveria aparecer isso se não fosse o rótulo :P
Obs: REM é usado para comentar uma linha...

Citar@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
  • (
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... ::) )

Dê um: edit msg.bat
Vamos lá:
Citar@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 :D

Well.. Acho que é isso.. estou escrevendo em 1ª mão aqui pro Darkers e em breve estará no meu sitezin.

Espero que gostem.. Gostando ou não, COMENTEM!!!!!

Fontes de pesquisa:
Google
GamingBrasil (Anjo do Inferno)
IML's
Microsoft.com/brasil
Prompt de comando(cmd.exe)
Meu cérebro

EDIT: Baixe: XPing e MSG

[]s

Shady

Muito bom ws, ponto positivo.

 So informando: a partir do Windows XP, o arquivo Autoexec.bat e inutil. Ele nao e executado, e seu uso nao e declarado, ele e ate mesmo vazio. Minha opiniao e que a Microsoft deixou o arquivo la para despistar hackers que tentassem explorar o windows XP.

 O que funciona no XP sao os arquivos AUTOEXEC.NT e BOOT.NT (C:\WINDOWS\system32)

 ;)


Mundus Vult Decipi

Ðark$pawn

:o !!!

Super cara... Muito bom mesmo...

Parabéns whit3!!! Boa Shady, esse post realmente mereceu 1 ponto positivo!!!