Você está na página 1de 12

AGRUPAMENTO DE ESCOLAS GIL VICENTE

Escola Gil Vicente


Ano Letivo 2015/2016
Departamento de Matemática, Ciências Experimentais e Informática
Grupo de Informática

Ficha de trabalho 3
Operações Básicas de Manipulação de
Ficheiros e Pastas
(Comandos)

Lê com atenção e executa todos os desafios lançados!

DESAFIO 1:

Batch File - Criando um bat para fazer backup de ficheiros!


Segue abaixo um exemplo de como criar um ficheiro bat para fazer backup de ficheiros de
forma fácil e prática.

Abrir o bloco de notas (Iniciar > Programas > Acessórios > Bloco de Notas)

Digite o seguinte código:

Altere os nomes das pastas e caminhos das pastas de origens e destino conforme
sua necessidade.

@echo off
cd \
echo -------------------------------------
echo Iniciando o backup
echo -------------------------------------
echo
echo -------------------------------------
xcopy "C:\pastaorigem1\" "d:\pastadestino1\" /s /m /y /r
xcopy "C:\pastaorigem2\" "d:\pastadestino2\" /s /m /y /r
echo .....
echo -------------------------------------
echo Backup concluído
echo -------------------------------------
echo
pause

Clique no menu ficheiro e depois Guardar como, e digite o nome do ficheiro, por exemplo o
nome de "Backup.bat", pode ser qualquer nome, só não esquecer de colocar o .bat no final.

Rafael Henriques 1
AGRUPAMENTO DE ESCOLAS GIL VICENTE
Escola Gil Vicente
Ano Letivo 2015/2016
Departamento de Matemática, Ciências Experimentais e Informática
Grupo de Informática

Notas:

/S Copia pastas e subpastas, exceto as vazias.

/M Copia somente ficheiros com o atributo de arquivo definido.

/Y Suprime o prompt para confirmar se deseja substituir.

/R Substitui ficheiros somente de leitura.

DESAFIO 2:

Batch File – Criando uma calculadora simples em bat!


Este desafio cria uma calculadora feita no Bloco de Notas utilizando Batch files. É uma
calculadora simples, faz apenas as seguintes operações: adição, subtração, multiplicação e
divisão.

Para fazer uma calculadora, abrir o bloco de notas em:

Iniciar > Programas > Acessórios > Bloco de Notas.

Adicione o código abaixo no Bloco de Notas:

@echo off
title Programa que faz cálculos
:inicio
Cls
echo Digite o numero correspondente ao calculo que quer fazer
echo.
echo.
echo 1-Adicao
echo 2-Subtracao
echo 3-Multiplicacao
echo 4-Divisao
echo.
set /p calculo=
if %calculo%==1 goto adicao
if %calculo%==2 goto subtração
if %calculo%==3 goto multiplicar
if %calculo%==4 goto dividir
:adicao
Cls

Rafael Henriques 2
AGRUPAMENTO DE ESCOLAS GIL VICENTE
Escola Gil Vicente
Ano Letivo 2015/2016
Departamento de Matemática, Ciências Experimentais e Informática
Grupo de Informática

echo Digite o primeiro numero que pretende somar


set /p n1=
cls
echo Digite o segundo numero
set /p n2=
cls
set /a n3=%n1%+%n2%
echo %n1%+%n2%=%n3%
pause
cls
echo O que deseja fazer?
echo .
echo .
echo V-Voltar ao menu
echo S-sair do programa
set /p opcao=
if %opcao%==v goto inicio
if %opcao%==s exit
:subtração
Cls
echo Digite o primeiro numero que pretende subtrair
set /p nn1=
cls
echo Digite o segundo numero
set /p nn2=
cls
set /a nn3=%nn1%-%nn2%
echo %nn1%-%nn2%=%nn3%
pause
cls
echo O que deseja fazer?
echo .
echo .
echo V-Voltar ao menu
echo S-sair do programa
set /p opcao1=
if %opcao1%==v goto inicio
if %opcao1%==s exit
:multiplicar
Cls
echo Digite o primeiro numero que quer Multiplicar
set /p n1=
cls
echo Digite o segundo numero
set /p n2=
cls
set /a n3=%n1%*%n2%

