comandos do dos

52
Tutorial Batch (Todos os niveis) Olá galera! Ha uma semana estava fazendo este tópico e finalmente chegou a hora de postar! Tutorial de programação em Batch (todos os níveis) Conteúdo 1. Introdução 2. Variáveis 2.1. Recortar uma Variável 3. Looping 4. Comando IF 5. Comandos básicos 6. Shutdown 7. Call 8. Parâmetros 9. Shift 10. Attrib 11. Re-direcionadores 12. Manejo do Registro (Cuidado usando mal o regedit pode provocar até o colapso do sistema) 12.1. Adicionar chave ao registro 12.2. Apagar chave do registro 12.3. Consultar chave do registro 12.4. Exportar arquivo .reg de uma chave 12.5. Importar um arquivo .reg ao registro 12.6. Comparar duas chaves do registro 13. errorlevel 14.AT 15.SUBST 16.ASSOC 17.CACLS 18.Setlocal e Endlocal 19. FOR 20. Comprimir e Descomprimir arquivos se tivermos o Winrar instalado 20.1. Para comprimir arquivos 20.2. Para descomprimir arquivos 21.modificar tamanho do console 21. modificar tamanho do console 22. Ativar ou desativar o firewall do Windows 23. Tabelas 24. Comandos de rede 25. Fazer com que o bat espere um tempo

Upload: harrisonscribd

Post on 01-Dec-2015

76 views

Category:

Documents


15 download

TRANSCRIPT

Page 1: Comandos Do DOS

Tutorial Batch (Todos os niveis)

Olá galera! Ha uma semana estava fazendo este tópico e finalmente chegou a hora de postar!

Tutorial de programação em Batch (todos os níveis)

Conteúdo

1. Introdução2. Variáveis

2.1. Recortar uma Variável3. Looping

4. Comando IF5. Comandos básicos

6. Shutdown7. Call

8. Parâmetros9. Shift

10. Attrib11. Re-direcionadores

12. Manejo do Registro (Cuidado usando mal o regedit pode provocar até o colapso do sistema)

12.1. Adicionar chave ao registro12.2. Apagar chave do registro

12.3. Consultar chave do registro12.4. Exportar arquivo .reg de uma chave12.5. Importar um arquivo .reg ao registro12.6. Comparar duas chaves do registro

13. errorlevel14.AT

15.SUBST16.ASSOC17.CACLS

18.Setlocal e Endlocal19. FOR

20. Comprimir e Descomprimir arquivos se tivermos o Winrar instalado20.1. Para comprimir arquivos

20.2. Para descomprimir arquivos21.modificar tamanho do console21. modificar tamanho do console

22. Ativar ou desativar o firewall do Windows23. Tabelas

24. Comandos de rede25. Fazer com que o bat espere um tempo

1. IntroduçãoBatch é uma linguagem scripting, e para sua utilização utilizamos o console do

Sistema do Windows (DOS).As linguagens do tipo scripting, utilizamos para escrevermos script 

Scripts são utilizados para automatizar tarefas.Para iniciarmos no mundo batch somente necessitaremos um programa o bloco de Notas, ou qualquer outro que edite arquivos de texto, (por favor, não usar o Word,

Page 2: Comandos Do DOS

nem similares) um muito bom também é o nãotepad++ ou editpad que é o mesmo que uso.

Antes de iniciarmos a criação dos nossos scripts vamos aprender a utilizar o console, este vai ser o que interpretará os códigos que digitaremos. 

Para abrir o console vamos ao Menu iniciar>executar (ou use a tecla do logotipo do Windows + r), ali escreveremos cmd.exe e depois Enter.

Foi aberta uma janela negra, com um sublinhado piscando este é o cursor, a direita do cursor temos o Prompt:

C:\Documents and Settings\Administrator>_

O Prompt nos mostra onde estamos localizados virtualmente, o que vemos é um caminho e um >, o > nos diz que terminou o caminho e começa a ordem que nós

escreveremos. O caminho esta composto por [unidade]:\diretório\... 

Os dois pontos dizem que o anterior é a unidade de disco, no meu caso C e o que segue são os diretórios delimitados por uma barra invertida “\” não confunda com /.

As ordens que ingressarmos ao console, estarão compostos do seguinte maneira[Comando] [Parâmetros]

Agora vamos fazer que abaixo do Prompt seja escrita uma linha que diga “Web Cheats”, para fazer isso escreveremos:

echo Web Cheats

Neste caso “echo” é o comando e “Web Cheats” são os parâmetros (seriam dois parâmetros, os parâmetros são delimitados por espaço, um espaço indica onde

termina um parâmetro e começa outro)O comando Echo mostra um texto e também oculta a visualização do Prompt.

Para ocultar o Prompt escreveremos echo off , para visualizar echo on.Para deixar uma região em branco escreveremos “echo.” (sem aspas)

Para obter a ajuda de um comando, escreveremosComando /?

Há dois tipos de comandos os internos e os externos, os internos são todos os comandos que vêm integrados com o console e os externos são arquivos que

funcionam como comandos.Para obter a lista dos comandos internos, escreveremos o comando “Help”.

Agora com toda esta teoria, começamos a criar nossos scripts.Vamos ao bloco de Notas, e escreveremos o seguinte:

echo Web Cheatspause

E salvamos como *. bat, onde está * vai ser o nome do arquivo que queremos [assim é que se salva um script batch]. 

Depois buscamos o arquivo.bat e lhe damos duplo click. E foi aberto o console dizendo “Web Cheats”, e abaixo “pressione uma tecla para

continuar.”, ao pressionarmos uma tecla termina a janela.O comando Pause serve para inserirmos uma pausa, e não deixar que continue o

script, se não estivesse o script se fecharia, pois não existiriam mais ordens abaixo o script finaliza. Esta foi uma demonstração de um script. Agora voltemos ao

console.

Page 3: Comandos Do DOS

Para mover-nos entre os diretórios usaremos o comando cdEx.:

Ir a uma pasta anterior usa-se: cd..Ir ao disco raiz usamos: cd\

Ir a uma pasta dentro do que estamos usamos: cd pastaIr a um caminho especifico usamos: cd “Disco:\diretório\Subdiretórios”

Para listar diretórios usamos o comando dir, para ver os parâmetros escrevemos no console dir/? E nos Dara a ajuda deste comando.

Por exemplo, para ver os arquivos que temos no desktop primeiro vamos ao desktop

Usamos cd desktop e depois escrevemos dir /a

2. VariáveisPara ver todas as Variáveis usamos o comando set

Se escrevermos set e depois Enter veremos todas as Variáveis.Estas são as Variáveis mais usadas:

%ALLUSERSPROFILE% C:\Documents and Settings\All Users(caminho da pasta com a configuração para todos os usuários)

%APPDATA% C:\Documents and Settings\ {usuário} \Dados de aplicativos(caminho da pasta com Dados de aplicativos)%COMPUTERNAME% nome do equipamento

(nome do equipamento)%COMSPEC% C:\Windows\System32\cmd.exe

(caminho do interpretador de comandos)%HOMEDRIVE% unidade onde estão os dados do usuário (C:)

