Batch é um arquivo em lotes da Microsoft, normalmente utilizado para otimizar tarefas por técnicos e programadores. Um arquivo em lote é basicamente um arquivo de script que é executado sequencialmente pelo Prompt de comando.
Em Batch, a maioria dos comandos são arquivos externos. Isto é, arquivos executáveis que estão presentes na pasta System32 do computador. Exceto aqueles nativos do Prompt, por exemplo: if, else, exit, goto, call, start, for, set, echo...
Embora arquivos em Batch pareçam simples, pelo fato de se utilizar programas externos dá para estender as possibilidades de uso. Caso deseje obter ajuda sobre os comandos do Prompt, abra o mesmo e digite help. E caso deseje ajuda sobre um comando específico, pode tentar da seguinte forma: comando /?
O comando if pode ser usado para comparar valores, textos, verificar se arquivos existem, verificar se uma variável foi definida, entre outros.
Valores entre [ e ] são opcionais.
O comando if pode ser usado em uma única linha ou mais. Para várias linhas utilize ( e ) para definir o inicio e fim dos comandos para serem executados. Enquanto ao comando else deve estar na mesma linha que o if, ou no caractere ) que define o fim do bloco de comandos executados pelo if.
@echo off set /p name=Digite seu nome: if "%name%"=="Felipe" ( echo Oi Felipe, esse tambem e meu nome. ^^^^ echo. ) else ( echo Ola %name%, bom dia. echo. )
Em Batch para se utilizar o valor de uma variável, deve ser feito da seguinte forma: %variavel% Variáveis também podem ser manipuladas desta forma:
Também pode se utilizar valores negativos, ou definir apenas um valor inicial. Exemplos: %var:~-2,2% : Pegaria os últimos dois caracteres. %var:~5% : Pegaria todos os caracteres a partir do caractere 5.
As variáveis são expandidas para seu respectivos valores antes da execução do comando. Isto é, você pode usar variáveis não somente como valores mas também como comandos e etc.
@echo off set command=echo.^&echo Isso funcionaria. %command% :: Imprimiria na tela uma quebra de linha seguida do texto. %command:~0,5% ::Imprimiria na tela uma quebra de linha.
Macros também podem ser definidos no Batch. São palavras-chaves que executam os comandos de seu valor.
Usa-se o comando doskey para se definir um macro desta forma: doskey nomeDoMacro=echo Valor do Macro. Exemplo:
doskey echoSemQuebraDeLinha= ^echo Este vai aparecer na mesma linha do texto acima.
Macros funcionam de forma idêntica a comandos já existentes do Prompt. Você pode inclusive passar parâmetros, onde se utiliza no macro os valores $1-$9.(equivalentes a %1-%9 de um arquivo em lote) Também se pode usar o $* para inserir todos os parâmetros passados para o macro.(equivalente à %*) E utilize $T como um separador de comandos caso queira que seu macro execute mais de um comando.(equivalente ao & no arquivo em lote)
Eis a lista de caracteres especiais do Batch e exemplos:
echo Ola, como vai?>wikipedia.txt :: Gravaria o texto "Ola, como vai?" no arquivo wikipedia.txt echo Por favor impressora, imprima isso.>prn :: Imprimiria o texto. type wikipedia.txt>prn :: Imprimiria o conteúdo do arquivo wikipedia.txt
Onde as portas aceitas são: Portas paralelas: LPT1, LPT2, LPT3 Portas seriais : COM1, COM2, COM3 PRN - Porta da impressora. NUL - Porta nula, ou seja simplesmente não exibe o eco sem redirecionar para lugar algum.
echo 1 - Ler um artigo na Wikipedia.>>wikipedia.txt echo 2 - Fazer todo o resto.>>wikipedia.txt
Exemplo:
set /p valor=
- ^ - Caractere usado para anular um caractere como especial, assim o tornando apenas texto.
Exemplo:
echo Isso vai para dentro ^< do arquivo>arq.txt echo Esse e o circunflexo: ^^ echo Essa e uma carinha feliz: ^^_^^ :: ^_^
- @ - Adicione esse caractere no inicio de um comando para não exibir o eco do comando.
Caso queira desativar/ativar o eco de comando de forma global. Utilize: @echo off/on
- | - Também funciona como o redirecionador >. Mas ao invés de redirecionar para um arquivo/porta, ele redireciona a saída para outro comando do Prompt. Exemplo:
( echo Veja, isso e um bloco de "echos" echo Todo esse texto vai ser junto como um so echo Perfeito para criar arquivos com varias linhas, ou uma lista. ) | sort :: Veja o resultado no Prompt. :: O comando sort organiza o texto em ordem alfabética.Alguns utilitários avançados
A centenas de comandos básicos e avançados em Batch, citar todos e como usa-los exigiria um texto muito extenso. Alguns deles mereceriam uma própria página Wiki, como por exemplo o certUtil.
- certUtil - Utilitário com funções como: Banco de dados, arquivos, codificação e decodificação, cálculo de hash, despejo etc.
Digite no Prompt certUtil /? para mais informações.
- ftp - Utilitário usado para enviar e baixar arquivos de um servidor FTP.
- net - Utilitário usado para modificar configurações de conexão.
- diskpart - Utilitário usado para modificações em partições do computador.
- CScript/WScript - Utilitário usado para executar scripts .js ou .vbs, em modo console ou janela.(Em sua respectiva ordem)
Exemplos de códigos
Imprimir texto em cores
@echo off color 0Fnul goto :eof :color echo �� >"%~2F" :: Necessário caractere hexadecimal para backspace. :: Para adiciona-lo, pressione ALT+0+8 e solte a tecla ALT. :: Então substitua os caracteres mostrados acima pelo os adequados. findstr /a:%1 /R "^" "%~2F*" del %2F goto :eof Pegar tecla pressionada
@echo off echo Pressione alguma tecla... call :key echo Voce pressionou: %key% :: P.S.: Só pega teclas de caracteres. Isto é, teclas como Shift, Enter etc. não vai retornar nada. pause>nul goto :eof :key set key= for /f "delims=" %%. In ('xcopy /w "%~f0" "%~f0" 2^>nul') do if not defined key set "key=%%." set "key=%key:~-1%" goto :eof
ENQUETE | ||
|
|
1 |