Você está na página 1de 3

C:\Users\Marcelo>for /? Executa um comando especificado para cada arquivo em um conjunto de arquivos.

FOR %varivel IN (conjunto) DO comando [parmetros] %varivel Especifica um parmetro substituvel formado por uma s letra. (conjunto) Especifica um conjunto de um ou mais arquivos. Podem-se usar curingas. comando Especifica o comando a ser executado em cada arquivo. parmetros Especifica os parmetros ou opes do comando especificado. Para usar o comando FOR em um programa em lotes, especifique %%varivel em vez de %varivel. Diferenciam-se maisculas de minsculas nos nomes das variveis, de forma que, por exemplo, %i diferente de %I. Se as extenses de comando estiverem ativadas, haver suporte para os seguintes formatos adicionais do comando FOR: FOR /D %varivel IN (conjunto) DO comando [parmetros] Se o conjunto contiver curingas, ele corresponder aos nomes de pasta em vez de nomes de arquivo. FOR /R [[unidade:]caminho] %varivel IN (conjunto) DO comando [parmetros] Orienta a rvore de pastas com raiz na [unidade:]caminho, executando a instruo FOR em cada pasta da rvore. Se no houver especificao de pasta aps /R, a pasta atual ser usada. Se o conjunto for apenas um nico caractere de ponto (.), ele enumerar apenas a rvore de pastas. FOR /L %varivel IN (incio,incremento,fim) DO comando [parmetros] O conjunto uma seqncia de nmeros de incio ao fim, por quantidade de incremento. Portanto, (1,1,5) geraria a seqncia 1 2 3 4 5 e (5,-1,1) geraria a seqncia (5 4 3 2 1) FOR /F ["opes"] %varivel IN (conjunto_de_arquivos) DO comando [parmetros] FOR /F ["opes"] %varivel IN ("cadeia_de_caracteres") DO comando [parmetros] FOR /F ["opes"] %varivel IN ('comando') DO comando [parmetros] ou, se a opo usebackq estiver presente: FOR /F ["opes"] %varivel IN (conjunto_de_arquivos) DO comando [parmetros] FOR /F ["opes"] %varivel IN ('cadeia_de_caracteres') DO comando [parmetros] FOR /F ["opes"] %varivel IN (`comando`) DO comando [parmetros] conjunto de nomes de arquivo um ou mais nomes de arquivos. Cada arquivo aberto, lido e processado antes de se passar para o prximo arquivo em conjunto de nomes de arquivo. O processamento consiste em ler o arquivo, quebr-lo em linhas individuais de texto e analisar cada linha para zero ou mais tokens. O corpo de for loop chamado em seguida com o conjunto de valores de varivel para a(s) cadeia(s) de caracteres de token encontrada(s). Por padro, /F transfere o primeiro token separado por espao de cada linha de cada arquivo. As linhas em branco so ignoradas. possvel substituir o comportamento

