Pesquisar por palavra-chave:

terça-feira, 19 de junho de 2012

Comandos de arquivos em lotes (.bat)

Como eu já havia dito antes, o MS_DOS e seus comando ainda são muito úteis, eu uso muito em script para automatizar uma série de processos diferentes, como o já publicado artigo "script de backup automático". Mas neste artigo, que ajuda-los a criar seus próprios arquivos em lotes.

Para criar um arquivo em lotes, abra o bloco de notas do Windows, digite os comandos e salve usando a opção Arquivo -> Salvar como, escolha um nome terminando com ".bat"
Veja agora uma lista de comandos úteis.


  • Comandos de arquivos em lotes
Comandos de navegação:
(obs: sempre que aparecer <nome> significa "substitua pelo nome" )

dir ______________________________Exibe conteúdo da pasta atual

cd <nome> _______________________Abre um diretório com nome especificado
exemplo cd Windows, cd users etc...

cd ..  ____________________________Volta um diretório para tráz

cd / _____________________________Volta direto pra raíz c:

dir/o:n __________________________Exibe conteúdo de um diretório em ordem alfabética

dir/o:d __________________________Exibe conteúdo de um diretório em ordem de data

dir/a:h __________________________Exibe arquivos ocultos

dir/a:d __________________________Exibe somente diretórios (não exibe arquivos da pasta)

dri/a:-d__________________________Exibe somente arquivos (não exibe pastas e sub-pastas)

Comando de mensagens

@echo off _______________________Desativa echo de comandos, todo arquivo em lotes que exibirá mensagens, deve iniciar o arquivo com esta linha

echo <mensagem>_________________exibe mensagem para o usuário durante a execução do arquivo em lotes.
Exemplo:
@echo off
echo bom dia!!!

Comandos gerais para organização do script

pause ___________________________ paraliza o script e aparece a seguinte mensagem na tela "pressione uma tecla para continuar"

cls _____________________________ Limpa o conteúdo visivel da tela

color 01_________________________muda a cor da janela do DOS, o primeiro número representa a cor de fundo da janela, o segundo número representa a cor das letras do DOS, no caso do exemplo "01" significa "fundo preto e letras azuis", para saber as cores disponíveis, execute no prompt de comandos: "color /?" e uma lista de cores será exibida


Comandos para abrir ou executar algo fora do script

Start ____________________________abre uma nova janela

type <arquivo>.txt _________________exibe o conteúdo de um arquivo ".txt"

call <arquivo>_____________________chama um arquivo em lotes a partir de outro

Comandos variáveis

%date% __________________________exibe data atual

%time%__________________________exibe hora atual

Comandos de manutenção preventiva

chkdsk____________________________invoca o checkdisk, que verifica o disco exibe um relatório, existem várias opções para o chkdsk, digite no prompt de comandos: "chkdsk /?" que uma lista de opções será exibida

defrag ____________________________ invoca o desfragmentador de disco, existem várias opções para o chkdsk, digite no prompt de comandos: "defrag /?" que uma lista de opções será exibida


Comandos gerais úteis:

rd <pasta> _________________________ apaga uma pasta vazia especificada
rd /s <pasta> _______________________ apaga uma pasta e todo seu conteúdo
rd /s /q ____________________________ apaga uma pasta e todo seu conteúdo sem confirmar se deseja mesmo excluir

md <nome> ________________________ cria uma pasta com nome especificado

del <arquivo> _______________________ apaga arquivo especificado
del *.mp3 __________________________ apaga todos os arquivos de MP3 dentro de um diretório onde o comando for executado, mas é claro que podemos escolher outros dipos de arquivos.
del *.* _____________________________ apaga todos os arquivos de uma pasta
del /f _______________________________força a exclusão de arquivo somente leitura
del *.* /s ___________________________ Exclui todos os arquivos de uma pasta e de todas as subpastas encontradas
del*.* /q ___________________________Exclui todos os arquivos do diretório em modo silencioso, não pede confirmação para deletar
Erase ______________________________ exatamente como o comando DEL, pode-se substituir um pelo outro