(unidade onde se encontram os dados de usuário) %HOMEPATH% \Documents and Settings\{usuário}

(caminho a pasta do usuário atual)%USERPROFILE% C:\Documents and Settings\{usuário}

(Incluindo unidade)%PATH% C:\Windows\System32\;C:\Windows\

(caminhos onde se buscam executáveis) %PATHEXT%%%%. COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS ; .WSF; .WSH;

(extensões de arquivo executáveis)%PROGRAMFILES% C:\arquivos de programa

(caminho da pasta arquivos de programa)%PROMPT% $P$G

(Formato do interpretador de comandos)%SYSTEMDRIVE% C:

(unidade onde está instalado Windows)%SYSTEMROOT% e %WINDIR% C:\Windows

(contem a pasta do Windows)%TEMP% e %TMP% C:\DOCUME~1\{usuário}\LOCALS~1\Temp

(caminho da pasta Temp)%USERNAME% Ex. Computer

(nome de usuário atual)%DATE% 19/11/2010

(data atual)%TIME% 00:00:00,00

(Hora atual)

Page 4: Comandos Do DOS

%CD% C:\(pasta atual com seu caminho completo)

%errorlevel% 0 ou 1(Código de saída do comando anterior)

%RANDOM% 32767(Número aleatório de 0 a 32767)

As Variáveis nos servem para indicar um valor que pode ser um numero um caminho ou o que queremos, onde escrevemos a variável estamos escrevendo na

realidade o valor da Variável. A variável se escreve com %% exemplo para indicar a variável homepath

escreveremos %homepath%.Por exemplo, podemos listar o conteúdo do desktop sem estar nele, usando:Dir /a "%homedrive%%homepath%\desktop", por precaução sempre que nos

referimos a um caminho usaremos aspas duplas "".Para definir uma variável fazemos

Set Vari_ável=valorVari_ável é o nome da nossa variável e em valor o que queremos que seja a

VariávelNo bat para que na variável o usuário defina o valor fazemos:

Set /p Variável=

Não há valor porque o valor ou usuário é quem define Para definir Variáveis com resultados de somas subtrações multiplicações divisões

Usamos o /a depois de set Ex.:

Set /a Variável=numero+numeroSet /a Variável=numero-numero

Também se uma variável é um valor numérico podemos trabalhar com ela, por exemplo,

Set /a Variável=%random%*%random%

Na linguagem Batch não temos suporte para restos, se fazemos 3/2 não nos Dara 1.5 e sim 1 (arredonda para abaixo)

Para mais informação sobre Variáveis set?

2.1. Recortar uma VariávelPodemos tomar algo de uma variável, por exemplo:

Há uma variante chamada original e seu valor é abcdefghijkSe quisermos somente obter as letras fghi, temos que ver quantas letrasHá antes do f neste caso seriam 5 (abcde) e quantos caracteres ocupa

O que queremos ver neste caso seriam 4 (fghi).

%nomevariante:~numerosdecaracteresanteriores,numer osdecaracteresquequeremosver%

Page 5: Comandos Do DOS

No exemplo anterior seria 5,4 (nos mostraria somente fghi)

%original:~5,4%

Agora queremos mostrar a partir do c em diante

%original:~2%

Agora queremos mostrar os últimos 3 caracteres

%original:~-3%

Agora queremos mostrar tudo menos os últimos três caracteres

%original:~0,-3%

Para fazer o sinal estando no cmd, fazemos com alt+126

3. loopingUm loop ou ciclo de repetição, em programação, é uma seqüência que se realiza

repetidas vezes a algo dentro do código, até que a condição designada ao looping deixe de existir.

Vejamos como se usam os looping:Voltemos ao bloco de notas e escrevemos

@echo off:ini

Echo este é um loopingGoto :ini

E salvamos como já dissemos.Virão como apareceu várias vezes o “este é um looping” sendo que foi escrito uma

só vez, Este é o looping.

Ao escrever

:looping

Referimos-nos que ali é um ponto de partida e ao colocar onde quisermos Goto: looping o que fazemos é voltar ao ponto de partida, claro que algo assim no looping

não terminara nunca e teremos que fechar o console a mão.Analisemos:

@echo off:@ faz com que o comando atual não tenha eco, o eco dizemos que apareça o

Prompt, e o echo off desativa o eco, ou seja, nunca veremos o Prompt a menos que escrevemos echo on.

Page 6: Comandos Do DOS

4. Comando IFO comando IF diz que se algo ocorrer, em conseqüência faça algumas coisas ou se

algo não ocorrer que faça outras coisas.Vejamos:

IF valor==valor (echo Coincide) else (echo não coincide)

Isto nos diz que se valor é igual a valor escreva coincide caso contrario escreva não coincide.

Com isso podemos comparar Variáveis e valores Ex.:

IF %homedrive%==C: (echo Disco local C) else (echo o disco local é diferente de C)

Podemos comparar se uma variável é igual à outra podemos comparar se é maior, menor, maior ou igual menor ou igual, diferente.

EQU - igualNEQ - não igualLSS - menor que

LEQ - menor que ou igualGTR - maior que

GEQ - maior que ou igual

Ex.:

IF 4 gtr 5 (echo Calculo impossível) else (echo 4 não é maior que 5)

Ao invés de usar um comando na condição podemos usar vários:

IF 5 lss 7 (Echo 5 é menor que 7 Echo 7 é maior que 5 

Pause) else (Echo.

)

Exemplo código integrando IF e set:

@echo offEcho 2 mais quanto igual 5? [escreva somente o numero]

Set /p rta=Set /a soma=2+%rta%

IF %soma%==5 (echo correto)Pause

Exit

Page 7: Comandos Do DOS

Na condição podemos remover a parte do else (), se não queremos que passe nada que contradiga a condição.

Ao usar o IF, podemos indicar se a variável x esta definida ou não, e seguindo isso poder realizar diversas ações, vejamos alguns exemplos:

Para indicar se x esta definida que escreva correto caso contrario que escreva incorreto

IF defined x (echo correto) else (echo incorreto)

Para indicar se x não esta definida que escreva incorreto caso contrario que escreva correto

IF not defined x (echo incorreto) else (echo correto)

Podemos verificar a existência de um arquivo no diretório

IF exist "%windir%" (echo existe) else (echo não existe)

Podemos também verificar a inexistência de um arquivo no diretório

IF not exist "C:\musica. mp3" (echo não existe) else (echo existe)

Criaremos um menu com IF, set e Goto

@echo offEcho Menu

Echo.Echo 1. Escreva a palavra batch

Echo 2. O que é isso?Echo 3. Sair

Echo pressione o numero da opção e depois enterSet /p opc=

If %opc%==1 (goto:escreva)If %opc%==2 (goto:queisso)

If %opc%==3 (exit) :escreva

Echo BatchPause

Exit:queisso

Echo -esta- é uma palavraPause

Exit

Alguém já se perguntou para que serve exit, serve para terminar o console do cmd limpar as variáveis etc.

5.Comandos básicos

Page 8: Comandos Do DOS

Para explorar cada comando usamos o nome do comando seguido por /?

Cls - limpa a telaType “caminhoarquivo” – escreva na tela um arquivo