Rafael Henriques 3
AGRUPAMENTO DE ESCOLAS GIL VICENTE
Escola Gil Vicente
Ano Letivo 2015/2016
Departamento de Matemática, Ciências Experimentais e Informática
Grupo de Informática

echo %n1%X%n2%=%n3%
pause
cls
echo O que deseja fazer?
echo .
echo .
echo V-Voltar ao menu
echo S-sair do programa
set /p opcao=
if %opcao%==v goto inicio
if %opcao%==s exit
:dividir
Cls
echo Que numero deseja dividir
set /p n1=
cls
echo Por quanto deseja dividir
set /p n2=
cls
set /a n3=%n1%/%n2%
echo %n1%:%n2%=%n3%
pause
cls
echo O que deseja fazer?
echo .
echo .
echo V-Voltar ao menu
echo S-sair do programa
set /p opcao=
if %opcao%==v goto inicio
if %opcao%==s exit

Em seguida, guarde o ficheiro com o nome “Calculadora.bat”. (O importante é não


esquecer de guardar com a extensão “.bat”).

Agora basta você abrir o ficheiro “.bat” dando dois (2) cliques sobre o mesmo. Vai abrir
uma janela do MS-DOS que será a calculadora:

Rafael Henriques 4
AGRUPAMENTO DE ESCOLAS GIL VICENTE
Escola Gil Vicente
Ano Letivo 2015/2016
Departamento de Matemática, Ciências Experimentais e Informática
Grupo de Informática

Desafio 3

O código batch abaixo tem como função mostrar o nível de segurança de uma password
para que o utilizador possa criar passwords seguras! Quando e digitado uma password, o
programa verifica e mostra se a mesma é fraca, boa ou ótima!

Obs: Para executar o script e só copiar o mesmo para o bloco de notas e guardá-lo com a
extensão .bat ex: nomeficheiro.bat

@echo off
setlocal enabledelayedexpansion
title N¡vel de seguran‡a batch
mode con cols=45 lines=10
color a
:ini
set "Mostra="
set "Mostra2="
set "Mostra3="
set "Password="
set "Contar="
cls
echo.
echo. Digite uma password para que seja
echo.
echo. verificado o nivel de seguran‡a :
echo.
set/p "Password= Password : "
cls
if not defined Password goto ini

Rafael Henriques 5
AGRUPAMENTO DE ESCOLAS GIL VICENTE
Escola Gil Vicente
Ano Letivo 2015/2016
Departamento de Matemática, Ciências Experimentais e Informática
Grupo de Informática

:Segue
set/a "Contar+=1"
set "Password2=!Password:~0,%Contar%!"
if "%Password2%" neq "%Password%" goto:Segue