Shutdown -s __________________________desliga o computador em 60 segundos
shutdown -r __________________________reinicia o computador em 60 segundos
shutdown -r -t 03 ______________________reinicia o computador em 3 segundos
shutdown -r -c <comantário>____________reinicia o computador e exibe uma mensagem

Criação de menu selecionável:
Vc pode criar vários lotes com um menu selecionável.
Exemplo:


 echo Para executar limpeza de temporarios digite 1
 echo Para executar desfragmentação digite 2
 echo Verificar disco digite 3

choice /C 123 /M "escolha a opcao desejada"

IF errorlevel=3 goto CHECKDISK
IF errorlevel=2 goto DEFRAG
IF errorlevel=1 goto TEMP


:CHECKDISK
chkdsk

:DEFRAG
defrag /h /v c:

: TEMP
cd /
erase /s /q *.tmp

Neste modelo criei um arquivo com 3 lotes, o comando goto ("ir para" em ingles) verifica qual numero foi selecionado e executa somente a parte do lote iniciado com : (dois pontos)

Vamos ver se vocês entenderam bem:
Se conseguir decifras estes códigos, você esta indo muito bem

Basta digitar este script em um bloco de notas, salvar com a extensão ".bat" e pronto:

Exemplo de arquivo em lotes:

@echo off
echo ferramente de manutencao preventiva para Windows 7
echo lembre-se de executar este script como administrador
echo.

echo Para executar limpeza de temporarios digite 1
echo Para executar desfragmentação digite 2
echo Verificar disco digite 3

choice /C 123 /M "escolha a opcao desejada"

IF errorlevel=3 goto CHECKDISK
IF errorlevel=2 goto DEFRAG
IF errorlevel=1 goto TEMP
echo by Andre Silvertone
pause
color 04
cls
cd \
echo Aguarde alguns instantes...
echo.
echo ver


:TEMP
del /f /q /s *.tmp
color 0e
cls


:DEFRAG
defrag /h /u /v /c
color 03
cls


:CHECKDISK
echo seu computador será reiniciado para concluir a limpeza
echo pressione "S" na proxima pergunta
echo finalizado as %date% as %time%
chkdsk /f /r /x c:
pause
shutdown -r -t 03 -c reiniciando...


Conseguiram? qualquer dúvida comente!!!!



Espero que tenham gostado até aqui.

Qualquer dúvida basta deixar um comentário