DO “caminhoarquivo” – limpa um arquivoCopy “caminhoorigem” “caminhofinal” – Copia um arquivoMove “caminhoorigem” “caminhofinal” – Copia um arquivoRen “caminhoorigem” “novonome” – renomear um arquivo

Title novo titulo – muda o titulo do consoleMd “caminho diretório” – cria uma pastaRd “caminho diretório” - limpa uma pasta

Tasklist – Lista os processos atuaisTaskkill /f /im “processo.extensão” – termina um processo

Taskkill /pid “numerodepid” – termina um processo indicando o numero de pidFc “caminhoarquivo1” “caminhoarquivo2” – Compara dois arquivos

Find “cadeiadetexto” “caminhoarquivo” – Busca em um arquivo uma cadeia de textoFindstr “cadeiadetexto” “caminhoarquivo” – Busca uma cadeia em vários diretórios

Format – formata uma unidadeStart – Inicia uma aplicação

6.ShutdownCom o shutdown podemos apagar, reiniciar e anular um equipamento em uma

quantidade de segundosPara apagar o equipamento em 30 segundos: Shutdown –s –t 30

Para reiniciar: Shutdown –rPara anular: Shutdown –a

Para forçar o fechamento de aplicativos sem advertir usamos –fExemplo de reinicio forçando o fechamento de aplicativos, em 5 segundos com um

comentário

Shutdown –r –f –t 5 –c "comentário"

7.CallUsa-se para chamar um arquivo de lotes externo ou alguma parte do arquivo de

lotes atualEx.: Call “caminho do arquivo de lote”Para chamar a uma parte do arquivo

Ex.: Call :loopingPodemos Adicionar parâmetros colocando depois do que queremos chamar ex:

call:looping 123Aqui enviamos com o looping o parâmetro de valor 123.

8.ParâmetrosUm parâmetro é um tipo de variável que é recebida por uma função, procedimento

ou sub-rotina. Os parâmetros podem ser “de fabrica” ou podemos colocar nós mesmos.

Por exemplo:

Call "arquivo.bat" abcdef

Page 9: Comandos Do DOS

Neste exemplo ao abrir o arquivo se iniciara com um parâmetro com valor abcdef.O bat que abrirá pode comprovar se está sem parâmetro em sua execução e seguir

ou executar algo com o IF.Por exemplo:

Nas primeiras linhas de arquivo.bat escreveremos este fragmento de código:

Set var=%1IF %var%==abcdef (echo o parâmetro abcdef foi recebido corretamente)

O parâmetro %0 é o próprio bat, este está definido e predeterminado, ou seja, se o arquivo bat estiver no disco c, o parâmetro %0 será C:\arquivo.bat

Agora enviaremos a :ini um caminho como parâmetro

Call:ini "%homedrive%%homepath%\desktop\arquivo.bat"pause

:iniEcho %~f1 file

Echo %~p1 pathEcho %~n1 name

Echo %~x1 xtencionEcho %~s1 single

Echo %~a1 atributeEcho %~t1 timeEcho %~z1 zone

Goto:eof

O Goto:eof se usa para terminar a função

%~f1 - retorna o caminho e o arquivo de %1.%~d1 - retorna a letra da unidade de %1.

%~p1 - retorna somente o caminho do arquivo %1.%~n1 - retorna somente o nome de arquivo %1.

%~x1 - retorna somente a extensão do arquivo %1.%~s1 - retorna somente o caminho, com diretórios, com nomes curtos do arquivo %1.

%~a1 - retorna os atributos do arquivo.%~t1 - retorna a hora/data do arquivo %1%~z1 - retorna o tamanho do arquivo %1.

9.ShiftMuda a posição dos parâmetros.

Por exemplo se tivermos o parâmetros: a [%1], b [%2], c [%3], d [%4], e [%5], f [%6]

Shift /1

Os parâmetros mudam: b [%1], c [%2], d [%3], e [%4], f [%5]

Shift /2

Page 10: Comandos Do DOS

Os parâmetros mudam: a [%1], c [%2], d [%3], e [%4], f [%5]

Para entender melhor é como Apagar o parâmetro do modificador e reagrupar os números dos parâmetros Segundo sua ordem.

10.AttribMuda ou mostra os atributos do arquivo

Para mostrar usamos:Attrib “arquivo”

Para modificarmos adc + adicionamos atributos e com o - removemos.R Atributo de somente leitura do arquivo.A Atributo de arquivo de armazenamento.

S Atributo de arquivos do sistema.H Atributo de arquivo oculto.

Por exemplo, para ocultar um arquivo e dar lhe atributos de sistema fazemos:

Attrib +h +s "arquivo"

E para voltar velo fazemos:

Attrib -h "arquivo"

11.RedirecionadoresPara escrever um arquivo de texto que diga abc fazemos:

Echo abc > "caminhodoarquivotxt.txt"

Para Adicionar outra linha ao arquivo sem sobre escrever fazemos:

Echo def >> "caminhodoarquivotxt.txt"

Podemos também ocultar a saída de um comando com uma re-direçãoEx.: 

Ping –n 1 localhost>nul

O >nul se usa para ocultar o texto de saídaTambém podemos redirecionar a uma impressora com >prn

Para redirecionar a uma porta paralela PRN, LPT1, LPT2, LPT3, para redirecionar a uma porta serial COM1, COM2, COM3, etc.

12.Manejo do Registro (Cuidado ao usar esses comandos)Isso é útil se queremos Adicionar um programa ao iniciar do nosso sistema incluindo

o próprio bat, ou fazer mudanças sem necessidade de entrar no regedit.

12.1.Adicionar chave ao registro

Reg add "chave" /v "nome ou valor da entrada" /t "tipo de entrada" /d "dados da entrada"

Page 11: Comandos Do DOS

Os tipos de entradas são:

REG_SZ REG_MULTI_SZ

REG_DWORD_BIG_ENDIA N REG_DWORDREG_BINARY

REG_DWORD_LITTLE_EN DIANREG_NONE

REG_EXPAND_SZ ]

exemplo:

reg add "HKEY_LOCAL_*******\Software\Microsoft\Windows\Cur rentVersion\Run" /v "exemplo" /t reg_sz /d "C:\exemplo.bat"

12.2.Apagar chave do registro

Reg delete "chave" /v "nome da entrada" /f (executa sem pedir confirmação)

exemplo:

reg delete "HKEY_LOCAL_*******\Software\Microsoft\Windows\Cur rentVersion\Run" /v "exemplo" /f

Se quisermos sobrescrever uma entrada já existente, fazemos como se adicionássemos uma nova chave porem colocamos o parâmetro /f que não pede

confirmação.

12.3.Consultar chave do registro

Reg query "chave" /v "nome da entrada"

Podemos usar os modificadores [/ve] [/s]/ve Consultar o valor “de fabrica”/s Consulta sub chaves e valores 

Ex.:

reg query "HKEY_LOCAL_*******\Software\Microsoft\Windows\Cur rentVersion\Run"

Consultarmos a chave "HKEY_LOCAL_*******\Software\Microsoft\Windows\Cur rentVersion\Run"

12.4.Exportar arquivo .reg de uma chave