de anlise padro especificando os parmetros "opes" opcionais. Essa uma cadeia de caracteres entre aspas que contm uma ou mais palavras-chave para especificar diferentes opes de anlise. As palavras-chave so: eol=c - especifica caractere de comentrio de fim de linha (somente um) skip=n - especifica o nmero de linhas a serem ignorados no incio do arquivo. delims=xxx - especifica um conjunto de delimitadores. Substitui o conjunto de delimitadores padro de espao e tabulao. tokens=x,y,m-n - especifica quais tokens de cada linha sero transferidos para o corpo de cada iterao. Isso alocar nomes de variveis adicionais. O formato m-n um intervalo, especificando do emsimo at o ensimo token. Se o ltimo caractere na cadeia de caracteres tokens= for um asterisco, uma varivel adicional ser alocada e receber o texto restante na linha aps o ltimo token analisado. usebackq - especifica que a nova semntica est em vigor, onde uma cadeia de caracteres entre aspas simples executada como um comando e uma cadeia de caracteres entre aspas simples um comando de cadeia de caracteres literal e permite o uso de aspas para citar nomes de arquivos em um conjunto de nomes de arquivo. Alguns exemplos podem ajudar: FOR /F "eol=; tokens=2,3* delims=, " %i in (meu_arquivo.txt) do echo %i %j %k analisaria cada linha em meu_arquivo.txt, ignorando linhas que comeassem com um ponto-e-vrgula, passando o segundo e terceiro token de cada linha para o corpo do comando for, com tokens delimitados por vrgulas e/ou espaos. Observe que comandos dentro do corpo do for fazem referncia a %i para obter o segundo token, %j para obter o terceiro token e %k para obter todos os tokens restantes aps o terceiro. No caso de nomes de arquivos contendo espaos, necessrio coloc-los entre aspas. Para usar aspas dessa forma, tambm necessrio usar a opo usebackq ou as aspas sero interpretadas como se estivessem definindo uma cadeia de caracteres literal a ser analisada. %i declarado explicitamente na instruo for e %j e %k so declarados implicitamente atravs da opo tokens=. possvel especificar at 26 tokens atravs da linha tokens=, contanto que isso no origine uma tentativa de declarar uma varivel mais alta do que a letra 'z' ou 'Z'. Lembre-se de que as variveis FOR so formadas por uma s letra, diferenciam maisculas e minsculas, so globais e no possvel haver mais de 52 ativas no total em momento algum. Tambm possvel usar a lgica de anlise de FOR /F em uma cadeia de caracteres imediata, ao transformar o conjunto de nomes de arquivo dentro de parntesis em uma cadeia de caracteres entre aspas simples. A cadeia de caracteres ser tratada como uma nica linha de entrada de um ar quivo e ser analisada.

Finalmente, possvel usar o comando FOR /F para analisar a sada de um comando. Para isso, transforme o conjunto de nomes de arquivo dentro dos parnteses em uma cadeia de caracteres entre aspas simples. A cadeia de cara cteres ser tratada como uma linha de comando, que ser transferida para um CMD.EXE filho e a sada ser capturada na memria e analisada como se fosse um arquivo. Assim, o seguinte exemplo: FOR /F "usebackq delims==" %i IN (`conjunto`) DO @echo %i enumeraria os nomes de variveis de ambiente no ambiente atual. Alm disso, a substituio das referncias da varivel FOR foi aprimorada. Agora possvel usar a seguinte sintaxe opcional: %~I %~fI %~dI %~pI %~nI %~xI %~sI %~aI %~tI %~zI %~$PATH:I expande %I removendo quaisquer aspas em volta (") expande %I para um nome de caminho totalmente qualificado expande %I para somente uma letra de unidade expande %I para somente um caminho expande %I para somente um nome de arquivo expande %I para somente uma extenso de arquivo o caminho expandido contm somente nomes curtos expande %I para atributos de arquivo do arquivo expande %I para data/hora do arquivo expande %I para o tamanho do arquivo pesquisa as pastas listadas na varivel de ambiente PATH e expande %I para o nome totalmente qualificado da primeira pasta encontrada. Se o nome da varivel de ambiente no estiver definido ou o arquivo no for encontrado pela pesquisa, esse modificador expandir para a cadeia de caracteres vazia

Os modificadores podem ser combinados para obter resultados compostos: %~dpI %~nxI %~fsI - expande %I para somente uma letra de unidade e caminho - expande %I para somente um nome de arquivo e extenso - expande %I para somente um nome de caminho completo com nomes curtos %~dp$PATH:I - pesquisa as pastas listadas na varivel de ambiente PATH para %I e expande para a letra de unidade e caminho da primeira encontrada. %~ftzaI - expande %I para uma linha de sada parecida com DIR Nos exemplos acima, %I e PATH podem ser substitudos por outros valores vlidos. A sintaxe %~ terminada por um nome de varivel FOR vlido. O uso de nomes de variveis em maisculas como %I facilita a leitura e evita confuso com os modificadores, que no fazem diferenciao entre maisculas e minsculas.