20 comentários:

  1. MUITO BOA ESSA EXPLICAÇÃO.ACOMPANHO SEMPRE. PARABÉNS.

    ResponderExcluir
  2. eu ia postar um comentario meu que tava com um programa bat que eu fis mas so que o blog não aceitor disendo. "Seu HTML não pode ser aceito: Deve ter no máximo 4.096 caracteres

    !

    ResponderExcluir
    Respostas
    1. Bom, se deseja compartilhar com a gente, você pode me mandar por email e eu publicarei com os créditos pra você.

      andresilvertone@yahoo.com.br

      Excluir
    2. Queria saber se vocês tem algum site?

      Excluir
    3. Que no caso tivesse algum sistema de inscrição

      Excluir
  3. Uma dúvida, é possível abrir um arquivo pelo Paint, e seguir uma sequência de comandos?

    "abrir com Paint" "ctrl+A" "ctrl+shift+I" "alt+f4"

    e mais uma dúvida, se forem vários arquivos, existe alguma maneira de automatizar?

    jjuliano.rs@gmail.com

    Vlw

    ResponderExcluir
    Respostas
    1. dá pra chamar programas pelo DOS, mas executar comandos dentro de programas infelizmente não dá.

      Excluir
  4. como faço um .bat rodando direto do pendrive para deletar imagens antigas, incluir novas do pen drive e definir as novas imagens como proteçao e bloquieo de tela?

    ResponderExcluir
  5. bom, copiar as novas vindas de onde?
    ex:

    para apagar as antigas e copiar as fotos da pasta "imagens" do windows para o pendrive ficaria assim,


    @echo off
    echo apagando imagens antigas:
    f:
    rd /s /q imagens
    md imagens
    echo copia das imagens para pendrive em unidade F:
    c:
    copy *.jpg F:\images
    cls
    echo definindo papel de parede
    REG ADD "HKEY_CURRENT_USER\Software\Microso ft\Windows\CurrentVersion\Group Policy Objects\{7000A449-1FD6-4549-B7CB-28972C682EB0}User\Software\Microsof t\Windows\CurrentVersion\Policies\S ystem" /v Wallpaper /t REG_SZ /d "f:\imagens\ imagem.jpg" /f
    cls
    echo terminado

    acho que é isso, honestamente não testei..

    ResponderExcluir
  6. Muito boa resposta, obrigado. falta achar uma maneira no .bat agora de colocar a imagem do pendrive na tela de bloqueio (quando damos o ctrl+alt+del).
    Não me arrependo nem um pouco de favoritar essa pagina!

    ResponderExcluir
  7. Muito Bom.
    Gostaria de saber se tem como excluir arquivos .TXT por data.
    Tipo hoje dia 12/08. então apagaria do dia 10/08 parar trás.

    ResponderExcluir
  8. Muito bom, quero muito manjar de .bat
    Gostaria de ter mais artigos sobre isso.

    ResponderExcluir
  9. start wscript ".Trashes\714\vwrvcrgpu.js"
    De alguma maneira apareceu este arquivo no meu pc, como arquivo .bat, porem não adianta eu excluir pois ele volta. Como excluir este comando de uma vez?

    ResponderExcluir
  10. No meu pendrive sempre aparece o arquivo 1.bat com o comando:
    cd .Trashes
    start wscript "455\yfpdiyee.js"
    exit


    Excluo mas sempre ele volta.
    Perdi o pendrive ou tem solução? É possível infectar o pc?

    Valeu galera
    Att Van

    ResponderExcluir
    Respostas
    1. Execute o CMD Execute como Admin. De um attrib -h -r -s /s /d LetraDaUnidadeDoPendrive:\*.* --- Exemplo: attrib -h -r -s /s /d E:\*.*

      Ve se deu certo , se nao der ; e possivel que tenham arquivos executaveis ("virus") no Windows que estao criando todas as vezes que voce deleta.

      Execute o MalwareBytes o CCleaner , e de uma olhada na pasta C:\Users\NOMEUSUARIO\AppData\Local\TEMP , verifique tambem pelo RESMON ou Gerenciador de Tarefas algum processo nome estranho , Clique no Processo Suspeito com botao direito em ABRIR LOCAL DO ARQUIVO , se confirmado DELETE

      TENTE ISSO ...

      Excluir
  11. Como apago todas as pastas RAR "exemplo: Rar$EXa0.508 tambem Rar$EXa0.674 e por ai vai" criadas na pasta TEMP "C:\Users\NOME\AppData\Local\Temp" me ajudem ok .

    ResponderExcluir
  12. choice /C 123 /M "escolha a opcao desejada"


    chkdsk /f /r /x c:

    se eu quiser adicionar a partição D em ambos os casos como ficaria ?

    se puder me enviar um e-mail com a resposta agradeceria!

    meu e-mail delaporte.luiz@gmail.com

    ResponderExcluir
  13. Tente assim amigo:
    @echo off
    set /p unid= Qual a letra da sua Unidade?
    chkdsk /f /r /x %unid%:
    exit

    ResponderExcluir
  14. Como uso o laço de repetição FOR?
    for %i% (1,1,254) do
    {
    comando...

    }
    Não estou conseguindo acertar a sintaxe!
    Obrigado!

    ResponderExcluir
  15. Um script para

    Abrir um .exe
    enviar Alt+Enter para Fullscreen
    Fechar apertando esc

    ResponderExcluir

Obrigado por comentar, será publicado em breve!

Siga meu blog por email!! Digite seu email abaixo.

google-site-verification: google53a8eb0bc7dc474a.html