Reg export "chave" “arquivo pra onde se exportara o .reg”

Page 12: Comandos Do DOS

Ex.:

reg export "HKEY_LOCAL_*******\Software\Microsoft\Windows\Cur rentVersion\Run" "%homedrive%%homepath%\desktop\HKLMRun.reg"

No seu desktop será criado o arquivo HKLMRun.reg com os valores da chave "HKEY_LOCAL_*******\Software\Microsoft\Windows\Cur rentVersion\Run"

12.5.Importar um arquivo .reg ao registro

Reg import “arquivo.reg”

Ex.:

reg import “%homedrive%%homepath%\desktop\HKLMRun.reg”

Será importado o arquivo HKLMRun.reg do desktop ao registro.

12.6.Comparar duas chaves do registro

Reg compare "chave1" “chave2”

Podemos Adicionar os modificadores/v “nome da entrada” Para comparar uma entrada especifica

/ve Para comparar o valor “de fabrica”Ex.:

reg compare "HKEY_LOCAL_*******\Software\Microsoft\Windows\Cur rentVersion\Run" "HKEY_CURRENT_USER\Software\Microsoft\Windows\Curr entVersion\Run"

Compara os valores das chaves de HKLM com HKCU

13.errorlevelA variável errorlevel é muito útil para saber se algum comando não foi executado,

no caso de existir erros ao processar um comando, errorlevel será 1 se ocorrer tudo bem o errorlevel será 0, ao não encontrar o comando o errorlevel será 9009.

Ex.:

AbcdefEcho %errorlevel%

Pause

Aqui nos Dara um errorlevel de 9009 já que abcdef não é um comando, a menos que tenhamos um comando chamado abcdef.

Ex:

Page 13: Comandos Do DOS

Cd "C:\abcdef"Echo %errorlevel%

Errorlevel nos retornará 1 a menos que tenhamos uma pasta no c chamada abcdef, se tivermos o errorlevel será 0.

14.ATAt serve para criar tarefas programadas:

At hh:mm processo.exeAt hh:mm /Interactive processo.exe

Ao usar o /Interactive permite a interação com o usuário, se não se utilizar o /Interactive se executaria o processo porem em segundo plano.

Para Apagar uma tarefa programada fazemosAt “numerodatarefa” /delete

O numero da tarefa colocamos o numero identificador da tarefa, que nos da o cmd quando criamos a tarefa.

Tudo que for executado no at, sairá do usuário system e que nos dá uma escala em privilégios.

15.SUBSTAtribui uma letra a um caminho

Subst W: “%homedrive%%homepath%\desktop”Aqui criamos um disco W para acesso no caminho “%homedrive%%homepath%\

desktop”Para Apagar esta unidade virtual usamos

Subst W: /D16.ASSOC

Mostra ou modifica as associações de extensões de arquivos, para mostrar usa-se somente assoc para modificar usa-se Assoc .extensão=tipodearquivo

Ex.: assoc .txt=batfileAssim os arquivos bat serão vistos como arquivos de texto.

17.CACLSMostra ou modifica o acesso dos usuários sobre os diretórios ou arquivos.

Para denegar o acesso a um usuário neste caso nosso usuário atual

Cacls "diretórioarquivo" /e /d %username%

Para permitir o acesso a um usuário neste caso nosso usuário atual

Cacls "diretórioarquivo" /e /g %username%:f

Para denegar o acesso a todos os usuários

Cacls "diretórioarquivo" /e /d todos

Para permitir o acesso a todos os usuários

Cacls "diretórioarquivo" /e /g todos:f

Page 14: Comandos Do DOS

18.Setlocal e EndlocalSetlocal indica que estamos a ponto de realizar algumas mudanças nas Variáveis de

ambiente no script se deve manter-se no contexto atual, ao usar setlocal as Variáveis ficam como estão atualmente por mais que se modifique, depois do

setlocal nas Variáveis se usa endlocal, dai as Variáveis voltam como estavam antes.Ex.:

Set x=abcdefSetlocal

Set x=xsakxalEcho %x%Endlocal

Echo %x%Pause

A variável x será modificada estando dentro do setlocal, porem com endlocal ela volta ao normal.

Ao invés setlocal admite modificadoresENABLEEXTENSIONS / DISABLEEXTENSIONS

Habilita ou desabilita as extensões.Por exemplo

Setlocal ENABLEEXTENSIONSEcho errorlevel será definida se as extensões estiverem habilitadas

Echo %errorlevel%EndlocalPause

No exemplo errorlevel nos deu 0, porque echo não deu erro e estava definido porque foram habilitadas as extensões.

Outro exemplo

Setlocal DISABLEEXTENSIONSEcho errorlevel não será definido porque as extensões estão desabilitadas

Echo %errorlevel%EndlocalPause

Neste exemplo errorlevel não esta definido, porque as extensões estão desabilitadas.

Também suporta os modificadoresENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION

Este será explicado junto com for.

19.FORO for é um dos comandos, mais complexos e de maior uso.

Começamos: [Nota: estando no console usaremos %a porem estando em um bat usaremos %%a]

Page 15: Comandos Do DOS

For /l %%a in (1,1,8) do (echo repete esta 8 vezes)

Neste código observamos que com o modificador, /l indicamos que vai existir uma seqüência de números na parte "in ()", em "in" teremos numero inicial, o passo,

numero final no exemplo acima contará de 1 em 1 começando de 1 até 8, se tivesse sido 1,2,8 o "for" contaria de 2 em 2 começando de 1 até 8.

Para cada vez ou cada numero que contar será executado o código que esta no "do" por isso no exemplo se repete 8 vezes a frase.

Ao contrario a variável %%a terá o valor do numero que estamos contando.Ex.

For /l %%a in (1,1,10) do (echo %%a)

Aqui contara até 10 e retornará os números do 1 aos 10.O %%a pode substituído por %%b ou %%ocaracterquequizermos

For /f %%a in ('type arquivo.txt') do (echo %%a)

Quando usamos o modificador /f indicamos que devolva o comando de dentro do "in", e este será aplicado no "do". 

O comando de dentro do "in" se delimita com aspas simples ' '.Ao escrever as linhas o "do" escrevera na tela o arquivo arquivo.txt dividido por

linhas. Pois o type receberá a linha e o echo a escrevera.

Com o modificador /f podemos usar:Delims especifica um grupo de delimitadores

Skip pula a quantidade de linhas que indicarmosTokens o texto extraído mostra as colunas que indicarmos

Vejamos exemplos:

For /f "Delims=" ('type arquivo.txt') do (echo %%a)

Aqui escrevera o arquivo.txt por linhas, a diferença do código anterior é que teríamos erros nas linhas do arquivo pois iriam ser cortadas.

For /f "Skip=3" ('type arquivo.txt') do (echo %%a)

Pula as primeiras 3 linhas do arquivo

For /f "Tokens=2,4" ('Tasklist') do (echo %%a)

O Tasklist nos escrevera as colunas 2 e 4, ou seja o pid e o uso de memória

For %%a in (a b c) do (echo %%a)

Aqui nos escrevera as letras a b c, isso significa que passará pelo "do" com a letra a na variável %%a depois passará de volta ao "do" porem Agora a variável %%a

