Académique Documents
Professionnel Documents
Culture Documents
A razo por ele se chamar bat porque no ms-dos requere-se como mximo trs letras na extenso e por tanto os arquivos tem a extenso .bat O que se pode fazer com eles? Pode fazer de forma automatizada tudo aquilo que se pode fazer no console do msdos. Como faa um arquivo bat? Coloque em texto. Apenas decidir onde colocar, pode coloc-lo no bloco de notas ou algum editor ascii. Ao guard-los devem ter a notao de nomes prprios do ms-dos. Este nome com no mximo 8 letras (espao e \ no so permitidos) logo um ponto e a extenso que neste caso obrigatoriamente bat. Como posso selecionar vrios arquivos; Para ele tem que se levar em conta os nomes dos arquivos, devem cumprir a notao do ms-dos (8 letras sem espao como mximo, logo um ponto e trs letras como mximo da extenso. Pode se utilizar os comandos; *Equivale a vrios caracteres. ?Equivale a apenas um caracter. Exemplos comando *.doc -> selecionar todos os arquivos que tenham a extenso doc. comando a*.doc -> selecionar todos os arquivos que comecem por a e tenha a extenso doc. comando a*b.doc -> selecionar todos os arquivos que comecem por a, acabem por b e tenham a extenso doc. comando *mao*.doc -> selecionar todos os arquivos que contenham mao e tenham a extenso doc. comando c?mao.doc -> selecionar todos os arquivos que contenham c, logo um carater qualquer e logo mao. Deve ter tambem a extenso doc. comando c?b*.* -> selecionar todos os arquivos que comecem por c, tenham um caracter qualquer, logo um b e qualquer extenso. comando *.b?t -> selecionar todos os arquivos que tenham a extenso que comece por b, logo um caracter qualquer e logo um t. Quem so as trajetrias e os patchs; A trajetria o nome completo de um arquivo e indica a situao exata de um arquivo e seu nome. Se digo que o arquivo se chama arquivo.txt indico seu nome, mas nada mais. Se supoe que se encontra no diretrio atual. Se digo c:\arquivo.txt indico que o arquivo que me interesse se chama arquivo.txt e se encontra no diretrio riz de C.
Dado que no ms-dos nao se admite nomes grandes ( mais de 8 letras ) nem espao, quando quero utilizar o nome do windows em ms-dos devo saber que este ser reconvertido em seu nome curto. Este se obtem os seis primeiros carcteres vlidos do nome, logo o sinal ~ (alt 126) e logo um nmero. Que comandos podemos utilizar; Comandos; Aqui esto alguns comandos utilizados em batch. ECHO [mensagem ou varivel] Escreve na tela ECHO OFF Desativa as informaes e confirmaes feitas pelo sistema. Como C:>, Tem certeza que deseja fazer tal?. ECHO ON Ativa as informaes e confirmaes do sistema. ECHO. Pula uma linha SET variavel=valor Cria ou modifica uma varivel (espao reservado temporariamente na memria RAM para guardar algumas informaes nmericas, de caractres, positivo/negativo entre outros. No podem ter acento e devem comear com letra). Para chamar a varivel posteriormente basta coloca-la entre %. Por exemplo: SET nome=Storm ECHO O nome dele %nome% :nomedolink Nomeia um ponto do arquivo de lote permitindo avanar ou voltar a execuo apartir daquele ponto. CLS Esse comando limpa toda a tela. CLear Screen. @[Comando] Desativa as informaes e confirmaes feitas pelo sistema apenas para esta linha.
CODE IF [condio] ( [ao] ) ELSE ( [ao2] ) Esse um comando condicional. Se condio faa ao, seno faa ao2. Por exemplo: CODE @ECHO OFF SET nome=Storm IF %nome%==Storm ( ECHO Ola Storm! ) ELSE ( ECHO Ola %nome%! ) GOTO [ponto] Avana ou volta a execuo para um ponto do arquivo de lote. FOR /L %%variavel IN (inicio,incremento,fim) DO comando [parmetro] Repete um comando varias vezes fazendo incrementaes at o fim ser atingido. /L, uma opo do comando FOR que faz as incrementaes. %%variavel, o nome da varivel que vai ser incrementada. inicio, o valor de inicio da varivel que ser incrementada. incremento, nmero que ser somado a cada incrementao. fim, a repetio ir acabar quando o valor da varivel atingir este valor. comando, um comando que ser repetido. [parmetro], o parmetro do comando que ser repetido. Por exemplo: CODE @ECHO OFF FOR /L %%a IN (1,1,5) DO ECHO O valor de A %%a PAUSE Faz uma pausa e s volta quando o usurio apertar alguma tecla do teclado. REM [comentrio] Este comando no faz absolutamente nada. Ele utilizado para inserir comentarios nos arquivos.
CODE PROMPT ->Serve para abrir o prompt do msdos. O mais habitual $p$g que corresponde a; $p = mostrar trajeto atual $g = mostrar o separador > $l = mostrar o separador < $b = mostrar o separador | $q = mostrar o separador = $$ = mostrar o sinal $ $t = mostrar a hora $d = mostrar a data $v = mostrar a verso do sistema $n = mostrar unidade atual $h = retroceso. Apaga o caracter previo $e = esc. Mostra o sinal corresponde a asci 27 Por isso se colocarmos prompt $p$g o cursor mostra a tragetria de onde estamos e logo o separador. possvel o texto ( por exemplo prompt Meu_nome $p$g DATE Ver/por a data do sistema TIME Ver/por a hora do sistema VER[/font] Verso do sistema [font=Verdana]VOL unidade Volume da unidade especificada MEM parametros Mostra a memoria usada e livre no sistema /p -> mostra por programas /d -> por programas econtroladores /c -> classifica por tamanho Comandos de manejos de arquivos COPY origem destino Serve para copiar arquivos de um lugar a outro. A origem deve ser um trajeto completo de onde esto os arquivos a copiar. Se se omite se entende no diretrio atual. O destino deve ser uma trajetria completa de onde desejar o/os arquivo(s) copy meuarquivo.txt c:\ (copi-lo do diretorio raz de C) copy meuarquivo.txt c:\meuarq.txt (copi-lo e poder mudar o nome a meuarq.txt) copy *.txt a:\ (copiar todos os arquivos que tenham a extenso txt a unidade A) copy *.txt c:\meusdo~1 (copiar todos os que tenham a extenso txt ao diretrio Meus documentos ( cujo o nome curto meusdoc~1). DEL arquivo(s) Apagar arquivos selecionados
del lol.txt (apaga o arquivo lol.txt no diretrio atual) del c:\lol.txt (apaga o arquivo lol.txt que se encontra no c:\) del arquiv~1\*.*(apaga os arquivos que se encontram no diretrio Arquivos de programa cujo nome curto arquiv~1( no se apaga as subpastas) DELTREE arquivo(s) -y Apaga a raz especificada ( se um arquivo coloca o arquivo, se uma pasta coloca a pasta com todas as subpastas que incluam). Com o parametro -y no pergunta cada vez Este comando na realidade no um comando sim uma utilidade includa no ms-dos. DIR trajeto Mostra uma lista do contedo do diretrio especificado no trajeto. Se no especificado nada, se entende o atual. Se coloca como parametro /W mostra uma lista resumida Se coloca como parametro /P mostra uma lista utilizando o filtro more. ATTRIB arquivo(s)-> Mostra os arquivos dos diretrios indicados e nesse caso permite mud-los. os atributos so: H -> oculto. Se ativa com +h e desativa com -h R -> Leitura. Apenas leitura com +r, normal com -r S -> Sistema. Se ativa com +s e desativa com -s A -> Modificado. Para copias de segurana incrementadas. +a indica modificado e -a indica no modificado. Attrib arquivostorm.txt (mostrar os atributos do arquivostorm.txt) attrib *.exe +r +r +s (coloca todos os arquivos com extenso exe como ocultos, do sistema e a apenas l) RENAME o REN nome1 nome2 Mudar o nome do arquivo Ren nome1.txt nome2.txt TYPE arquiivo Mostra por pasta o contedo do arquivo; type nomedoarquivo.txt * Todos aqui listados so comandos de MS-DOS que foram criados especificamente para arquivos de lote. Se voc 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 tambm entram nesta lista incluindo chamadas de outros programas para este sistema. Comandos para programao EDIT arquivo Editor de textos utilizado para editar scripts e arquivos de texto. DEBUG arquivo parametros de arquivo Inicia o desassembler com o programa indicado que se colocam por parametros.
CHOICE texto opes Se utiliza em programas bat para dar elegir a um usuario entre um conjunto de opes A resposta se devolve mediante a varivel errorlevel choice Eleja uma opao snc CODE if errorlevel 1 goto if errorlevel 2 goto if errorlevel 3 goto Este exemplo mostra a lateral eleja uma opo e da a elejer s (sim), n (no) o C (continuar) por exemplo as tres seguintes linhas especificam aonde deve sair o fluxo do programa seguido da tecla pulsada. Variveis A condio DEFINED verifica se uma varivel j foi definida. Por exemplo, se a varivel x estiver definida, ento o resultado ser positivo, seno negativo. Veja como ficaria: CODE @ECHO OFF IF DEFINED x ( ECHO Positivo ) ELSE ( ECHO Negativo ) Arquivos A condio EXIST verifica se existe algum arquivo. Por exemplo, se existir o arquivo exemplo.bat o resultado ser positivo, seno negativo. Veja como ficaria: CODE @ECHO OFF IF EXIST exemplo.bat ( ECHO Positivo ) ELSE ( ECHO Negativo ) Esta condio no para por a. No sistema MS-DOS, voc pode fazer uma pesquisa na pasta em que est por um arquivo digitando parte dele. Voc usa * para indicar a(s) parte(s) que voc no sabe. Por exemplo, se existir algum arquivo com a extenso .bat na pasta atual o resultado ser positivo, seno negativo. Veja como ficaria: CODE @ECHO OFF IF EXIST *.bat (ECHO Positivo ) ELSE ( ECHO Negativo ) X igual a 6? @ECHO OFF CLS SET X=6 IF %X% == 6 GOTO ok ECHO X no igual a 6, X igua a %X% GOTO saida k
ECHO X igual a 6 :saida Na primeira linha. O @ indica que no para aparecer o comando que segue, no caso, ECHO (Comando que escreve na janela). Nesta linha, eu estou grosseiramente mandando o MS-DOS calar a boca (no falar nada sem eu mandar), pois se ECHO faz o computador falar, ECHO OFF faz o computador desligar a boca e com o @ no comeo da linha, ele nem vai informar ao usurio que est parando de falar. Na segunda linha, o comando CLS faz o MS-DOS apagar toda a tela. Na terceira linha, como j foi explicado, faz a varivel X=6. Na quarta linha, uma linha condicional. Se X for igual 6 v para ok. Na quinta linha, bivio que X no vai ser igual a 6, ento o MS-DOS vai falar X no igual a 6, X igua a [valor de x]. Na sexta linha, ele ir para o ponto saida porque o resto feito se X for igual a 6. Na stima linha, est sendo definido o ponto ok, aquele ponto citado na quarta linha. Na oitava linha, X ser igua a 6, ento o MS-DOS vai dizer X igual a 6. E na nona linha, definido o ponto-final do processamento. Que chamado na sexta linha, nada mais que isso, ento o MS-DOS entende que o batch concluiu. Faa o teste 1. Abra o Bloco de notas do Windows; 2. Copie o exemplo acima e cole nele 3. Salva-o como exemplo2.bat; 4. D dois-clicks nele observe o que acontecer; 5. Agora experimente modificar a segunda linha por SET idade=n (troque n por algum nmero); 6. Execute e veja o que acontece. Programando; Existe uma infinidade de comandos, como mostrei acima, e s usar a imaginao e podemos programar uma imensido de finalidades, basta usar a criatividade e alguns comandos, para fechar esse tutorial, vou abordar alguns cdigos feito por mim. Exemplo 1 (Bsico) -fazer um loop que pegue todos os nomes dos diretorios -dentro de cada diretorio, renomear todos os arquivos com a extenso .txt para .zip CODE @echo off rem *.txt *.zip @exit Exemplo 2 (Intermedirio/Avanado) CODE @echo off cls Echo Batch feito por Storm Echo .
Echo . Echo Comear o programa? pause Echo . Echo . Echo . Echo Este programa cria uma chave de inicializaao de um arquivo no windows atravs do menu. Echo . Echo . Echo [1] Deseja que esse arquivo se inicie no seu proximo logon? Echo [2] Deseja sair do programa? Set /p choice=Digite o numero correspodente a sua opao: if %choice%==2 goto op2 if %choice%==1 goto op1 rem Bloco de declaraao dos gotos p1 reg add hklm\Software\Microsoft\Windows\CurrentVersion\Run /v teste2 /t REG_SZ /d c:\path\batstorm.bat&goto proximo p2 exit :proximo Echo . Echo . Echo Chave criada com sucesso. Echo . Echo . Echo Agora mostrarei a chamada de um outro arquivo bat sem a interrupo do arquivo. Echo [1] Deseja chamar o arquivo batstorm.bat? Echo [2] Deseja sair do programa? Set /p choice=Digite o numero correspondente a sua opao: if %choice%==2 goto op3 if %choice%==1 goto op4 p3 call batstorm.bat&goto proximo2 p4 exit
command /c TEMP$TMP.BAT > TEMP$$MP.BAT call TEMP$$MP>BAT >nul del TEMP$?MP.BAT echo. echo A Data De Hoje : %date% echo A Hora Agora : %time% echo. set date= set time=
Combinando arquivos em um
O comando COPY do DOS pode ser usado: COPY *.TXT ALL.XXX RENAME ALL.XXX ALL.TXT ou FOR %%f IN (*.TXT) DO TYPE %%f>>ALL.XXX RENAME ALL.XXX ALL.TXT A renomeao necessria
FOR %%E IN (%RANGE%) DO IF ERRORLEVEL %ERLVL%%%E SET ERLVL=%ERLVL%%%E SET RANGE= ECHO O Errorlevel eh %ERLVL%
if exist temp.tmp del temp.tmp goto end :syntax echo Use: %0 [nome do programa] echo Exemplo: %0 mouse :end
FOR..IN..DO
O comando FOR..IN..DO pode ser usado tanto em arquivos BATch onde deve-se usar %%F (dois sinais de porcentagem e uma varivel) ou no prompt onde apenas um sinal de porcentagem necessrio, simplificadamente, o programa faz o seguinte: "Com cada um destes, faa aquilo." Como na maioria dos programas do DOS, basta pensar um pouco e voc poder fazer coisas complexas com este comando, mas em sua forma mais simples, voc poderia trocar o DIR /B por FOR %F IN (*.*) DO ECHO %F (Voc precisar trocar o %F por %%F se usado em um arquivo BATch) O %F ou %%F apenas um varivel temporria que s ativada enquanto o comando FOR..IN..DO est sendo executado, a letra usada "F" no tem nenhum significado, poderia ser qualquer outra Voc poderia por exemplo usar o comando FOR..IN..DO para rodar todos os seus programas BATch: FOR %B IN (*.BAT) DO CALL %B
CD\ DIR /B /S|FIND /i "filename.ext">FLAG.$$$ COPY /B FLAG.$$$+,, IF EXIST FLAG.$$$ ECHO filename.ext foi encontrado IF NOT EXIST FLAG.$$$ ECHO filename.ext no foi encontrado.
Compartilhe este artigo TWITTER FACEBOOK DELICIOUS DIGG STUMBLE REDDIT Autor:
Alberto
Tags:
.bat
Introduo Antes de tudo, indicar o porqu os processos so chamados batch. A razo por ele se chamar bat porque no ms-dos requere-se como mximo trs letras na extenso e por tanto os arquivos tem a extenso .bat O que se pode fazer com eles? Pode fazer de forma automatizada tudo aquilo que se pode fazer no console do ms-dos. Como faa um arquivo bat? Coloque em texto. Apenas decidir onde colocar, pode coloc-lo no bloco de notas ou algum editor ascii. Ao guard-los devem ter a notao de nomes prprios do ms-dos. Este nome com no mximo 8 letras (espao e \ no so permitidos) logo um ponto e a extenso que neste caso obrigatoriamente bat. Como posso selecionar vrios arquivos; Para ele tem que se levar em conta os nomes dos arquivos, devem cumprir a notao do ms-dos (8 letras sem espao como mximo, logo um ponto e trs letras como mximo da extenso. Pode se utilizar os comandos; *Equivale a vrios caracteres. ?Equivale a apenas um caracter. Exemplos comando *.doc -> selecionar todos os arquivos que tenham a extenso doc. comando a*.doc -> selecionar todos os arquivos que comecem por a e tenha a extenso doc. comando a*b.doc -> selecionar todos os arquivos que comecem por a, acabem por b e tenham a
extenso doc. comando *mao*.doc -> selecionar todos os arquivos que contenham mao e tenham a extenso doc. comando c?mao.doc -> selecionar todos os arquivos que contenham c, logo um carater qualquer e logo mao. Deve ter tambem a extenso doc. comando c?b*.* -> selecionar todos os arquivos que comecem por c, tenham um caracter qualquer, logo um b e qualquer extenso. comando *.b?t -> selecionar todos os arquivos que tenham a extenso que comece por b, logo um caracter qualquer e logo um t. Quem so as trajetrias e os patchs; A trajetria o nome completo de um arquivo e indica a situao exata de um arquivo e seu nome. Se digo que o arquivo se chama arquivo.txt indico seu nome, mas nada mais. Se supoe que se encontra no diretrio atual. Se digo c:\arquivo.txt indico que o arquivo que me interesse se chama arquivo.txt e se encontra no diretrio riz de C. Dado que no ms-dos nao se admite nomes grandes ( mais de 8 letras ) nem espao, quando quero utilizar o nome do windows em ms-dos devo saber que este ser reconvertido em seu nome curto. Este se obtem os seis primeiros carcteres vlidos do nome, logo o sinal ~ (alt 126) e logo um nmero. Que comandos podemos utilizar; Comandos; Aqui esto alguns comandos utilizados em batch. ECHO [mensagem ou varivel] Escreve na tela ECHO OFF Desativa as informaes e confirmaes feitas pelo sistema. Como C:>, Tem certeza que deseja fazer tal?. ECHO ON Ativa as informaes e confirmaes do sistema. ECHO. Pula uma linha SET variavel=valor Cria ou modifica uma varivel (espao reservado temporariamente na memria RAM para guardar algumas informaes nmericas, de caractres, positivo/negativo entre outros. No podem ter acento e devem comear com letra). Para chamar a varivel posteriormente basta coloca-la entre %. Por exemplo: SET nome=Storm ECHO O nome dele %nome% :nomedolink
Nomeia um ponto do arquivo de lote permitindo avanar ou voltar a execuo apartir daquele ponto. CLS Esse comando limpa toda a tela. CLear Screen. @[Comando] Desativa as informaes e confirmaes feitas pelo sistema apenas para esta linha. CODE IF [condio] ( [ao] ) ELSE ( [ao2] ) Esse um comando condicional. Se condio faa ao, seno faa ao2. Por exemplo: CODE @ECHO OFF SET nome=Storm IF %nome%==Storm ( ECHO Ola Storm! ) ELSE ( ECHO Ola %nome%! ) GOTO [ponto] Avana ou volta a execuo para um ponto do arquivo de lote. FOR /L %%variavel IN (inicio,incremento,fim) DO comando [parmetro] Repete um comando varias vezes fazendo incrementaes at o fim ser atingido. /L, uma opo do comando FOR que faz as incrementaes. %%variavel, o nome da varivel que vai ser incrementada. inicio, o valor de inicio da varivel que ser incrementada. incremento, nmero que ser somado a cada incrementao. fim, a repetio ir acabar quando o valor da varivel atingir este valor. comando, um comando que ser repetido. [parmetro], o parmetro do comando que ser repetido. Por exemplo: CODE @ECHO OFF FOR /L %%a IN (1,1,5) DO ECHO O valor de A %%a PAUSE Faz uma pausa e s volta quando o usurio apertar alguma tecla do teclado. REM [comentrio] Este comando no faz absolutamente nada. Ele utilizado para inserir comentarios nos arquivos. CODE PROMPT ->Serve para abrir o prompt do msdos. O mais habitual $p$g que corresponde a; $p = mostrar trajeto atual $g = mostrar o separador > $l = mostrar o separador < $b = mostrar o separador | $q = mostrar o separador =
$$ = mostrar o sinal $ $t = mostrar a hora $d = mostrar a data $v = mostrar a verso do sistema $n = mostrar unidade atual $h = retroceso. Apaga o caracter previo $e = esc. Mostra o sinal corresponde a asci 27 Por isso se colocarmos prompt $p$g o cursor mostra a tragetria de onde estamos e logo o separador. possvel o texto ( por exemplo prompt Meu_nome $p$g DATE Ver/por a data do sistema TIME Ver/por a hora do sistema VER[/font] Verso do sistema [font=Verdana]VOL unidade Volume da unidade especificada MEM parametros Mostra a memoria usada e livre no sistema /p -> mostra por programas /d -> por programas econtroladores /c -> classifica por tamanho Comandos de manejos de arquivos COPY origem destino Serve para copiar arquivos de um lugar a outro. A origem deve ser um trajeto completo de onde esto os arquivos a copiar. Se se omite se entende no diretrio atual. O destino deve ser uma trajetria completa de onde desejar o/os arquivo(s) copy meuarquivo.txt c:\ (copi-lo do diretorio raz de C) copy meuarquivo.txt c:\meuarq.txt (copi-lo e poder mudar o nome a meuarq.txt) copy *.txt a:\ (copiar todos os arquivos que tenham a extenso txt a unidade A) copy *.txt c:\meusdo~1 (copiar todos os que tenham a extenso txt ao diretrio Meus documentos ( cujo o nome curto meusdoc~1). DEL arquivo(s) Apagar arquivos selecionados del lol.txt (apaga o arquivo lol.txt no diretrio atual) del c:\lol.txt (apaga o arquivo lol.txt que se encontra no c:\) del arquiv~1\*.*(apaga os arquivos que se encontram no diretrio Arquivos de programa cujo nome curto arquiv~1( no se apaga as subpastas) DELTREE arquivo(s) -y Apaga a raz especificada ( se um arquivo coloca o arquivo, se uma pasta coloca a pasta com todas as subpastas que incluam). Com o parametro -y no pergunta cada vez Este comando na realidade no um comando sim uma utilidade includa no ms-dos. DIR trajeto Mostra uma lista do contedo do diretrio especificado no trajeto. Se no especificado nada, se entende o atual. Se coloca como parametro /W mostra uma lista resumida Se coloca como parametro /P mostra uma lista utilizando o filtro more. ATTRIB arquivo(s)-> Mostra os arquivos dos diretrios indicados e nesse caso permite mud-los. os atributos so:
H -> oculto. Se ativa com +h e desativa com -h R -> Leitura. Apenas leitura com +r, normal com -r S -> Sistema. Se ativa com +s e desativa com -s A -> Modificado. Para copias de segurana incrementadas. +a indica modificado e -a indica no modificado. Attrib arquivostorm.txt (mostrar os atributos do arquivostorm.txt) attrib *.exe +r +r +s (coloca todos os arquivos com extenso exe como ocultos, do sistema e a apenas l) RENAME o REN nome1 nome2 Mudar o nome do arquivo Ren nome1.txt nome2.txt TYPE arquiivo Mostra por pasta o contedo do arquivo; type nomedoarquivo.txt * Todos aqui listados so comandos de MS-DOS que foram criados especificamente para arquivos de lote. Se voc 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 tambm entram nesta lista incluindo chamadas de outros programas para este sistema. Comandos para programao EDIT arquivo Editor de textos utilizado para editar scripts e arquivos de texto. DEBUG arquivo parametros de arquivo Inicia o desassembler com o programa indicado que se colocam por parametros. CHOICE texto opes Se utiliza em programas bat para dar elegir a um usuario entre um conjunto de opes A resposta se devolve mediante a varivel errorlevel choice Eleja uma opao snc CODE if errorlevel 1 goto if errorlevel 2 goto if errorlevel 3 goto Este exemplo mostra a lateral eleja uma opo e da a elejer s (sim), n (no) o C (continuar) por exemplo as tres seguintes linhas especificam aonde deve sair o fluxo do programa seguido da tecla pulsada. Variveis A condio DEFINED verifica se uma varivel j foi definida. Por exemplo, se a varivel x estiver definida, ento o resultado ser positivo, seno negativo. Veja como ficaria: CODE @ECHO OFF IF DEFINED x ( ECHO Positivo ) ELSE ( ECHO Negativo ) Arquivos A condio EXIST verifica se existe algum arquivo. Por exemplo, se existir o arquivo exemplo.bat o resultado ser positivo, seno negativo. Veja como ficaria: CODE @ECHO OFF IF EXIST exemplo.bat ( ECHO Positivo ) ELSE ( ECHO Negativo )
Esta condio no para por a. No sistema MS-DOS, voc pode fazer uma pesquisa na pasta em que est por um arquivo digitando parte dele. Voc usa * para indicar a(s) parte(s) que voc no sabe. Por exemplo, se existir algum arquivo com a extenso .bat na pasta atual o resultado ser positivo, seno negativo. Veja como ficaria: CODE @ECHO OFF IF EXIST *.bat (ECHO Positivo ) ELSE ( ECHO Negativo ) X igual a 6? @ECHO OFF CLS SET X=6 IF %X% == 6 GOTO ok ECHO X no igual a 6, X igua a %X% GOTO saida :o k ECHO X igual a 6 :saida Na primeira linha. O @ indica que no para aparecer o comando que segue, no caso, ECHO (Comando que escreve na janela). Nesta linha, eu estou grosseiramente mandando o MS-DOS calar a boca (no falar nada sem eu mandar), pois se ECHO faz o computador falar, ECHO OFF faz o computador desligar a boca e com o @ no comeo da linha, ele nem vai informar ao usurio que est parando de falar. Na segunda linha, o comando CLS faz o MS-DOS apagar toda a tela. Na terceira linha, como j foi explicado, faz a varivel X=6. Na quarta linha, uma linha condicional. Se X for igual 6 v para ok. Na quinta linha, bivio que X no vai ser igual a 6, ento o MS-DOS vai falar X no igual a 6, X igua a [valor de x]. Na sexta linha, ele ir para o ponto saida porque o resto feito se X for igual a 6. Na stima linha, est sendo definido o ponto ok, aquele ponto citado na quarta linha. Na oitava linha, X ser igua a 6, ento o MS-DOS vai dizer X igual a 6. E na nona linha, definido o ponto-final do processamento. Que chamado na sexta linha, nada mais que isso, ento o MS-DOS entende que o batch concluiu. Faa o teste 1. Abra o Bloco de notas do Windows; 2. Copie o exemplo acima e cole nele 3. Salva-o como exemplo2.bat; 4. D dois-clicks nele observe o que acontecer; 5. Agora experimente modificar a segunda linha por SET idade=n (troque n por algum nmero); 6. Execute e veja o que acontece. Programando; Existe uma infinidade de comandos, como mostrei acima, e s usar a imaginao e podemos programar uma imensido de finalidades, basta usar a criatividade e alguns comandos, para fechar esse tutorial, vou abordar alguns cdigos feito por mim. Exemplo 1 (Bsico) -fazer um loop que pegue todos os nomes dos diretorios -dentro de cada diretorio, renomear todos os arquivos com a extenso .txt para .zip CODE @echo off rem *.txt *.zip @exit Exemplo 2 (Intermedirio/Avanado)
CODE @echo off cls Echo Batch feito por Storm Echo . Echo . Echo Comear o programa? pause Echo . Echo . Echo . Echo Este programa cria uma chave de inicializaao de um arquivo no windows atravs do menu. Echo . Echo . Echo [1] Deseja que esse arquivo se inicie no seu proximo logon? Echo [2] Deseja sair do programa? Set /p choice=Digite o numero correspodente a sua opao: if %choice%==2 goto op2 if %choice%==1 goto op1 rem Bloco de declaraao dos gotos p1 reg add hklm\Software\Microsoft\Windows\CurrentVersion\Run /v teste2 /t REG_SZ /d c:\path\batstorm.bat&goto proximo p2 exit :proximo Echo . Echo . Echo Chave criada com sucesso. Echo . Echo . Echo Agora mostrarei a chamada de um outro arquivo bat sem a interrupo do arquivo. Echo [1] Deseja chamar o arquivo batstorm.bat? Echo [2] Deseja sair do programa? Set /p choice=Digite o numero correspondente a sua opao: if %choice%==2 goto op3 if %choice%==1 goto op4 p3 call batstorm.bat&goto proximo2 p4 exit
o que voc deve estar procurando o comando "echo" porm, certifique-se de que no comeo do arquivo voc set essa instruao: "@echo off" assim, os comandos a serem executados pelo processamento em lote nao serao exibidos, apenas as respostas... verificando o seu problema voc poderia fazer assim: @echo off cls echo Como voc vai? echo [1] Vou bem echo [2] Vou pessimo set /p opcao=Digite a opcao: IF %opcao% equ 2 (goto dig2) IF %opcao% equ 1 (goto dig1) ELSE (goto Fim) :dig2 echo Que triste goto fim :dig1 echo Que legal :Fim pause