/ / Como escrever um script em lote no Windows

Como escrever um script em lote no Windows

Você sabe como usar o prompt de comando? Se fizer isso, você pode escrever um arquivo em lotes. Na sua forma mais simples, um arquivo em lotes (ou script em lotes) é uma lista de vários comandos que são executados quando você clica duas vezes no arquivo. Os arquivos em lote remontam ao DOS, mas ainda funcionam nas versões modernas do Windows.

Os scripts do PowerShell e os scripts do Bash podem ser mais poderosos, mas os arquivos em lotes ainda podem ser bastante úteis se você precisar executar comandos básicos do Windows.

Noções básicas sobre arquivos em lote

Um arquivo em lotes é simplesmente um arquivo de texto salvo com oExtensão de arquivo .bat. Você pode escrever um usando o Bloco de notas ou um editor de texto mais avançado como o Notepad ++, mas não use um processador de texto como o Microsoft Word.

Vamos criar um arquivo em lotes simples. Primeiro, abra o Bloco de notas. Digite as seguintes linhas nele:

ECHO OFF
ECHO Hello World
PAUSE

Em seguida, salve o arquivo clicando em Arquivo> Salvar. Dê o nome que desejar, mas substitua a extensão de arquivo .txt padrão pela extensão .bat.

Por exemplo, você pode querer nomeá-lo hello_world.bat .

Agora você tem um arquivo em lotes com o.extensão de arquivo bat. Clique duas vezes nele para executá-lo. Esse arquivo em lotes específico desativa o ECHO (que limpa a saída ocultando os comandos de serem impressos no prompt, imprime o texto "Hello World" na tela e aguarda você pressionar uma tecla antes de terminar.

Se você não adicionou PAUSE para o arquivo, o arquivo em lotes simplesmente executaria suacomandos e depois feche automaticamente. Nesse caso, ele imprimiria “Hello World” na janela e fecharia imediatamente a janela do prompt de comando. Quando você deseja executar comandos rapidamente sem ver a saída, pode omitir isso. Se você estiver executando vários comandos, poderá colocar o PAUSE comando entre eles.

Escrevendo um arquivo em lotes mais complexo

É fundamentalmente simples criar um arquivo em lotes. A única coisa que você precisa alterar é o que você digita no Bloco de Notas. Para executar vários comandos, digite cada um em sua própria linha e o arquivo em lotes será executado em ordem.

Por exemplo, digamos que queremos escrever um arquivo em lotes que execute vários comandos de diagnóstico de rede. Podemos querer correr ipconfig /all para visualizar informações da rede, ping google.com para ver se os servidores do Google estão respondendo e tracert google.com para executar um traceroute no google.com e verificar se há algum problema no caminho.

Na forma mais básica, poderíamos simplesmente colocar todos esses comandos em um arquivo em lotes, um após o outro, da seguinte forma:

ipconfig /all
ping google.com
tracert google.com
PAUSE

Quando executamos esse arquivo, veríamos a saída de cada comando logo após o outro. Mas essa não é necessariamente a maneira ideal de gravar um arquivo em lotes.

Por exemplo, você pode querer adicionar linhas de comentário. Qualquer linha que comece com um :: é uma linha de comentário e não será executada. Isso os torna uma maneira útil de explicar o que está acontecendo no arquivo para qualquer pessoa a quem você possa dar - ou para o seu futuro, que pode esquecer por que você coloca um certo comando nele.

Você também pode adicionar o comando "ECHO OFF"para o início do arquivo. Isso geralmente é adicionado ao início da maioria dos arquivos em lote. Quando você fizer isso, os próprios comandos não serão impressos no prompt de comando, mas os resultados serão. Por exemplo, você verá os detalhes da conexão de rede, mas não a linha "ipconfig / all". A maioria das pessoas não se importa de ver os comandos, para que isso possa limpar a saída.

Então, aqui está o que isso pode parecer:

:: This batch file checks for network connection problems.
ECHO OFF
:: View network connection details
ipconfig /all
:: Check if Google.com is reachable
ping google.com
:: Run a traceroute to check the route to Google.com
tracert google.com
PAUSE

Existem outras direções que você pode seguir com umarquivo em lote como este. Por exemplo, você pode querer que seu script em lote execute os comandos acima e depois despeje a saída em um arquivo de texto que você pode visualizar mais tarde. Para fazer isso, você usaria o >> operador após cada comando para anexar sua saída ao arquivo de texto. Como vamos ler a saída do arquivo de texto de qualquer maneira, podemos omitir o PAUSE comando.

:: This batch file checks for network connection problems
:: and saves the output to a .txt file.
ECHO OFF
:: View network connection details
ipconfig /all >>  results.txt
:: Check if Google.com is reachable
ping google.com >> results.txt
:: Run a traceroute to check the route to Google.com
tracert google.com >> results.txt

Depois de executar o script acima, você encontrará um arquivochamado results.txt na mesma pasta que o arquivo em lotes com a saída dos comandos. A janela do prompt de comando será fechada automaticamente assim que o arquivo em lotes for executado.

O exemplo que estamos usando acima se baseia na verdadeimprimir informações no prompt de comando para que o usuário possa lê-las. No entanto, muitos arquivos em lote foram projetados para serem executados de maneira não interativa. Por exemplo, você pode ter um arquivo em lotes que exclui vários arquivos ou diretórios sempre que clicar duas vezes nele. Você só precisa usar o del comando para excluir arquivos ou o deltree comando para excluir diretórios. Lembre-se de que você está apenas usando os mesmos comandos que executou em uma janela do prompt de comando.

Fundamentalmente, esse é o ponto da maioria dos lotesarquivos - apenas executando alguns comandos, um após o outro. No entanto, os arquivos em lote podem ser significativamente mais complexos que isso. Por exemplo, você pode usar as instruções "IF" junto com o comando "GOTO" para verificar o valor de algo e, em seguida, pular para linhas diferentes, dependendo do resultado. É mais como escrever um programa pequeno do que um script rápido e sujo. Essa é uma das razões pelas quais os arquivos .bat às vezes são chamados de "programas em lote". Se você quiser fazer algo mais complexo, encontrará muitos guias para fazer coisas específicas com a programação em lote online. Mas agora, você sabe o básico de como montar uma simples.