valerá b e depois quando passe novamente pelo "do" %%a será c.

Page 16: Comandos Do DOS

No for não podemos salvar uma variável que muda, por isso no inicio do arquivo escreveremos setlocal enabledelayedextension. 

Isto habilitara a expansion de Variáveis retardada. Desta maneira podemos salvar Variáveis no for, não da forma %Variável% e sim !

Variável!Ex.:

Set n=0For /f "Skip=4 Tokens=1" %%a in ('type arquivo.txt') do (set /a n=!n!+1)

Para saber quantas vezes passaram pelo "do" as linhas do arquivo ficará armazenadas na variável n o numero de linhas do arquivo.txt

Se quisermos colocar um for dentro de outro, não devemos usar as mesmas Variáveis do tipo %%x. Um exemplo correto de for dentro de for seria:

For /l %%a in (1,1,5) do (For /l %%b in (1,1,8) do (Echo %%a-%%b))

20.Comprimir e Descomprimir arquivos se tivermos o Winrar instalado

20.1.Para comprimir arquivos

Start winrar.exe a "\caminho1\caminhox\arquivo.rar" "\caminho1\caminhox\arquivo.txt"

A se usa para indicar que vamos comprimir-ibck se usa para indicar que a ação vai ser executada em modo background

-p(seguido do texto, sem parêntesis) se usa para colocar-se senha no rar-ep1 se usa para excluir todos os diretórios que contem nesse arquivo

-df se usa para eliminar os arquivos depois da compressãoEx:

Start Winrar.exe a -ep1 "\Documents and Settings\Administrador\desktop\arquivoscomprimido. rar" "\Documents and Settings\Administrador\desktop\arquivoqueseracompr imido.*"

start winrar.exe a -ep1 "\Documents and Settings\Administrador\desktop\Boss.rar" "\Documents and Settings\Administrador\desktop\Oi.txt" -ibck 

start winrar.exe a -ep1 -pcasa -df "\Documents and Settings\Administrador\desktop\Boss.rar" "\Documents and Settings\Administrador\desktop\Oi.txt"

-ibck (Neste ultimo exemplo a senha seria a palavra casa e serão eliminados os arquivos depois da compressão)

20.2.Para descomprimir arquivosStart winrar.exe x "\caminho1\caminhox\arquivo.rar" "\caminho1\caminhox"

x se usa para indicar que vamos descomprimirEx:

Start Winrar.exe x "\Documents and Settings\Administrador\desktop\arquivoscomprimido. rar""\Documents and Settings\Administrador\desktop"

start winrar.exe x "\Documents and Settings\Administrador\desktop\Boss.rar""\Documents and Settings\Administrador\desktop" -ibck

Page 17: Comandos Do DOS

start winrar.exe x -pcasa "\Documents and Settings\Administrador\desktop\Boss.rar""\Documents and Settings\Administrador\desktop" -ibck

(Neste ultimo exemplo descomprimiria usando a senha casa)

[todos os comandos do Winrar estão na pasta do programa, no arquivo rar.txt]

21.modificar tamanho do consolePodemos modificar o tamanho do console desta maneira:

MODE CON: COLS="quantidadecolunas" LINES="quantidadelinhas"

Em quantidade de colunas, colocamos a quantidade de colunas (sem aspas) e em quantidade de linhas colocamos a quantidade de linhas (sem aspas)

Ex.: 

Mode con: cols=50 lines=25

Ps.: o tamanho de uma célula é de 12 x 8 pixels, um quadrado seria por exemplo: 

mode con: cols=48 lines=32

22.Ativar ou desativar firewall do WindowsPara Ativar

netsh firewall set opmode enable

Para desativar

netsh firewall set opmode disable

Netsh nos oferece varias opções para configuração de uma rede. Para mais informação netsh/?

23.TabelasModelos de Tabelas:

Modelo 1

“Echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»Echo º ºEcho º º

Echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

Modelo 2

Page 18: Comandos Do DOS

Echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»Echo º º

Echo ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹Echo º º

Echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

Modelo 3

Echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±Echo ±± ±±

Echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±Echo ±± ±±Echo ±± ±±Echo ±± ±±

Echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±

Modelo 4

Echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»Echo º º º

echo ºÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͺecho º º º

echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

24.Comandos de RedeFTP

Iniciar o cliente FTPIPCONFIG parâmetros

Mostrar as características de configuração de IP/all -> mostra toda a informação de configuração

/release adaptador -> libera o ip do adaptador especificado/renew adaptador -> renova o ip para o adaptador especificado

/flushdns -> purga o cachê de resolução de dns/registerdns -> atualiza as conexões dhcp e volta a registrar os nomes dns

/displaydns -> mostra o conteúdo do cachê de resolução dnsNetstat

Comando para verificar o estado atual da redeNetstat -a Mostrar todos os pontos e conexõesNetstat -n Mostrar número de porta e caminhos

Netstat -r Mostrar a tabela de caminhosNetstat -s Mostrar estatísticas por protocolo

Netstat -p tcp/udp Mostrar as conexões ativas TCP ou UDPNslookup

Utilizado para interpretar o dnsPing

Enviar pacotes icmp a um determinado destino.ping -t ping ao host até que se pare

ping -a resolver caminhos em nomes de hostping -n numero Número de partições a enviar

ping -l tamanho tamanho do bufferTelnet

Page 19: Comandos Do DOS

Inicia uma sessão Telnet ao host especificado na porta especificada. se a porta for omitida se usa a 23 por default.

TracertTraçar o destino até chegar ao caminho indicado.

25.fazer com que o bat espere um tempoPodemos fazer de varias formas:

Podemos fazer um ping a localhost e no numero de partições a enviar colocamos os segundos de espera.

Ex:

Ping -n 1 localhost>nul

Espera um segundo e “oculta” o texto que aparece ao executar ping com o ">nul".

Ping -n 5 127.0.0.1>nul

Espera 5 segundos e “oculta” o texto que aparece ao executar ping com o ">nul".Podemos colocar 127.0.0.1 ou localhost que é o mesmo. 

Localhost é nosso PC, se estivermos sem conexão funciona melhor que 127.0.0.1.Podemos criar um comando que executa ou espera. 

ex:

@echo offsetlocal

If x%1x==xx (Goto: ajuda)set tempo=%1

call:verif >nul 2>&1goto:veriff

:verifset /a ver=0x%tempo%

goto:eof:veriff

If %errorlevel% neq 0 (Goto: ajuda)call: code %tempo% >nul 2>&1

endlocalgoto:eof

:codeset /a tempoterm=%time:~0,2%*3600+%time:~3,2%*60+%time:~6 ,2%+%tempo%

set /a hs=%tempoterm%/86399set d=%date:~0,2%

:iniset /a tempoact=%time:~0,2%*3600+%time:~3,2%*60+%time:~6, 2%

if %d% neq %date:~0,2% (set /a tempoterm=%hs%*-86399+%tempoterm%

set d=%date:~0,2%if %hs% leq 0 (set /a hs-=1))

if %tempoterm% geq %tempoact% (goto :ini)goto:eof

