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

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

Se você trabalhar muito em arquivos em lote do Windows, o Declaração IF oferece uma maneira muito poderosa de adicionar flexibilidade aos seus scripts.



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

Se você estiver pronto para iniciar o script, vamos começar!





1. Compare os valores

Uma das coisas básicas que você geralmente precisa fazer em um script em lote é compare 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 o tamanho do disco rígido do seu computador diariamente. 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 compare o espaço livre no disco rígido atual com o seu limite, você deve criar o seguinte script em lote e salvá-lo 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.
)

WMIC é o componente Windows Management Instrumentation do Windows que vem com uma variedade de comandos que você pode usar para obter informações do PC. É assim que o comando 'wmic' neste script chama o espaço 'disco lógico' e o coloca na variável FreeSpace. Agora você pode simplesmente substituir a linha 'Eco não há espaço livre suficiente' por um comando de e-mail para enviar um alerta.

Finalmente, configure este script como um trabalho em lote agendado do Windows que é executado diariamente.

Se você nunca usou o blat antes, temos um artigo que mostra como configurar o blat. Não está familiarizado com a configuração de trabalhos agendados? Abordamos você com um artigo sobre como configurar as tarefas agendadas do Windows.

2. Comparações de strings

Outra comparação valiosa de IF que você pode fazer em um trabalho em lote é comparando cordas .

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

Alguns usos desse script seriam para auditorias de TI, quando você precisa executar um script rapidamente e certificar-se de que o sistema operacional atual é o mais recente ou se precisa de um upgrade.

Esta é a aparência deste script.

@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.

Esta é a aparência da saída desse script.

A capacidade de comparar strings em lote abre uma lista completa de possibilidades. Se você explorar todos os informações que você pode obter de um comando WMIC você verá quantas estatísticas sobre o seu computador você pode monitorar. Você pode usar trabalhos em lote agendados 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, a tarefa em lote é apenas uma ferramenta de monitoramento que pode ser programada para verificar se há novos arquivos de dados recebidos em um diretório específico.

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

(Já escrevemos no passado sobre como use scripts do Windows para processar dados em um arquivo Excel ; alguma boa leitura de fundo.)

Usar um arquivo em lote para verificar se um arquivo existe em um diretório é rápido e fácil. Esta é a aparência desse script.

@echo off
if exist c: empdatafile.txt (
%WINDIR%SysWOW64cmd.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 cria novos logs de erro em uma pasta específica quando há um problema, pode executar um trabalho em lote de vez em quando para monitorar se novos logs de erro são criados para que você possa enviar um alerta.

4. Verifique se um comando falhou

Um aspecto do script de arquivo em lote que muito poucos funcionários de TI ou programadores usam é verificando por erros .

Existem muitos trabalhos em lote por aí que realizam tarefas críticas de TI, como backup de arquivos importantes ou execução de operações de cópia de arquivo. Quando esses trabalhos em lote falham, os sistemas falham e as pessoas percebem.

É muito mais inteligente receber um alerta quando seu trabalho em lote falhar em um comando antes as pessoas começam a notar. Dessa forma, você pode corrigir o problema de forma proativa.

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

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

@echo off
xcopy C:
omefolder E:ackupfolder
IF %ERRORLEVEL% NEQ 0

Você não precisa seguir a rota do e-mail. Você sempre pode escrever um log de erros que pode verificar todas as manhãs ou iniciar um segundo aplicativo ou comando que tenta fazer a cópia usando um comando alternativo. Qualquer ação que você deseja realizar, IF% ERRORLEVEL% permite que você faça.

Se você preferir usar uma instrução IF para verificar códigos de erro específicos, o Windows oferece uma extensa lista 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 para 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 corretamente sem o caminho especificado, então você pode colocar uma instrução IF no início de seu script para garantir que ambos os parâmetros foram inseridos.

É assim que parece.

@echo off
IF [%1]==[] (
GOTO sub_message
) ELSE (
xcopy %1 E:ackupfolder
)
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 do 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 trabalhos 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, se você realmente quiser subir um degrau, considere dar uma olhada no VBA com nosso guia criando seu primeiro aplicativo VBA , ou talvez até mesmo aprender programação Python.

Freqüentemente, você pode usar linguagens de programação mais avançadas como essas, ou aprender a usar o PowerShell, para realizar muitas das mesmas tarefas para as quais usa trabalhos em lote atualmente.

Compartilhado Compartilhado Tweet O email Exclua esses arquivos e pastas do Windows para liberar espaço em disco

Precisa liberar espaço em disco no seu computador Windows? Aqui estão os arquivos e pastas do Windows que podem ser excluídos com segurança para liberar espaço em disco.

Leia a seguir
Tópicos relacionados
  • janelas
  • Programação
  • janelas
Sobre o autor Ryan Dube(942 artigos publicados)

Ryan é bacharel em Engenharia Elétrica. Ele trabalhou 13 anos em engenharia de automação, 5 anos em TI e agora é engenheiro de aplicativos. Ex-editor-chefe da MakeUseOf, ele palestrou em conferências nacionais sobre visualização de dados e foi apresentado na TV e no rádio nacionais.

como você salva vídeos do youtube para o seu iphone
Mais de Ryan Dube

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever