Você está na página 1de 6

05/08/2019 Aprenda o FOR de uma vez por todas (extra fácil) | Batch Script (.bat .

cmd)

APRENDENDO COMANDOS BATCH TUTORIAIS DOWNLOADS OUTROS

Tudo sobre batch: Apostilas, programas, dicas e tutoriais.

Pesquisa personalizada

Aprenda o FOR de uma vez por todas (extra fácil)


POSTADO POR RÔMULO COSTA ON 17:32 11 COMENTÁRIOS

Autor: Hmenon do fórum Batch Satti

Bom fiz esse tópico para facilitar a vida de quem ainda tem problema com o comando "for",Para ser
sincero eu também não sabia usar direito ele ate umas duas semanas atras, mais ai eu desvendei o
mistério e irei compartilhar a formula secreta com vocês,bom o grande truque quando vai se
aprender um comando tão complexo quanto o for está na aula experimental isso é você vendo com
os seus próprios olhos o que cada complemento faz.

Obs -Usarei exemplos daqui do forum no tutorial e não estranhem se aparecer uma frase idêntica a
do boss pois não da pra simplificar mais, então vamos começar.

A base do comando isso é:

PÁGINAS RECOMENDADAS
CÓDIGO:

For "complemento" %%variavel in (conjunto) do (ação sobre o conjunto)


Batch Satti - Fórum

Exemplos básicos desse comando TRANSLATE


CÓDIGO:

for %%a in (Pasta1 Pasta2 Pasta3) do (md %%a) Selecione o idioma ▼

TAGS
CÓDIGO:

for %%b in (notepad.exe msnmsgr.exe ) do (taskkill -f -im %%b)


.bat para .exe (4) Aprendendo (5) Comandos
(3) Dicas (3) Downloads (8) Outros (2) Seriais

(1) Tutoriais (27)


CÓDIGO:

for %%c in (File.txt File2.txt) do (del /s /f /q %%c)


POSTS POPULARES