Page 20: Comandos Do DOS

:ajudaecho %~nx0 Insere uma pausa de n segundos

echo Criado por Carlosecho.

echo Sintaxe:echo %~nx0 Segundos

echo.echo Ex.: %~nx0 777

goto:eof

Salvem como espera.bat em “C:\Windows\System32”Para utilizar é muito simples, colocamos no nosso código:

Espera "quantidadedesegundos"

---------------------------------------------------------------------------

Bem galera! Isso é só!

----------------Comandos do DOS Essa parte contém vários comandos que podem ser utilizados não só em BADCOMS mas em batches inofensivos. Para maiores informações sobre os comandos do DOS escreva HELP no prompt ou se quiser saber mais sobre um determinado comando escreva o comando e adicione a opção /?.  Exemplos: C:\ echo /? C:\ format /?  C:\ for /?  

Comandos do DOS            2.1)   ECHO             2.2)   DEL/ERASE            2.3)   DELTREE             2.4)   FORMAT  

Page 21: Comandos Do DOS

          2.5)   FOR             2.6)   IF            2.7)   SET/VARIÁVEIS NO DOS            2.8)   GOTO             2.9)   VER             2.10)   VOL             2.11)   CLS            2.12)   ATTRIB             2.13)   CALL             2.14)   CHOICE E   ERRORLEVELS            2.15)   COPY            2.16)   CTTY             2.17)   DIR            2.18)   TYPE            2.19)   MORE             2.20)   MD/MKDIR/CD/CHDIR/RD/RMDIR             2.21)   LABEL             2.22)   FIND             2.23)   PAUSE             2.24)   REN/RENAME            2.25)   SUBST             2.26)   TIME             2.27)   REM            2.28)   DOSKEY            2.29)   XCOPY     2.1) ECHO         Sintaxe: ECHO [string]         Exemplo: C> echo Fuck You                     Fuck You 

Page 22: Comandos Do DOS
Page 23: Comandos Do DOS

         O comando ECHO, de forma geral, exibe uma string  na tela.  Caso       essa  string  seja OFF, desativar   a  exibi‡Æo  dos  comandos  na       tela. Se for ON, ativar  a mesma.          Exemplo de arquivo:           [echo1.bat]          echo on          echo ECHO est  ativado          echo off          echo ECHO est  desativado          Quando vocˆ rodar esse programa, ver  o seguinte:          C> echo on          C> echo ECHO est  ativado             ECHO est  ativado          C> echo off             ECHO est  desativado          Colocar uma @ antes do primeiro comando de cada linha,  equivale       ao ECHO OFF, mas apenas nessa  linha.  Para  que o programa  fique       melhor, aconselha-se colocar o comando @ECHO OFF na PRIMEIRA linha       do  programa,  assim  vocˆ nÆo precisa colocar uma @ antes de cada       linha.      2.2) DEL/ERASE         Sintaxe: DEL [nome_do_arquivo]                  ERASE [nome_do_arquivo]         Exemplos: C> del autoexec.bat                   C> erase autoexec.bat          Esse  comando nÆo precisa de muita explica‡Æo. Apenas  exclui  o       arquivo especificado. WildCards podem ser usadas (* e ?).       2.3) DELTREE         Sintaxe: DELTREE (/Y) [nome_do_arquivo]         Exemplos: C> deltree c:\windows                   C> deltree /y c:\games          Tamb‚m  nÆo tem muito segredo. Exclui um diret¢rio  e  tudo  que       tiver dentro  dele. A  op‡Æo /Y  detona tudo sem pedir confirma‡Æo       mas  deve  ser  usado  logo  ap¢s  o  comando  DELTREE.  Isso  NÇO       funcionaria:           C> deltree c:\windows /y   

Page 24: Comandos Do DOS

    2.4) FORMAT         Sintaxe: FORMAT (/Q) (/U) (/V:label) [unidade_a_ser_detonada]         Exemplos: C> format /q a:                    C> format /u c:          O  comando mais divertido que pode ser usado em BADCOMS. Fode  o       drive especificado literalmente. A op‡Æo /Q realiza uma formata‡Æo       r pida e /U realiza uma formata‡Æo incondicional. A op‡Æo /V:label 

Page 25: Comandos Do DOS
Page 26: Comandos Do DOS

      espeficifica o nome do volume da unidade, nÆo tem muito segredo...       Mas se o drive especificado  for  um  HD  aparecer   uma  pergunta       est£pida,  que  o  cara  responde  NÇO  e  mant‚m  o  HD  a salvo.         Veja mais a frente como resolver isso.        2.5) FOR         Sintaxe: FOR %a in (arquivo1 arquivo2...) DO [comando] %a         Exemplo: C> for %a in (autoexec.bat config.sys) do del %a          Supunhetemos que vocˆ queira executar o mesmo comando pra v rios       arquivos. Ao inv‚s de escrever o mesmo comando  uma   porrada   de       vezes,  use  o comando FOR. Explicando detalhadamente:  o  comando       FOR define uma vari vel chamada %a (ou qualquer letra) e define  o       valor  dessa  vari vel  com  os  nomes que estÆo entre parˆnteses.       Feito isso, executa  um  comando  cujo  parƒmetro  principal  ‚  a       vari vel %a.          Outro exemplo:           C> for %a in (autoexec.bat config.sys command.com) do del %a          Far  o seguinte:           C> del autoexec.bat          C> del config.sys          C> del command.com          Simples, nÆo?       2.6) IF         Sintaxe: IF [condi‡Æo] [comando]         Exemplos: if exist c:\autoexec.bat del autoexec.bat                   if not exist c:\1.bat echo 1 j  foi deletado                   if "%1"=="fuckyou" echo Fuck You                   if not "%1"=="fuckyou" echo Don't Fuck You                   if errorlevel 1 goto 1          O  comando IF testa uma condicional e  se  ela  for  verdadeira,            executa  um  comando.  O  primeiro  exemplo  verifica  se existe o       arquivo  c:\autoexec.bat  e  se  existir,  deleta  ele.  O segundo       exemplo  testa  se  o  arquivo  c:\autoexec.bat NÇO existe. Se nÆo       existir,  exibe a mensagem "1 j  foi deletado". O terceiro exemplo       testa  se  a  vari vel  %1  ‚  igual  a "fuckyou". Se for, exibe a       mensagem  "Fuck You".  O  quarto  exemplo testa se a vari vel %1 ‚       DIFERENTE de "fuckyou". Se for, exibe a mensagem "Don't Fuck You".       O  £ltimo  exemplo testa se foi retornado um errorlevel igual a 1.       Veja sobre os errorlevels mais a frente. 

Page 27: Comandos Do DOS

      2.7) SET/VARIµVEIS NO DOS         Sintaxe: SET [vari vel] = [valor]         Exemplos: set variavel = qualquermerda                   set drive = C:\          O  comando SET define uma vari vel de ambiente  no DOS.  Isso  ‚ 

