5 Instruções IF a serem usadas para scripts de lote do Windows mais inteligentes

Existem vários tipos de instruções IF que você pode usar em um arquivo de lote do Windows para economizar tempo e esforço. Verifique estes exemplos para descobrir mais.

Existem vários tipos de instruções IF que você pode usar em um arquivo de lote do Windows para economizar tempo e esforço.  Verifique estes exemplos para descobrir mais.
Propaganda

Se você faz muito trabalho nos arquivos de lote do Windows, a instrução IF oferece uma maneira muito poderosa de adicionar flexibilidade aos seus scripts.

Neste artigo, você aprenderá sobre os cinco tipos principais de instruções IF que você pode usar em um arquivo em lotes do Windows, como a sintaxe correta se parece e um exemplo realista para cada um.

Se você está pronto para começar o script, vamos começar!

1. Compare os valores

Uma das coisas básicas que você normalmente precisará fazer em um script em lote é comparar dois valores e seguir um curso de ação diferente, dependendo da comparação.

Por exemplo, digamos que você queira escrever um script em lote que verifique diariamente o tamanho do disco rígido do seu computador. Se estiver abaixo de 3 GB, você deseja receber um relatório por e-mail que diz: "Espaço no disco rígido muito baixo".

Para criar um script que compara o espaço livre no disco rígido atual ao seu limite, crie o seguinte script em lote e salve-o como um arquivo .bat.

