Introdução à programação em lotesDisciplina: Sistemas Operacionais
Prof. Filipe Arantes [email protected]
Introdução
Um arquivo com extensão .bat pode ser definido como um conjunto de comandos executados em lote (sequencialmente);
Criado para o MS-DOS tem a função de automatizar tarefas rotineiras e muitas vezes trabalhosas.
Arquivos .BAT
● Primeiramente, cria-se um arquivo no bloco de notas podendo já conter os comandos de execução do DOS e salvamos na extensão .bat.
● Para isto, basta incluirmos “.bat” no fim do nome do arquivo quando for salvar, como segue o exemplo no próximo slide;
Alguns comandos
● ECHO: Escreve na tela● ECHO OFF: Oculta informações e o código
executado pelo sistema.● ECHO ON: Exibe informações e o código
executado pelo sistema.● ECHO.: Salta uma linha.● @ECHO: Faz com que o prompt fique
oculto durante toda execução.● SET: Cria variável que pode ser
referenciada através de %variável%.● CLS: Limpa o console.
● IF e ELSE: Estruturas condicionais.● GOTO: Avança até determinado trecho do
lote.● FOR: Estrutura de repetição.● PAUSE: Faz uma pausa, e exibe:
“Pressione qualquer tecla para continuar.”● REM: Utilizado para fazer comentários.● START: Inicializa um aplicativo ou
programa.● MOVE: Move (recorta) um arquivo de um
diretório para outro.
Exemplo de um arquivo .bat
1 echo off
2 cls
3 echo “SCRIPT .BAT para realizar backup”
4 pause
5 cd\docume~1\%username%\documentos
6 copy| * d:\Arquivos_Backup
7 pause
8 echo “Abrir calculadora”
9 start calc.exe
10 pause
Exemplo de um arquivo .bat
1 echo off
2 cls
3 echo “SCRIPT .BAT para realizar backup”
4 pause
5 cd\docume~1\%username%\documentos
6 copy| * d:\Arquivos_Backup
7 pause
8 echo “Abrir calculadora”
9 start calc.exe
10 pause
● Explicando o código
● Linha 1
● ECHO OFF: Oculta o código executado.
Exemplo de um arquivo .bat
1 echo off
2 cls
3 echo “SCRIPT .BAT para realizar backup”
4 pause
5 cd\docume~1\%username%\documentos
6 copy| * d:\Arquivos_Backup
7 pause
8 echo “Abrir calculadora”
9 start calc.exe
10 pause
● Explicando o código
● Linha 2
● CLS: Limpa a tela do console.
Exemplo de um arquivo .bat
1 echo off
2 cls
3 echo “SCRIPT .BAT para realizar backup”
4 pause
5 cd\docume~1\%username%\documentos
6 copy| * d:\Arquivos_Backup
7 pause
8 echo “Abrir calculadora”
9 start calc.exe
10 pause
● Explicando o código
● Linha 3
● ECHO: Exibe o texto “SCRIPT .BAT para Realizar Backup”.
Exemplo de um arquivo .bat
1 echo off
2 cls
3 echo “SCRIPT .BAT para realizar backup”
4 pause
5 cd\docume~1\%username%\documentos
6 copy| * d:\Arquivos_Backup
7 pause
8 echo “Abrir calculadora”
9 start calc.exe
10 pause
● Explicando o código
● Linha 4
● PAUSE: Pausa execução e apresenta: “Pressione qualquer tecla para continuar”.
Exemplo de um arquivo .bat
1 echo off
2 cls
3 echo “SCRIPT .BAT para realizar backup”
4 pause
5 cd\docume~1\%username%\documentos
6 copy| * d:\Arquivos_Backup
7 pause
8 echo “Abrir calculadora”
9 start calc.exe
10 pause
● Explicando o código
● Linha 5
● cd\docume~1\%username%\documentos: Acessa o diretório onde será realizado backup.
Exemplo de um arquivo .bat
1 echo off
2 cls
3 echo “SCRIPT .BAT para realizar backup”
4 pause
5 cd\docume~1\%username%\documentos
6 copy| * d:\Arquivos_Backup
7 pause
8 echo “Abrir calculadora”
9 start calc.exe
10 pause
● Explicando o código
● Linha 6
● copy* d:\ Arquivos_Backup: Copia todos(*) os arquivos do diretório documentos para o diretório Arquivos_Backup na partição d:.
Exemplo de um arquivo .bat
1 echo off
2 cls
3 echo “SCRIPT .BAT para realizar backup”
4 pause
5 cd\docume~1\%username%\documentos
6 copy| * d:\Arquivos_Backup
7 pause
8 echo “Abrir calculadora”
9 start calc.exe
10 pause
● Explicando o código
● Linha 8
● ECHO: Exibe o texto ”Abrir Calculadora“.
Exemplo de um arquivo .bat
1 echo off
2 cls
3 echo “SCRIPT .BAT para realizar backup”
4 pause
5 cd\docume~1\%username%\documentos
6 copy| * d:\Arquivos_Backup
7 pause
8 echo “Abrir calculadora”
9 start calc.exe
10 pause
● Explicando o código
● Linha 9
● start calc.exe: Inicia a calculadora.
Resultado do exemplo
● Ao final da execução temos os arquivos “backupados” e a calculadora aberta.
● Este é somente um exemplo das inúmeras rotinas que podem ser feitas em um “.bat”. Com um bom conhecimento dos comandos DOS podemos otimizar nosso tempo programando tarefas em lote.
Exercícios
Fonte: https://static01.nyt.com/images/2007/11/08/opinion/08opart.large.jpg
Exercício 1
a) Crie um .bat que construa a árvore de diretórios ao lado.
b) Em seguida, localize na unidade C: todos os arquivos com a extensão .txt e COPIE para a pasta PCCHIPS.
Gabarito: Exercício 11 echo off
2 cls
3 md HARDWARE SO
4 rem Abrir a pasta HARDWARE
5 cd HARDWARE
6 rem Pasta HARDWARE aberta
7 md ASUS ASUS\DELUXE ECS GIGABYTE PCCHIPS
8 rem Sair da pasta HARDWARE
9 cd ..
10 rem Abrir a pasta SO
11 cd SO
12 md DOS LINUX WINDOWS
13 rem Abrir a pasta LINUX
14 cd LINUX
15 md KURUMIN MANDRIVA SUSE UBUNTU
16 rem Voltar para a pasta raiz
17 cd ..\..
18 echo "Árvore de diretórios criada!"
19 pause
Gabarito: Exercício 11 echo off
2 cls
3 md HARDWARE SO
4 rem Abrir a pasta HARDWARE
5 cd HARDWARE
6 rem Pasta HARDWARE aberta
7 md ASUS ASUS\DELUXE ECS GIGABYTE PCCHIPS
8 rem Sair da pasta HARDWARE
9 cd ..
10 rem Abrir a pasta SO
11 cd SO
12 md DOS LINUX WINDOWS
13 rem Abrir a pasta LINUX
14 cd LINUX
15 md KURUMIN MANDRIVA SUSE UBUNTU
16 rem Voltar para a pasta raiz
17 cd ..\..
18 echo "Árvore de diretórios criada!"
19 pause
● Explicando o código:
● Linha 1
● Oculta o código executado.
Gabarito: Exercício 11 echo off
2 cls
3 md HARDWARE SO
4 rem Abrir a pasta HARDWARE
5 cd HARDWARE
6 rem Pasta HARDWARE aberta
7 md ASUS ASUS\DELUXE ECS GIGABYTE PCCHIPS
8 rem Sair da pasta HARDWARE
9 cd ..
10 rem Abrir a pasta SO
11 cd SO
12 md DOS LINUX WINDOWS
13 rem Abrir a pasta LINUX
14 cd LINUX
15 md KURUMIN MANDRIVA SUSE UBUNTU
16 rem Voltar para a pasta raiz
17 cd ..\..
18 echo "Árvore de diretórios criada!"
19 pause
● Explicando o código:
● Linha 2
● Limpa a tela
Gabarito: Exercício 11 echo off
2 cls
3 md HARDWARE SO
4 rem Abrir a pasta HARDWARE
5 cd HARDWARE
6 rem Pasta HARDWARE aberta
7 md ASUS ASUS\DELUXE ECS GIGABYTE PCCHIPS
8 rem Sair da pasta HARDWARE
9 cd ..
10 rem Abrir a pasta SO
11 cd SO
12 md DOS LINUX WINDOWS
13 rem Abrir a pasta LINUX
14 cd LINUX
15 md KURUMIN MANDRIVA SUSE UBUNTU
16 rem Voltar para a pasta raiz
17 cd ..\..
18 echo "Árvore de diretórios criada!"
19 pause
● Explicando o código:
● Linha 3
● Cria as pastas HARDWARE e SO
Gabarito: Exercício 11 echo off
2 cls
3 md HARDWARE SO
4 rem Abrir a pasta HARDWARE
5 cd HARDWARE
6 rem Pasta HARDWARE aberta
7 md ASUS ASUS\DELUXE ECS GIGABYTE PCCHIPS
8 rem Sair da pasta HARDWARE
9 cd ..
10 rem Abrir a pasta SO
11 cd SO
12 md DOS LINUX WINDOWS
13 rem Abrir a pasta LINUX
14 cd LINUX
15 md KURUMIN MANDRIVA SUSE UBUNTU
16 rem Voltar para a pasta raiz
17 cd ..\..
18 echo "Árvore de diretórios criada!"
19 pause
● Explicando o código:
● Linha 4
● Comentário, ou seja, linha que não será executada pelo prompt de comandos
Gabarito: Exercício 11 echo off
2 cls
3 md HARDWARE SO
4 rem Abrir a pasta HARDWARE
5 cd HARDWARE
6 rem Pasta HARDWARE aberta
7 md ASUS ASUS\DELUXE ECS GIGABYTE PCCHIPS
8 rem Sair da pasta HARDWARE
9 cd ..
10 rem Abrir a pasta SO
11 cd SO
12 md DOS LINUX WINDOWS
13 rem Abrir a pasta LINUX
14 cd LINUX
15 md KURUMIN MANDRIVA SUSE UBUNTU
16 rem Voltar para a pasta raiz
17 cd ..\..
18 echo "Árvore de diretórios criada!"
19 pause
● Explicando o código:
● Linha 5
● Abre a pasta HARDWARE
Gabarito: Exercício 11 echo off
2 cls
3 md HARDWARE SO
4 rem Abrir a pasta HARDWARE
5 cd HARDWARE
6 rem Pasta HARDWARE aberta
7 md ASUS ASUS\DELUXE ECS GIGABYTE PCCHIPS
8 rem Sair da pasta HARDWARE
9 cd ..
10 rem Abrir a pasta SO
11 cd SO
12 md DOS LINUX WINDOWS
13 rem Abrir a pasta LINUX
14 cd LINUX
15 md KURUMIN MANDRIVA SUSE UBUNTU
16 rem Voltar para a pasta raiz
17 cd ..\..
18 echo "Árvore de diretórios criada!"
19 pause
● Explicando o código:
● Linha 6
● Comentário
Gabarito: Exercício 11 echo off
2 cls
3 md HARDWARE SO
4 rem Abrir a pasta HARDWARE
5 cd HARDWARE
6 rem Pasta HARDWARE aberta
7 md ASUS ASUS\DELUXE ECS GIGABYTE PCCHIPS
8 rem Sair da pasta HARDWARE
9 cd ..
10 rem Abrir a pasta SO
11 cd SO
12 md DOS LINUX WINDOWS
13 rem Abrir a pasta LINUX
14 cd LINUX
15 md KURUMIN MANDRIVA SUSE UBUNTU
16 rem Voltar para a pasta raiz
17 cd ..\..
18 echo "Árvore de diretórios criada!"
19 pause
● Explicando o código:
● Linha 7
● Crias pastas, inclusive, DELUXE, a qual é um subdiretório de ASUS
Gabarito: Exercício 11 echo off
2 cls
3 md HARDWARE SO
4 rem Abrir a pasta HARDWARE
5 cd HARDWARE
6 rem Pasta HARDWARE aberta
7 md ASUS ASUS\DELUXE ECS GIGABYTE PCCHIPS
8 rem Sair da pasta HARDWARE
9 cd ..
10 rem Abrir a pasta SO
11 cd SO
12 md DOS LINUX WINDOWS
13 rem Abrir a pasta LINUX
14 cd LINUX
15 md KURUMIN MANDRIVA SUSE UBUNTU
16 rem Voltar para a pasta raiz
17 cd ..\..
18 echo "Árvore de diretórios criada!"
19 pause
● Explicando o código:
● Linha 8
● Comentário
Gabarito: Exercício 11 echo off
2 cls
3 md HARDWARE SO
4 rem Abrir a pasta HARDWARE
5 cd HARDWARE
6 rem Pasta HARDWARE aberta
7 md ASUS ASUS\DELUXE ECS GIGABYTE PCCHIPS
8 rem Sair da pasta HARDWARE
9 cd ..
10 rem Abrir a pasta SO
11 cd SO
12 md DOS LINUX WINDOWS
13 rem Abrir a pasta LINUX
14 cd LINUX
15 md KURUMIN MANDRIVA SUSE UBUNTU
16 rem Voltar para a pasta raiz
17 cd ..\..
18 echo "Árvore de diretórios criada!"
19 pause
● Explicando o código:
● Linha 9
● Sai da pasta HARDWARE
Gabarito: Exercício 11 echo off
2 cls
3 md HARDWARE SO
4 rem Abrir a pasta HARDWARE
5 cd HARDWARE
6 rem Pasta HARDWARE aberta
7 md ASUS ASUS\DELUXE ECS GIGABYTE PCCHIPS
8 rem Sair da pasta HARDWARE
9 cd ..
10 rem Abrir a pasta SO
11 cd SO
12 md DOS LINUX WINDOWS
13 rem Abrir a pasta LINUX
14 cd LINUX
15 md KURUMIN MANDRIVA SUSE UBUNTU
16 rem Voltar para a pasta raiz
17 cd ..\..
18 echo "Árvore de diretórios criada!"
19 pause
● Explicando o código:
● Linha 10
● Comentário
Gabarito: Exercício 11 echo off
2 cls
3 md HARDWARE SO
4 rem Abrir a pasta HARDWARE
5 cd HARDWARE
6 rem Pasta HARDWARE aberta
7 md ASUS ASUS\DELUXE ECS GIGABYTE PCCHIPS
8 rem Sair da pasta HARDWARE
9 cd ..
10 rem Abrir a pasta SO
11 cd SO
12 md DOS LINUX WINDOWS
13 rem Abrir a pasta LINUX
14 cd LINUX
15 md KURUMIN MANDRIVA SUSE UBUNTU
16 rem Voltar para a pasta raiz
17 cd ..\..
18 echo "Árvore de diretórios criada!"
19 pause
● Explicando o código:
● Linha 11
● Abre a pasta SO
Gabarito: Exercício 11 echo off
2 cls
3 md HARDWARE SO
4 rem Abrir a pasta HARDWARE
5 cd HARDWARE
6 rem Pasta HARDWARE aberta
7 md ASUS ASUS\DELUXE ECS GIGABYTE PCCHIPS
8 rem Sair da pasta HARDWARE
9 cd ..
10 rem Abrir a pasta SO
11 cd SO
12 md DOS LINUX WINDOWS
13 rem Abrir a pasta LINUX
14 cd LINUX
15 md KURUMIN MANDRIVA SUSE UBUNTU
16 rem Voltar para a pasta raiz
17 cd ..\..
18 echo "Árvore de diretórios criada!"
19 pause
● Explicando o código:
● Linha 12
● Cria as pastas DOS, LINUX e WINDOWS
Gabarito: Exercício 11 echo off
2 cls
3 md HARDWARE SO
4 rem Abrir a pasta HARDWARE
5 cd HARDWARE
6 rem Pasta HARDWARE aberta
7 md ASUS ASUS\DELUXE ECS GIGABYTE PCCHIPS
8 rem Sair da pasta HARDWARE
9 cd ..
10 rem Abrir a pasta SO
11 cd SO
12 md DOS LINUX WINDOWS
13 rem Abrir a pasta LINUX
14 cd LINUX
15 md KURUMIN MANDRIVA SUSE UBUNTU
16 rem Voltar para a pasta raiz
17 cd ..\..
18 echo "Árvore de diretórios criada!"
19 pause
● Explicando o código:
● Linha 13
● Comentário
Gabarito: Exercício 11 echo off
2 cls
3 md HARDWARE SO
4 rem Abrir a pasta HARDWARE
5 cd HARDWARE
6 rem Pasta HARDWARE aberta
7 md ASUS ASUS\DELUXE ECS GIGABYTE PCCHIPS
8 rem Sair da pasta HARDWARE
9 cd ..
10 rem Abrir a pasta SO
11 cd SO
12 md DOS LINUX WINDOWS
13 rem Abrir a pasta LINUX
14 cd LINUX
15 md KURUMIN MANDRIVA SUSE UBUNTU
16 rem Voltar para a pasta raiz
17 cd ..\..
18 echo "Árvore de diretórios criada!"
19 pause
● Explicando o código:
● Linha 14
● Abre a pasta LINUX
Gabarito: Exercício 11 echo off
2 cls
3 md HARDWARE SO
4 rem Abrir a pasta HARDWARE
5 cd HARDWARE
6 rem Pasta HARDWARE aberta
7 md ASUS ASUS\DELUXE ECS GIGABYTE PCCHIPS
8 rem Sair da pasta HARDWARE
9 cd ..
10 rem Abrir a pasta SO
11 cd SO
12 md DOS LINUX WINDOWS
13 rem Abrir a pasta LINUX
14 cd LINUX
15 md KURUMIN MANDRIVA SUSE UBUNTU
16 rem Voltar para a pasta raiz
17 cd ..\..
18 echo "Árvore de diretórios criada!"
19 pause
● Explicando o código:
● Linha 15
● Cria as 4 pastas
Gabarito: Exercício 11 echo off
2 cls
3 md HARDWARE SO
4 rem Abrir a pasta HARDWARE
5 cd HARDWARE
6 rem Pasta HARDWARE aberta
7 md ASUS ASUS\DELUXE ECS GIGABYTE PCCHIPS
8 rem Sair da pasta HARDWARE
9 cd ..
10 rem Abrir a pasta SO
11 cd SO
12 md DOS LINUX WINDOWS
13 rem Abrir a pasta LINUX
14 cd LINUX
15 md KURUMIN MANDRIVA SUSE UBUNTU
16 rem Voltar para a pasta raiz
17 cd ..\..
18 echo "Árvore de diretórios criada!"
19 pause
● Explicando o código:
● Linha 16
● Comentário
Gabarito: Exercício 11 echo off
2 cls
3 md HARDWARE SO
4 rem Abrir a pasta HARDWARE
5 cd HARDWARE
6 rem Pasta HARDWARE aberta
7 md ASUS ASUS\DELUXE ECS GIGABYTE PCCHIPS
8 rem Sair da pasta HARDWARE
9 cd ..
10 rem Abrir a pasta SO
11 cd SO
12 md DOS LINUX WINDOWS
13 rem Abrir a pasta LINUX
14 cd LINUX
15 md KURUMIN MANDRIVA SUSE UBUNTU
16 rem Voltar para a pasta raiz
17 cd ..\..
18 echo "Árvore de diretórios criada!"
19 pause
● Explicando o código:
● Linha 17
● Volta para a pasta raíz
Gabarito: Exercício 11 echo off
2 cls
3 md HARDWARE SO
4 rem Abrir a pasta HARDWARE
5 cd HARDWARE
6 rem Pasta HARDWARE aberta
7 md ASUS ASUS\DELUXE ECS GIGABYTE PCCHIPS
8 rem Sair da pasta HARDWARE
9 cd ..
10 rem Abrir a pasta SO
11 cd SO
12 md DOS LINUX WINDOWS
13 rem Abrir a pasta LINUX
14 cd LINUX
15 md KURUMIN MANDRIVA SUSE UBUNTU
16 rem Voltar para a pasta raiz
17 cd ..\..
18 echo "Árvore de diretórios criada!"
19 pause
● Explicando o código:
● Linha 18
● Exibe a mensagem “Script executado!” para o usuário
Gabarito: Exercício 11 echo off
2 cls
3 md HARDWARE SO
4 rem Abrir a pasta HARDWARE
5 cd HARDWARE
6 rem Pasta HARDWARE aberta
7 md ASUS ASUS\DELUXE ECS GIGABYTE PCCHIPS
8 rem Sair da pasta HARDWARE
9 cd ..
10 rem Abrir a pasta SO
11 cd SO
12 md DOS LINUX WINDOWS
13 rem Abrir a pasta LINUX
14 cd LINUX
15 md KURUMIN MANDRIVA SUSE UBUNTU
16 rem Voltar para a pasta raiz
17 cd ..\..
18 echo "Árvore de diretórios criada!"
19 pause
● Explicando o código:
● Linha 19
● Aguarda interação do usuário para continuar com o script
CONTINUAÇÃO
Gabarito: Exercício 120 rem Copiar arquivos .txt
21 copy *.txt Users\USUARIO\Desktop\HARDWARE\PCCHIPS
22 cls
23 echo "Arquivos .txt copiados!"
24 pause
● Explicando o código:
● Linha 20
● Comentário
Gabarito: Exercício 120 rem Copiar arquivos .txt
21 copy *.txt Users\USUARIO\Desktop\HARDWARE\PCCHIPS
22 cls
23 echo "Arquivos .txt copiados!"
24 pause
● Explicando o código:
● Linha 21
● Copia arquivos .txt para PCCHIPS. Onde está USUARIO deve ser trocado pelo real valor de cada máquina.
Gabarito: Exercício 120 rem Copiar arquivos .txt
21 copy *.txt Users\USUARIO\Desktop\HARDWARE\PCCHIPS
22 cls
23 echo "Arquivos .txt copiados!"
24 pause
● Explicando o código:
● Linha 22
● Limpa a tela
Gabarito: Exercício 120 rem Copiar arquivos .txt
21 copy *.txt Users\USUARIO\Desktop\HARDWARE\PCCHIPS
22 cls
23 echo "Arquivos .txt copiados!"
24 pause
● Explicando o código:
● Linha 23
● Mostra a mensagem na tela
Gabarito: Exercício 120 rem Copiar arquivos .txt
21 copy *.txt Users\USUARIO\Desktop\HARDWARE\PCCHIPS
22 cls
23 echo "Arquivos .txt copiados!"
24 pause
● Explicando o código:
● Linha 24
● Aguarda interação do usuário para finalizar o script
Referência
● DEVMEDIA, 2017, “Introdução a arquivos .BAT e programação em lotes”. Disponível em: <Introdução a arquivos .BAT e programação em lotes>. Acessado em 9 de março de 2017.
Top Related