Page 28: Comandos Do DOS
Page 29: Comandos Do DOS

      muito £til na programa‡Æo de batches.  Acho  que  com  um  exemplo       fica melhor de explicar:           C> set scream=argh          Isso criar  uma vari vel chamada "scream" e definir  seu  valor       como "argh". Se vocˆ escrever no DOS:           C> echo %scream%          Ver  a palavra "argh" no lugar de "%scream%":           C> echo %scream%             argh          Ou  seja, sempre que vocˆ quiser  fazer  uma  referˆncia  a  uma       vari vel j  definida, usa-se %nome_da_vari vel%.  Como  unir  duas       vari veis em uma s¢: suponhamos que vocˆ tenha duas vari veis. Uma       chamada "bah1" com o valor "1234567" e outra chamada "bah2" com  o       valor "8910" se vocˆ quiser juntar as duas, ‚ s¢ fazer o seguinte:           C> set BAAAAHHH=%bah1% ; %bah2%          Neste  exemplo  est£pido  que eu dei nÆo  parece ser  uma  coisa       muito £til, mas nÆo se engane porque  ! Outro tipo de vari vel sÆo       as especificadas na linha de comando. Elas sÆo %1, %2, %3 at‚ %9.         Como  eu  disse  elas  sÆo especificadas na linha de comando, ou       seja quando vocˆ roda o batch. Exemplo:           [hd_fuck.bat]          @echo off          if "%1" == "" goto erro          echo Preparando pra fuder o drive %1!          format %1          goto fim           :erro          echo Seu imbecil, especifique o drive que vocˆ quer detonar!          goto fim           :fim          Rodando o arquivo dessa maneira...           C> hd_fuck C:          ...vocˆ ver  o seguinte:           Preparando pra fuder o drive C:!          AVISO, TODOS OS DADOS NO DISCO NÇO-REMOVÖVEL UNIDADE C: 

Page 30: Comandos Do DOS

         SERÇO PERDIDOS!          Continuar com o Format (S/N)?          Mas se nÆo especificar nenhum parƒmetro...           C> hd_fuck          ...resulta em: 

Page 31: Comandos Do DOS
Page 32: Comandos Do DOS

          Seu imbecil, especifique o drive que vocˆ quer detonar!          Como  vocˆ p"de perceber, 1%  nesse  exemplo  era  igual  a  C:.       Note que  foi  utilizado o comando IF para verificar se a vari vel       %1  era  existente.  Outra  coisa que nÆo pode passar despercebida       foi  o  uso  do  comando  GOTO que ser  explicado logo a seguir...         Mais um detalhe: o FORMAT  pediu  a  confirma‡Æo idiota antes de       detonar o HD... Em breve resolveremos isso... 8-)       2.8) GOTO         Sintaxe: GOTO [nome]         Exemplos: goto hora_de_fuder_o_hd                   goto erro          O comando GOTO s¢ pode ser usado  dentro  de  arquivos  batch  e       serve  para  direcionar  o  programa  para a linha especificada em       [nome].  Quando  o  DOS  encontra  essa  linha,  executa  todos os       comandos existentes a partir dela. O nome da linha ‚  especificado       com um :[nome]. Exemplo:           [goto.bat]          @echo off          goto fuckyou          echo Vocˆ vai se fuder...           :fuckyou          echo Se fudeu!          Muito simples. Logo no come‡o do programa DOS ‚ direcionado para       a linha chamada "fuckyou" e exibe a mensagem "Se fudeu!", ou seja,       a  segunda  linha,  "echo  Vocˆ  vai  se fuder..." nÆo ‚ executada       porque o DOS foi direcionado pra uma linha APàS esse comando.         LOOPS INFINITOS: muito f cil. Basta ver o exemplo abaixo:           [loop.bat]          @echo off          :loop          dir          goto loop          Isso roda o comando DIR infinitamente, at‚ o cara apertar CTRL+C       ou desligar o computador...        2.9) VER         Sintaxe: VER         Exemplo: BAH!  

Page 33: Comandos Do DOS

        Exibe qual a versÆo do DOS vocˆ est  usando.       Aparentemente ‚ um comando idiota e sem utilidade mas com um pouco       decriatividade ele se torna um  comando  MUITO  £til...  Vocˆ  vai       entender mais pra frente...       2.10) VOL         Sintaxe: VOL 

Page 34: Comandos Do DOS
Page 35: Comandos Do DOS

        Exemplo: BAH!          Mostra  o nome de volume da sua unidade... Semelhante ao comando       acima, muito £til pra quem ‚ criativo.       2.11) CLS         Sintaxe: CLS         Exemplo: BAH!          Apaga tudo que tem na tela.       2.12) ATTRIB         Sintaxe: ATTRIB (+A) (+R) (+H) (+S) [nome_do_arquivo]                  ATTRIB (-A) (-R) (-H) (-S) [nome_do_arquivo]         Exemplos: attrib +h c:\ruimdows                   attrib +s c:\config.sys                   attrib -r c:\command.com           Define um attributo pra um arquivo ou diret¢rio.   ¢bvio  que  o       sinal  de mais (+) indica que um atributo est  sendo definido e um       sinal de menos (-) indica que um atributo est  sendo removido.  Os       atributos sÆo:          A -> Atributo de Arquivo. Que diabos ‚  isso?  Supunhetemos  que              vocˆ queira copiar  todos  os  arquivos  que  estÆo  em  um              disquete para outro,  menos os de extensÆo .VIR. O que vocˆ              faz?                      C> attrib +a a:\*.*          C> attrib -a a:\*.vir               A¡ vocˆ usa o comando XCOPY:           C> xcopy a: b: /a               Meio esquisito, mas ‚ isso...          R -> Atributo de somente para leitura. O  arquivo nÆo  pode  ser              modificado  ou  deletado  a  nÆo  ser  que  o atributo seja              removido.          H -> Atributo de arquivo oculto. S¢ um burro  pra  nÆo  perceber              que isso esconde o arquivo.          S -> Atributo de arquivo de sistema. Acho que, na pr tica,  ‚  a              mesma coisa que o atributo H.  

Page 36: Comandos Do DOS

     2.13) CALL         Sintaxe: CALL [nome_do_arquivo_batch]         Exemplo: call virus.bat          Comando usando DENTRO de  arquivos batch que serve  para  chamar       OUTROS arquivos batch, ou seja, roda  outro arquivo batch mas  sem       parar de rodar o primeiro. Exemplo: 

Page 37: Comandos Do DOS
Page 38: Comandos Do DOS

          [1.bat]          @echo off          echo Esse ‚ o arquivo batch 1...          call 2.bat          echo De volta pro batch 1...           [2.bat]          @echo off          echo Esse ‚ o arquivo batch 2...          Resulta em:          C> 1          Esse ‚ o arquivo batch 1...          Esse ‚ o arquivo batch 2...          De volta pro batch 1...       2.14) CHOICE & ERRORLEVELS         Sintaxe: CHOICE /C:[teclas] [texto]         Exemplo: choice /c:123 Escolha uma op‡Æo:          Esse comando exibe uma mensagem, espera que  o  usu rio  escolha       uma das teclas especificadas e retorna  um  valor  de  errorlevel,       de acordo com a tecla.                                     [fuck.bat]          @echo off          choice /c:123 Escolha uma op‡Æo:          if errorlevel 3 goto opcao3          if errorlevel 2 goto opcao2          if errorlevel 1 goto opcao1           :opcao1          echo Op‡Æo 1 escolhida          goto fim           :opcao2          echo Op‡Æo 2 escolhida          goto fim           :opcao3          echo Op‡Æo 3 escolhida          goto fim           :fim          Rodando isso, vai acontecer o seguinte:           C> fuck 

