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 atrás, 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 é:
Exemplos básicos desse comando
Antes que você tenha essa duvida (Não importa a variável %%a %%b %%c tudo vai dar no mesmo)
Esses exemplos foi só pra dar uma pequena amostra do que este comando e capaz mais isso não e nem o começo agora vamos ver os complementos para utilização do "for".
> Opções para serem utilizadas antes dos "complementos"
[/L] - Serve para especificar um loop "for /l %%a in (1,1,100) do (echo %%a)"Exemplos + Explicação
[/D] - Serve para listar diretórios "for /d %%a in (*) do (echo %%a)" -------->Exemplos + Explicação
[/R] - E um Incremento para a opção '/d' "for /d /r %%a in (*) do (echo %%a)"Exemplos + Explicação
[/F] - Serve como um ultilitario avançado de textos "tem muitos exemplos"
> Opções no "Conjunto"
[""] - Especifica uma cadeia de caracteres "for /f "tokens=*" %%a in ("%Date%") do (echo %%a)"
[' '] - Especifica um comando "for /f "tokens=*" %%a in ('type Arquvio.txt') do (echo %%a)"
[ ] - Especifica conjunto de arquivos "for %%a in (Ola.txt Final.txt) do (del /s /f /q %%a)"
> Complementos na opção /f
Atenção ! Esses comandos so funcionam se estiverem acompanhados da opção '/F' & Antes de ver os "complementos" (goto teste)
[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)
[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
obs - Quando tiver a hashtag #PodeUsar esta se referindo ao "Arquivo.txt" acima
goto:eof
:tokens
Veja você mesmo o uso desse comando
#PodeUsar
O resultado disso seria
e se colocarmos
o resultado seria
para que vejamos todo o conteudo do arquivo ultilizamos o caractere '*'
bom podemos fazer variações na ordem de como se visualizara.
Poderíamos colocar
isso acarretaria em
goto:eof
:delims
ele especifica o caractere delimitador (entre as palavras)
exemplo:
você tem o seguinte código chamado "teste.txt"
goto:eof
:skip
No comando skip usaremos a #PodeUsar
bom ele serve para pular linhas em sequencias veja
o Resultado disso seria
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
você colocaria esse comando
resultaria nisso aqui
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
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.
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 é:
- CÓDIGO:
For "complemento" %%variavel in (conjunto) do (ação sobre o conjunto)
Exemplos básicos desse comando
- CÓDIGO:
for %%a in (Pasta1 Pasta2 Pasta3) do (md %%a)
- CÓDIGO:
for %%b in (notepad.exe msnmsgr.exe ) do (taskkill -f -im %%b)
- CÓDIGO:
for %%c in (File.txt File2.txt) do (del /s /f /q %%c)
Antes que você tenha essa duvida (Não importa a variável %%a %%b %%c tudo vai dar no mesmo)
Esses exemplos foi só pra dar uma pequena amostra do que este comando e capaz mais isso não e nem o começo agora vamos ver os complementos para utilização do "for".
> Opções para serem utilizadas antes dos "complementos"
[/L] - Serve para especificar um loop "for /l %%a in (1,1,100) do (echo %%a)"Exemplos + Explicação
[/D] - Serve para listar diretórios "for /d %%a in (*) do (echo %%a)" -------->Exemplos + Explicação
[/R] - E um Incremento para a opção '/d' "for /d /r %%a in (*) do (echo %%a)"Exemplos + Explicação
[/F] - Serve como um ultilitario avançado de textos "tem muitos exemplos"
> Opções no "Conjunto"
[""] - Especifica uma cadeia de caracteres "for /f "tokens=*" %%a in ("%Date%") do (echo %%a)"
[' '] - Especifica um comando "for /f "tokens=*" %%a in ('type Arquvio.txt') do (echo %%a)"
[ ] - Especifica conjunto de arquivos "for %%a in (Ola.txt Final.txt) do (del /s /f /q %%a)"
> Complementos na opção /f
Atenção ! Esses comandos so funcionam se estiverem acompanhados da opção '/F' & Antes de ver os "complementos" (goto teste)
[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)
[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
obs - Quando tiver a hashtag #PodeUsar esta se referindo ao "Arquivo.txt" acima
goto:eof
: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)
- CÓDIGO:
Linha1 Parte1
Linha2 Parte2
Linha3 Parte3
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:
Parte1 Linha1 Teste1
Parte2 Linha2 Teste2
Parte3 Linha3 Teste3
- CÓDIGO:
for /f "tokens=1-9" %%a in (Arquivo.txt) do( echo %%a %%b %%c ...)
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
- CÓDIGO:
for /f "tokens=1,2,3" %%a in (teste.txt) do (echo %%c %%b %%a)
- CÓDIGO:
for /f "tokens=1,2,3 delims=-" %%a in (Arquivo.txt) do (echo %%c %%b %%a)
- CÓDIGO:
Teste1 Parte1 Linha1
Teste2 Parte2 Linha2
Teste3 Parte3 Linha3
- CÓDIGO:
for /f "tokens=1,2,3 delims=/" %%a in ("%date%") do (echo Ano - %%c Mes - %%b Dia - %%a)
- CÓDIGO:
Ano - 2012 Mes - 08 Dia - 10
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
você colocaria esse comando
- CÓDIGO:
for /f "tokens=* eol=b" %%a in (texto.txt) do (echo %%a)
resultaria nisso aqui
- CÓDIGO:
real madrid
o melhor
time
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)
- CÓDIGO:
for /f "tokens=* usebackq" %%a in ("Ola galera.txt") do (echo %%a)
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.
Autor: Hmenon do fórum Batch Satti
Retirado de :http://batchscript.blogspot.com.br/2012/12/aprenda-o-for-de-uma-vez-por-todas.html
Em : 02/10/2017
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.