if %contar% lss 6 (echo.A password deve ter no m¡nimo 6 caracteres


pause>nul
goto:ini)
set "min="
for %%j in (a,b,c,d,e,f,g,h,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do (set "le1=%%j"
call:conp min)
set "maiusc="
for %%i in (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) do (set
"le2=%%i"
call:conp1 maiusc)
seT "num="
for %%h in (1,2,3,4,5,6,7,8,9,0) do (set "le3=%%h"
call:conp2 num)
if "%verif%" equ "1" set Mostra=Fraca
if "%verif%" equ "11" set Mostra=Boa
if "%verif%" equ "111" set Mostra=Otima
echo.
echo.
set "nivel=%min%%Maiusc%%num%"
echo. Nivel de seguran‡a
echo. 1 2 3
echo. _______________________________________
echo. %nivel%
echo.
echo. %Mostra%
pause>nul
goto:ini

:conp
for /l %%k in (0,1,!Contar!) do (set "sec=!Password2:~%%k,1!"
if "!sec!" equ "!le1!" (set "%1=°°°°°°°°°°°°°"&set Mostra=1)
)
goto:eof
:conp1
for /l %%k in (0,1,!Contar!) do (set "sec=!Password2:~%%k,1!"
if "!sec!" equ "!le2!" (set "%1=²²²²²²²²²²²²²"&set Mostra2=1)
)
goto:eof
:conp2
for /l %%k in (0,1,!Contar!) do (set "sec=!Password2:~%%k,1!"
if "!sec!" equ "!le3!" (set "%1=ÛÛÛÛÛÛÛÛÛÛÛÛÛ"&set Mostra3=1)
)
set verif=%Mostra%%Mostra2%%Mostra3%
goto:eof.

Rafael Henriques 6
AGRUPAMENTO DE ESCOLAS GIL VICENTE
Escola Gil Vicente
Ano Letivo 2015/2016
Departamento de Matemática, Ciências Experimentais e Informática
Grupo de Informática

Principais Comandos de Batch Files!


Aqui estão, alguns comandos utilizados em ficheiros batch. Se tiver dúvida de algum digite
no Prompt de comando: comando/?. Outro modo de vê-los é digitando help no Prompt de
Comando.

ECHO [mensagem ou variável]

Escreve no ecrã

ECHO OFF

Rafael Henriques 7
AGRUPAMENTO DE ESCOLAS GIL VICENTE
Escola Gil Vicente
Ano Letivo 2015/2016
Departamento de Matemática, Ciências Experimentais e Informática
Grupo de Informática

Desativa as informações e confirmações feitas pelo sistema. Como "C:>", "Tem a certeza
que deseja fazer ?"...

ECHO ON

Ativa as informações e confirmações do sistema.

ECHO.

Salta uma linha

SET variavel=valor

Cria ou modifica uma variável (espaço reservado temporariamente na memória RAM


para guardar algumas informações: numéricas, de caracteres, positivo/negativo entre
outros. Não podem ter acento e devem começar com letra). Para chamar a variável
posteriormente basta colocá-la entre "%". Por exemplo:

SET nome=Rafael

ECHO O nome dele é %nome%

:nomedolink

Nomeia um ponto do ficheiro bacth permitindo avançar ou voltar à execução a partir desse
ponto.

CLS

Este comando limpa todo o ecrã. Clear Screen.

@[Comando]

Desativa as informações e confirmações feitas pelo sistema apenas para esta linha.

IF [condição] (

Rafael Henriques 8
AGRUPAMENTO DE ESCOLAS GIL VICENTE
Escola Gil Vicente
Ano Letivo 2015/2016
Departamento de Matemática, Ciências Experimentais e Informática
Grupo de Informática

[acção]

) ELSE (

[acção2]

Este é um comando condicional. "Se condição fazer ação, senão fazer a ção2".

Por exemplo

@ECHO OFF
SET nome=Ana
IF "%nome%"=="Ana" (
ECHO Oi Aninha!
) ELSE (
ECHO Oi %nome%!
)

GOTO [ponto]

Avança ou volta a execução para um ponto do ficheiro bacth.

FOR /L %%variavel IN (início,incremento,fim) DO comando [parâmetro]

Repete um comando várias vezes fazendo incrementações até o fim ser atingido.

 /L, é uma opção do comando FOR que faz as iterações


 %%variavel, é o nome da variável que vai ser incrementada
 início, é o valor de início da variável que será incrementada
 incremento, número que será somado a cada iteração
 fim, a repetição irá acabar quando o valor da variável atingir este valor
 comando, um comando que será repetido
 [parâmetro], o parâmetro do comando que será repetido

Por exemplo

@ECHO OFF
FOR /L %%a IN (1,1,5) DO ECHO O valor de A é %%a

Rafael Henriques 9
AGRUPAMENTO DE ESCOLAS GIL VICENTE
Escola Gil Vicente
Ano Letivo 2015/2016
Departamento de Matemática, Ciências Experimentais e Informática
Grupo de Informática

PAUSE

Faz uma pausa e só volta quando o utilizador pressionar alguma tecla do teclado.

REM [comentário]

Este comando não faz absolutamente nada. Utilizado para inserir comentários nos
arquivos.

Todos os comandos aqui listados são comandos de MS-DOS que foram criados
especificamente para bacth files. Se precisar de mais detalhes sobre cada um deles basta
digitar no MS-DOS (ou no prompt de comando do Windows) [comando]/?

Todos comandos de MS-DOS também entram nesta lista.

Condições
Numéricas e Caracteres:
 Igual (QUE ou ==)
 Diferente (NEQ)
 Menor que (LSS)
 Menor ou igual a (LEQ)
 Maior que (GTR)
 Maior ou igual a (GEQ)
 Condição negativa (NOT)

Variáveis:
 Definido (DEFINED [variável sem %])
 Condição negativa (NOT)
Ficheiros:
 Existe (EXIST)
 Condição negativa (NOT)

Os símbolos acima vêm das seguintes fontes:

QUE vem da palavra inglesa EQUals (Igual).

NEQ vem da palavra inglesa Not EQuals (Não-Igual, diferente)

LSS vem da palavra inglesa LeSS (Menor)

LEQ vem da palavra inglesa Less or EQuals (Menor ou Igual)

GTR vem da palavra inglesa GreaTeR (Maior)

Rafael Henriques 10
AGRUPAMENTO DE ESCOLAS GIL VICENTE
Escola Gil Vicente
Ano Letivo 2015/2016
Departamento de Matemática, Ciências Experimentais e Informática
Grupo de Informática

GEQ vem da palavra inglesa Greater or EQuals (Maior ou Igual)

NOT é uma palavra inglesa que significa Não

DEFINED é uma palavra inglesa que significa Definido

EXIST é uma palavra inglesa que significa Existe

Caracteres
As condições numéricas e de caracteres são iguais, porém avaliam de maneira diferente.
Por exemplo, se compararmos "Ana" com Rafael na condição LEQ (Menor ou igual), será
avaliado o tamanho. "Ana" tem 3 letras e "Rafael" tem 6. Então "Rafael" é maior que "Ana"
e a condição é verdadeira. Veja como ficaria:

@ECHO OFF

SET nome1=Ana

SET nome2=Rafael

REM O resultado da condição abaixo será verdadeiro

IF "%nome1%" LEQ "%nome2%" ( ECHO Verdadeiro ) ELSE ( ECHO Falso )

Numéricas
Nas condições numéricas as duas únicas diferenças entre as condições numéricas e de
caracteres é que nas numéricas são avaliados os números, não o tamanho. Vamos supor
que a Ana tem 23 anos e que a Rafael tem 19. Se compararmos as suas idades
respetivamente usando LSS (Menor que) o resultado será Falso. Exemplo:

@ECHO OFF

SET ana=23

SET rafael=19

REM O resultado da condição abaixo será Falso

IF %ana% LSS %rafael% ( ECHO Verdade ) ELSE ( ECHO Falso )

Rafael Henriques 11
AGRUPAMENTO DE ESCOLAS GIL VICENTE
Escola Gil Vicente
Ano Letivo 2015/2016
Departamento de Matemática, Ciências Experimentais e Informática
Grupo de Informática

FICHEIROS
A condição EXIST verifica se existe algum ficheiro. Por exemplo, se existir o ficheiro
"exemplo.bat" o resultado será verdadeiro, senão falso. exemplo:

@ECHO OFF

IF EXIST exemplo.bat ( ECHO Verdadeiro ) ELSE ( ECHO Falso )

No sistema MS-DOS, pode-se fazer uma "pesquisa" na pasta onde está posicionado, por
um ficheiro digitando parte dele. Usa-se o indicar a(s) parte(s) que não conhecemos. Por
exemplo, se existir algum ficheiro com a extensão "."*" para bat" na pasta atual o
resultado será verdadeiro, senão negativo. Exemplo:

@ECHO OFF

IF EXIST *.bat (ECHO Positivo ) ELSE ( ECHO Negativo )

Rafael Henriques 12