Page 39: Comandos Do DOS

         Escolha uma op‡Æo:[1,2,3]?          Se vocˆ escolher a op‡Æo 1:           C> fuck          Escolha uma op‡Æo:[1,2,3]?1          Op‡Æo 1 escolhida  

Page 40: Comandos Do DOS
Page 41: Comandos Do DOS

        Se escolher a 2:           C> fuck          Escolha uma op‡Æo:[1,2,3]?2          Op‡Æo 2 escolhida          E por £ltimo:           C> fuck          Escolha uma op‡Æo:[1,2,3]?3          Op‡Æo 3 escolhida          Ou seja, o comando CHOICE ‚ muito ‚til para a cria‡Æo de  menus,       etc.          Mas o que diabos  sÆo os  ERRORLEVELS?  SÆo  valores  retornados       pelos comandos do DOS, de  acordo  com  o  que  causou  o  fim  do       programa.       Geralmente, quando um comando/programa pra DOS termina normalmente,       sem nenhum erro, retorna um ERRORLEVEL igual a 0. Os outros valores       variam de acordo com os comandos. Veja  uma  lista  de  ERRORLEVELS       mais adiante.         Os  errorlevels s¢ podem ser usados com o comando IF. Usando esse       recurso,  vocˆ  tornar   seus  batches melhores pois o mesmo poder        tomar decisäes de acordo com o valor de errorlevel.         Note  que,  quando  vocˆ usa o comando CHOICE, o  comando IF deve       testar os valores de errorlevel do maior para o menor.         Veja um exemplo:           [errorlev.bat]          @echo off          del autoexec.bat          if errorlevel 0 echo NÇO OCORREU NENHUM PROBLEMA          Isso far  o seguinte:           C> errorlev          NÇO OCORREU NENHUM PROBLEMA          L¢gico que essa mensagem s¢ ser  exibida se nenhum erro ocorrer.       Explicando  melhor:  se  nÆo  ocorrer  nenhum  problema na hora de       deletar  o  arquivo,  o DEL retornar  um errorlevel 0. Vocˆ tamb‚m       pode fazer assim:            [errorsuck.bat]          @echo off          del c:\config.sys          if not errorlevel 0 goto OPS          echo NÆo ocorreu nenhum problema.          goto fim 

Page 42: Comandos Do DOS

          :OPS          echo Alguma coisa errada ocorreu.          goto fim           :fim         Esse exemplo ‚ melhor, pois testa se o comando DEL  NÇO  retornou 

Page 43: Comandos Do DOS
Page 44: Comandos Do DOS

     um errorlevel 0. Como o errorlevel 0  significa que nada de  errado      ocorreu,  um  errorlevel  diferente de 0 significa que algo anormal      aconteceu.        Se ocorrer algo anormal ele exibe a mensagem "Alguma coisa errada      ocorreu" mas se tudo der certo exibe "NÆo ocorreu nenhum problema".                        2.15) COPY         Sintaxe: COPY [origem] [destino]         Exemplos: copy *.* c:\ruimdows                   copy c:\win95\*.* c:\autoexec.bat          Copia os arquivos especificados para um diret¢rio ou para  outro       arquivo.       2.16) CTTY         Sintaxe: CTTY [novo_dispositivo_de_entrada]         Exemplo: ctty nul          Este comando altera o dispositivo de entrada  de dados do padrÆo       (teclado) para outro que vocˆ especificar.       Mais tarde vocˆ entender  melhor isso...       2.17) DIR         Sintaxe: DIR [/S] [/P] [/W] [nome_do_arquivo]         Exemplos: dir /s                   dir autoexec.bat          Este comando nÆo tem  muito segredo. Se vocˆ nÆo souber  usar  o       comando DIR, escreva no prompt do DOS:          C> echo s | format c:       2.18) TYPE         Sintaxe: TYPE [nome_de_arquivo]         Exemplo: type msdos.sys          NÆo tem complica‡Æo. Exibe o conte£do  de um arquivo (sem  fazer       pausa entre as p ginas). Pode ser usado  em conjunto com o comando       MORE.       2.19) MORE         Sintaxe: MORE [nome_do_arquivo]                  TYPE [nome_do_arquivo] | MORE (depende da versÆo do DOS)         Exemplo: more sucks.txt                  type badcom.faq | more 

Page 45: Comandos Do DOS

         O comando MORE ‚ idˆntico ao comando TYPE, mas ao final de  cada       p gina, faz uma pausa. Em versäes mais antigas  do DOS, o MORE  s¢       funciona se for feito um PIPE com o comando TYPE.       2.20) MD/MKDIR/CD/CHDIR/RD/RMDIR         Sintaxe: MD [nome_do_diret¢rio] ou MKDIR [nome_do_diret¢rio] 

Page 46: Comandos Do DOS
Page 47: Comandos Do DOS

                 CD [diret¢rio] ou CHDIR [diret¢rio]                  RD [diret¢rio_vazio] ou RMDIR [diret¢rio_vazio]          MD/MKDIR  cria  um  diret¢rio,   CD/CHDIR  chama (vai  para)  um       diret¢rio e o RD/RMDIR deleta um  diret¢rio (s¢  se  o  dito  cujo       estiver VAZIO).       2.21) LABEL         Sintaxe: LABEL [nome_de_volume]         Exemplo: label se_fudeu          Muda o nome de volume da unidade atual.       2.22) FIND         Sintaxe: FIND "string_procurada" [nome_do_arquivo]         Exemplo: find "fuck" c:\trash.txt          Procura por uma string em um determinado arquivo. Muito £til  se       utilizado juntamente com os errorlevels.       2.23) PAUSE         Sintaxe: PAUSE         Exemplo: BAH!          Faz uma pausa no batch, at‚ que  o  usu rio  pressione  qualquer       tecla.  Tamb‚m  exibe  a  mensagem " Pressione qualquer tecla para       continuar..."       2.24) REN/RENAME         Sintaxe: REN [nome_do_arquivo] [novo_nome]                  RENAME [nome_do_arquivo] [novo_nome]         Exemplos: ren autoexec.bat noway.bat                   rename config.sys huahuahua.com          Muda o nome de um arquivo.       2.25) SUBST         Sintaxe: SUBST [nova_letra_de_unidade] [caminho]                  SUBST [unidade] /D         Exemplo: subst f: c:\fuck                  subst f: /d         Define uma letra  de  unidade  para  um  determinado  diret¢rio.       Se vocˆ usar a op‡Æo /D, o SUBST vai desativar a letra da  unidade       Jµ  CRIADA  pelo  comando  SUBST.  S¢  vai  funcionar  se houver a       seguinte linha no CONFIG.SYS: 

Page 48: Comandos Do DOS

          LASTDRIVE=Z       2.26) TIME         Sintaxe: TIME         Exemplo: BAH!