@echo off set DriveLimit=300000000 for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value`) do set FreeSpace=%%x Echo FreeSpace="%FreeSpace%" Echo Limit="%DriveLimit%" If %FreeSpace% GTR %DriveLimit% ( Echo There is enough free space. ) else ( Echo Not enough free space. ) 

O WMIC é o componente Windows Management Instrumentation do Windows que vem com uma variedade de comandos que você pode usar para extrair informações do PC. É assim que o comando “wmic” nesse script chama o espaço “logicaldisk” e o coloca na variável FreeSpace. Agora você pode simplesmente substituir a linha "Echo Não há espaço livre suficiente" por um comando de e-mail blat para enviar um alerta.

Por fim, defina esse script como um trabalho em lote programado do Windows que é executado diariamente.

Se você nunca usou blat antes, temos um artigo que mostra como configurar o blat. Não está familiarizado com a configuração de trabalhos agendados? Cobrimos um artigo sobre como configurar as tarefas agendadas do Windows 4 Tarefas enfadonhas que você pode automatizar com o Agendador de Tarefas do Windows 4 Tarefas chatas que você pode automatizar com o Agendador de Tarefas do Windows Seu tempo é muito valioso para ser desperdiçado com tarefas repetitivas . Vamos mostrar como automatizar e agendar tarefas. Também temos ótimos exemplos. Consulte Mais informação .

2. Comparações de String

Outra valiosa comparação de FI que você pode fazer em um trabalho em lote é comparar seqüências de caracteres .

No exemplo a seguir, você verá como verificar sua versão do Windows usando um trabalho em lotes. Então você pode comparar isso com a versão esperada do Windows.

Alguns usos desse script seriam para auditorias de TI quando você precisar executar rapidamente um script e garantir que o sistema operacional atual seja o mais recente ou precise de uma atualização.

Veja como esse script se parece.

 @echo off for /f "tokens=4-5 delims=. " %%i in ('ver') do set VERSION=%%i.%%j if "%version%" == "6.0" echo Windows Vista. if "%version%" == "6.1" echo Windows 7 if "%version%" == "6.2" echo Windows 8 if "%version%" == "6.3" echo Windows 8.1 if "%version%" == "10.0" echo Windows 10. 

Veja como é a saída desse script.

Arquivo em lote, Windows, programação

A capacidade de comparar strings em lote abre uma lista completa de possibilidades. Se você explorar todas as informações que você pode obter de um comando da WMIC, você verá quantas estatísticas sobre o seu computador você pode monitorar. Você pode usar trabalhos em lote programados para alertar sobre eles.

3. Verifique se existe um arquivo

Outra situação útil em que uma instrução IF em um arquivo em lote é verificar a existência de um arquivo de dados .

Muitas vezes, o trabalho em lote é apenas uma ferramenta de monitoramento que pode ser programada para verificar novos arquivos de dados recebidos em um diretório específico.

Em seguida, o trabalho em lotes pode copiar o arquivo para outro local onde ele pode ser processado ou iniciar o script do Windows que processa o arquivo em uma saída do Excel.

(Anteriormente escrevemos sobre como usar os scripts do Windows para processar dados em um arquivo do Excel. 5 Scripts úteis do Windows VB para automatizar o uso de seu computador 5 Scripts úteis do VB para automatizar o uso de seu computador Desde o monitoramento de sites até relatórios do sistema, saiba como para automatizar todas as coisas com esses incríveis scripts VB que você pode codificar no Windows agora mesmo. Leia mais; boa leitura em segundo plano.)

Usar um arquivo em lotes para verificar se um arquivo existe em um diretório é rápido e fácil. Aqui está o que esse script parece.

 @echo off if exist c:\temp\datafile.txt ( %WINDIR%\SysWOW64\cmd.exe cscript LoadToExcel.vbs ) else ( rem file doesn't exist ) 

A comparação IF EXISTS é útil para muitas coisas.

Por exemplo, se você tiver um sistema ou aplicativo em execução que crie novos logs de erro em uma pasta específica quando houver um problema, poderá executar um trabalho em lotes de vez em quando para monitorar se novos logs de erro são criados para enviar um alerta.

4. Verifique se um comando falhou

Um aspecto do script de arquivo em lote que poucas pessoas de TI ou programadores usam está verificando erros .

Há muitos trabalhos em lote circulando por aí que estão executando tarefas críticas de TI, como fazer backup de arquivos importantes ou executar operações de cópia de arquivos. Quando esses trabalhos em lote falham, os sistemas falham e as pessoas percebem.

É muito mais inteligente receber um alerta quando o seu trabalho em lote falhar em um comando antes que as pessoas comecem a perceber. Dessa forma, você pode corrigir o problema de maneira proativa.

Você pode fazer isso utilizando a variável% errorlevel% que a maioria dos aplicativos e comandos retornam depois de serem executados.

Tudo o que você precisa fazer é seguir seu comando pelo comando IF% ERRORLEVEL%. Se o aplicativo ou comando retornou um zero, tudo está bem. Se não, então você precisa enviar um email para si mesmo.

 @echo off xcopy C:\somefolder E:\backupfolder IF %ERRORLEVEL% NEQ 0 

Você não precisa tomar a rota de e-mail. Você sempre pode gravar um log de erros que possa verificar toda manhã ou iniciar um segundo aplicativo ou comando que tente fazer a cópia usando um comando alternativo. Qualquer ação que você queira fazer, IF% ERRORLEVEL% permite que você faça isso.

Se você preferir usar uma instrução IF para verificar códigos de erro específicos, o Windows oferece uma lista bastante extensa de códigos de erro.

5. Verifique se há parâmetros ausentes

A última instrução IF útil não é um comando específico, mas sim verificar se o script recebeu os parâmetros de entrada apropriados .

Por exemplo, digamos que você tenha escrito um script que executa um comando xcopy de uma pasta de entrada para uma pasta de rede comum usada por uma equipe. O usuário só precisa seguir o nome do script com os parâmetros que definem o caminho do arquivo pessoal.

Obviamente, você não pode executar seu script adequadamente sem o caminho especificado, portanto, você pode colocar uma instrução IF no início do seu script para certificar-se de que ambos os parâmetros foram inseridos.

Veja como isso parece.

 @echo off IF [%1]==[] ( GOTO sub_message ) ELSE ( xcopy %1 E:\backupfolder ) GOTO eof :sub_message echo You forgot to specify your path. :eof 

Se você nunca usou parâmetros com scripts em lote antes, o símbolo de porcentagem seguido por um número representa a variável de parâmetro. % 1 é o primeiro parâmetro, % 2 é o segundo e assim por diante.

Trabalhos em lote podem ser poderosos

Muitas pessoas começam a usar tarefas em lote para tarefas simples que precisam ser executadas em sequência. Com as instruções IF, é possível adicionar muito mais inteligência aos seus scripts.

É claro que, se você realmente quiser subir um pouco, você pode considerar dar uma olhada no VBA com nosso guia sobre como criar seu primeiro aplicativo VBA ou até mesmo aprender programação em Python.

Você pode usar linguagens de programação mais avançadas como essas ou aprender a usar o PowerShell 5 motivos pelos quais você deve usar o PowerShell em vez de usar o Batch Scripting 5 motivos pelos quais você deve usar o PowerShell em vez de usar o Batch Scripting Batch Scripting, jogou alguns recursos extras, e chutou todos os vários entalhes. Aqui estão várias razões pelas quais você deve tentar. Leia mais para realizar muitas das mesmas tarefas para as quais você usa atualmente tarefas em lote.

In this article