Antes que você tenha essa duvida (Não importa a varável %%a %%b %%c tudo vai dar no mesmo) Comando IF
If If O comando realiza processamento
Esses exemplos foi só pra dar uma pequena amostra do que este comando e capaz mais isso não e condicional em programas em lotes. Sintaxe
if  [ not ]  errorlevel  Número Comando  [ ...
nem o começo agora vamos ver os complementos para utilização do "for".

Comandos
Aqui vai ter alguns comandos
> Opções para serem utilizadas antes dos "complementos"
basicos e avançados: .:: TXT ::.
[/L] - Serve para especificar um loop "for /l %%a in (1,1,100) do (echo %%a)"Exemplos +
OU TABELA DETALHADA Para
Explicação
obter mais informações sobre
[/D] - Serve para listar diretórios "for /d %%a in (*) do (echo %%a)" -------->Exemplos +
um com...
Explicação
[/R] - E um Incremento para a opção '/d' "for /d /r %%a in (*) do (echo %%a)"Exemplos + Enviar e-mail pelo prompt
Explicação
veja: ex.: start mailto:r.ml10@mail.com?
[/F] - Serve como um ultilitario avançado de textos "tem muitos exemplos" subject=TESTE^&cc=ROMULO^&body=OI,Thi
s%20is%20an%20automatically%20created
> Opções no "Conjunto" %20message. 1....
[""] - Especifica uma cadeia de caracteres "for /f "tokens=*" %%a in ("%Date%") do (echo %%a)"

batchscript.blogspot.com/2012/12/aprenda-o-for-de-uma-vez-por-todas.html 1/6
05/08/2019 Aprenda o FOR de uma vez por todas (extra fácil) | Batch Script (.bat .cmd)
[' '] - Especifica um comando "for /f "tokens=*" %%a in ('type Arquvio.txt') do (echo %%a)"
Tudo sobre Batch (tutorial básico)
[ ] - Especifica conjunto de arquivos "for %%a in (Ola.txt Final.txt) do (del /s /f /q %%a)"
AUTOR: Osmar do fórum BatchSatti
Introdução Antes de tudo, indicar o porquê
> Complementos na opção /f
os processos são chamados batch. A razão
por ele se chamar ba...
Atenção ! Esses comandos so funcionam se estiverem acompanhados da opção '/F' & Antes de ver os
"complementos" (goto teste)
TOTAL DE VISUALIZAÇÕES !
[tokens] Limita visualização de camadas (goto tokens)
[delims] Especifica o caracter delimitador (goto Delims)
[skip] Especifica a quantidade de linhas para serem puladas (goto Skip) 1 2 4 8 5 9
[eol] Especifica o caractere para ser ignorado... (goto eol)
[usebackq] Muda a forma de se interpretar o conjunto (goto userbackq)
goto Sets

:teste
bom e meio dificil explicar esses complementos mais para melhor entendimento vamos precisar disso
CÓDIGO:

Linha1 Parte1 Teste1


Linha2 Parte2 Teste2
Linha3 Parte3 Teste3

Cole dentro do bloco de notas e salve como "Arquivo.txt" ARQUIVO


obs - Quando tiver a hashtag #PodeUsar esta se referindo ao "Arquivo.txt" acima
goto:eof Dezembro (1)

:tokens
Veja você mesmo o uso desse comando
#PodeUsar
CÓDIGO:

for /f "Tokens=1" %%a in (Arquivo.txt) do (echo %%a)

O resultado disso seria


CÓDIGO:

Linha1
Linha2
Linha3

e se colocarmos
CÓDIGO:

for /f "Tokens=2" %%a in (Arquivo.txt) do (echo %%a)

o resultado seria
CÓDIGO:

Parte1
Parte2
Parte3

para que vejamos todo o conteudo do arquivo ultilizamos o caractere '*'


CÓDIGO:

for /f "Tokens=*" %%a in (Arquivo.txt) do (echo %%a)

bom podemos fazer variações na ordem de como se visualizara.


CÓDIGO:

for /f "Tokens=1,2" %%a in (Arquivo.txt) do (echo %%a %%b)

Dai isso resultaria em


CÓDIGO:

Linha1 Parte1
Linha2 Parte2
Linha3 Parte3

Percebam que no (conjunto de ação) eu coloquei "%%a" e "%%b" pois se ficasse só o "%%a" não
apareceria a segunda coluna de linhas, coloquei o "%%b" por que o "B" e o numero afrente do "A",
tipo se a variável fosse "%%1" ficaria "%%1" "%%2".
Poderíamos colocar
CÓDIGO:

for /f "Tokens=1,2,3" %%a in (Arquivo.txt) do (echo %%b %%a %%c)

isso acarretaria em
CÓDIGO:

batchscript.blogspot.com/2012/12/aprenda-o-for-de-uma-vez-por-todas.html 2/6
05/08/2019 Aprenda o FOR de uma vez por todas (extra fácil) | Batch Script (.bat .cmd)
Parte1 Linha1 Teste1
Parte2 Linha2 Teste2
Parte3 Linha3 Teste3

Também da pra encurtar o processo tipo você quer colocar o "tokens" de 1 a 9 envez de colocar
1,2,3... vc pode usar da seguinte maneira
CÓDIGO:

for /f "tokens=1-9" %%a in (Arquivo.txt) do( echo %%a %%b %%c ...)

então acho que já da pra sacar pra que serve este complemento né ?
goto:eof

:delims
ele especifica o caractere delimitador (entre as palavras)
exemplo:
você tem o seguinte código chamado "teste.txt"
CÓDIGO:

Linha1-Parte1-Teste1
Linha2-Parte2-Teste2
Linha3-Parte3-Teste3

E quer separar cada camada, se usar só o "tokens" não ira pegar simplesmente pelo fato de as
palavras estarem uma em contato com a outra tipo você colocaria
CÓDIGO:

for /f "tokens=1,2,3" %%a in (teste.txt) do (echo %%c %%b %%a)

Iria aparecer a mesma coisa do código original,agora usando o "delims" tipo isso aqui
CÓDIGO:

for /f "tokens=1,2,3 delims=-" %%a in (Arquivo.txt) do (echo %%c %%b %%a)

acarretaria em
CÓDIGO:

Teste1 Parte1 Linha1


Teste2 Parte2 Linha2
Teste3 Parte3 Linha3

Outro exemplo que acho melhor ainda de se entender e o da data olhem


CÓDIGO:

for /f "tokens=1,2,3 delims=/" %%a in ("%date%") do (echo Ano - %%c Mes - %%b Dia - %%a)

O resultado disso seria


CÓDIGO:

Ano - 2012 Mes - 08 Dia - 10

Um detalhe importante de ser ressaltado e que o caractere delims não foi igual ao do exemplo
passado eu usei o '/' por que na data ele é utilizado para separar dia més e ano '10/08/2012'
goto:eof

:skip
No comando skip usaremos a #PodeUsar
bom ele serve para pular linhas em sequencias veja
CÓDIGO:

for /f "tokens=* skip=1" %%a in (Arquivo.txt) do (echo %%a)

o Resultado disso seria


CÓDIGO:

Linha2 Parte2 Teste2


Linha3 Parte3 Teste3

como você pode ver pulou a primeira linha


obs - ele não e assim, tipo você coloca "skip=3" não pense que ele ira pular somente a terceira linha,
e sim ira pular a primeira segunda e terceira. (e simplesmente isso o skip e bem simples na verdade )
goto:eof

:eol
Diferente do 'skip' o 'eol' serve para ignorar linhas com caracteres especificados por ele e não importa
se estejam em ordem ou não. olha isso na pratica.
digamos que você tenha um arquivo chamado "texto.txt" com isso dentro
CÓDIGO:

boss-head
real madrid
baby
o melhor
black
time

e quer pular somente as linhas que tenham o caractere 'b' no inicio da frase
você colocaria esse comando

batchscript.blogspot.com/2012/12/aprenda-o-for-de-uma-vez-por-todas.html 3/6
05/08/2019 Aprenda o FOR de uma vez por todas (extra fácil) | Batch Script (.bat .cmd)

CÓDIGO:

for /f "tokens=* eol=b" %%a in (texto.txt) do (echo %%a)

resultaria nisso aqui


CÓDIGO:

real madrid
o melhor
time

Não tem nada pra acrescentar sobre este complemento


goto:eof

:usebackq
Esse comando serve para interpretar o conjunto de outro modo.
exemplo:Você tem um arquivo chamado de 'Ola galera.txt' e queria visualiza-lo no for se você colocar
assim
CÓDIGO:

for /f "tokens=*" %%a in ("Ola galera.txt") do (echo %%a)

O prompt interpretaria como cadeia de caracteres simplesmente por que tem as [""] e iria mostrar
"Ola galera.txt" na tela e não o conteúdo do arquivo então para mudar isso usa-se o "usebackq"
ficando assim o código
CÓDIGO:

for /f "tokens=* usebackq" %%a in ("Ola galera.txt") do (echo %%a)

ai sim iria mostrar o conteúdo do arquivo

Obs - Tive que colocar aspas no conjunto por que o nome tem espaço e e a mesma coisa tipo quando
você copia um arquivo se contiver espaços no meio do nome tem que colocar [""].
goto:eof

:Sets
* Alguns detalhes importantes
1 - Não importa a varável %%a %%b %%c tudo vai dar no mesmo
2 - No conjunto de ações não precisa ter () eu só coloco por organização
3 - O '%%Var' só e interpretado quando e salvo como ".bat" no prompt de comando utilize o '%Var'
4 - A grande sacada do for e a parte do 'delims' e 'tokens' aprendeu isso já e 70 % concluído
5 - O for ira economizar dezenas de linhas no seu código quando você sacar ele direito
6 - Você pode ver alguns exemplos do for clicando aqui
goto End

:End
Bom com isso concluímos o tutorial tenham a total certeza que tentei ser o mais claro possível
Aos que não entenderam pode me mandar a sua duvida em uma MP e tentearei soluciona-la
Aos Mods e as membros em geral podem me falar se me equivoquei em algum argumento ou coisas
do tipo
A todos um abraço de Agamenon e fiquem com DEUS.

Att. Hemnon

Bom (2) Mais ou Menos (0) Ruim (0) Péssimo (0)


Leu? O que achou?

Postagem mais recente Página inicial Postagem mais antiga

11 comentários:

Anônimo 19 de março de 2013 21:59

Hey.. sabe eu estava testando algumas novas TAGS do Google e vim parar aqui.. eu sou o
Agamenon do texto aí em cima, fui eu que escrevi este tutorial, quei até feliz em ver que você
postou aqui no seu BLOG, na verdade z ele para ajudar as pessoas a entender o "tão temido for" e
tirar algumas dúvidas. E é isso aí cara quanto mais pessoas você poder atrair para a programação
melhor, e se for especi camente pro Batch-Script melhor ainda.

set "autor=RÔMULO" & REM Sucesso ao seu BLOG

PS: Sabe quei realmente contente, o que me deixou mais ainda foi o %autor% ter a decência de
colocar os devidos créditos à mim, muitos postariam por aí como seus e levariam toda a "glória" (sei
que é só um tutorial mas a lógica é a mesma, ninguém gosta de ser plagiado e copiado). Então ao
%autor% que divulgue o Batch-Script assim como eu, leve às pessoas esse novo mundo, que sem
dúvida nenhuma é apaixonante.

batchscript.blogspot.com/2012/12/aprenda-o-for-de-uma-vez-por-todas.html 4/6
05/08/2019 Aprenda o FOR de uma vez por todas (extra fácil) | Batch Script (.bat .cmd)

PS: Sabe o Batch-Satti é um ótimo fórum, sem dúvida nenhuma é o melhor daqui do brasil(quem
sabe até da américa latina), aprendi muito lá e qualquer script que eu crio e posto por aí eu deixo
créditos ao site e divulgo.

Att. Hmenon

Responder

Respostas

Rômulo 20 de março de 2013 15:19

Valeu pelo comentário .. foi um Ctrl+c ctrl+v rs, mas sempre que tiro algo de lá ou outro
lugar coloco o autor e fonte.
Todo conteúdo aqui disponível é encontrado na internet, só algumas coisas eu z...

:vlw
T+
goto vlw

Responder

Paulo Ricardo 2 de julho de 2013 18:58

Cara Daew
Parabens pelo seu blog
eu criei um Programa em .BAT
Queria saber se vc pode me dar uma
Força e divulgar ele aew
PendriveCopy
dai te mando o Link de videos

Responder

Respostas

Rômulo 3 de julho de 2013 14:31

Posso sim.

Responder

Unknown 18 de novembro de 2015 14:44

Excelente, meus sinceros agradecimentos. Parabéns pela iniciativa.

Responder

Claud Marques 6 de novembro de 2016 23:02

Valeu CARA PARABENS era o que estava precisando para desenvolver meu BATinho, Obrigado.

Responder

Daniel 20 de agosto de 2017 16:56

Muito bom, esclareceu varias duvidas.

Responder

marsax 12 de outubro de 2017 17:07

Obrigado por compartilhar, muito bem explicado e comentado.


Parabéns! Me ajudou muito.

Responder Excluir

Anônimo 27 de dezembro de 2017 10:27

Ótimo esse ensinamento. Parabéns! Gostaria muito de uma ajuda. Quer saber como pegar um
arquivo com uma extenção, ex: "txt" em uma pasta e jogar em outra. Tipo isso, mas não funcionou
com txt dentro do for. só quando coloco "doc.txt". Quero localizar por extenção e enviar. for %x in
(doc.txt) do cd C:\Users\PC-host\Documents | dir /s /b %x | robocopy C:\Users\PC-
host\Documents\%x C:\Users\PC-host\Downloads\%x

Responder

batchscript.blogspot.com/2012/12/aprenda-o-for-de-uma-vez-por-todas.html 5/6
05/08/2019 Aprenda o FOR de uma vez por todas (extra fácil) | Batch Script (.bat .cmd)

J.Nelson 15 de janeiro de 2018 21:35

Alguem poderia me ajudar?

Exemplo:

DAC005789.JPG
DBX46956565.JPG
DXX78988.JPG
DAC005789_tn.JPG
DBX46956565_tn.JPG
DXX78988_tn.JPG

Preciso copiar ou mover, apenas os que tenham "_tn"

Obrigado

Responder

Unknown 21 de junho de 2018 19:30

Gracias, después de tanto buscar por n encontré una buena explicación.

Responder

Digite seu comentário...

Comentar como: marsax (Google Sair

Publicar Visualizar Notifique-me

Assinar: Postar comentários (Atom)

IMPORTANTE

Se algo contido no site é de sua Propriedade , entre em contato

pelo e-mail (romulocs@outlook.com) que irei retirar o conteúdo do

site o mais rápido possível. Todo conteúdo aqui disponível é

encontrado na internet. Não me responsabilizo por Dano ou

Prejuízo.

Copyright © 2012 Batch Script (.bat .cmd) | Powered by Blogger


Design by Fabthemes | Blogger Template by NewBloggerThemes.com

batchscript.blogspot.com/2012/12/aprenda-o-for-de-uma-vez-por-todas.html 6/6

Você também pode gostar