{"id":276498,"date":"2023-10-23T16:59:00","date_gmt":"2023-10-23T13:59:00","guid":{"rendered":"https:\/\/howto.mediadoma.com\/?p=276498"},"modified":"2025-03-14T08:25:14","modified_gmt":"2025-03-14T05:25:14","slug":"5-instrucoes-if-a-serem-usadas-para-scripts-em-lote-do-windows-mais-inteligentes","status":"publish","type":"post","link":"https:\/\/howto.mediadoma.com\/pt-pt\/5-instrucoes-if-a-serem-usadas-para-scripts-em-lote-do-windows-mais-inteligentes\/","title":{"rendered":"5 instru\u00e7\u00f5es IF a serem usadas para scripts em lote do Windows mais inteligentes"},"content":{"rendered":"\n<p>Se voc\u00ea trabalha muito em arquivos em lote do Windows, a instru\u00e7\u00e3o IF oferece uma maneira muito poderosa de adicionar flexibilidade aos seus scripts.<\/p>\n<p>Neste artigo, voc\u00ea aprender\u00e1 sobre os cinco principais tipos de instru\u00e7\u00f5es IF que podem ser usados \u200b\u200bem um arquivo de lote do Windows, como a sintaxe correta se parece e um exemplo realista para cada um.<\/p>\n<p>Se voc\u00ea estiver pronto para come\u00e7ar a criar scripts, vamos come\u00e7ar.<\/p>\n<h2>1 Comparar valores<\/h2>\n<p>Uma das coisas b\u00e1sicas que voc\u00ea geralmente precisa fazer em um script em lote \u00e9 comparar dois valores e seguir um curso de a\u00e7\u00e3o diferente dependendo da compara\u00e7\u00e3o.<\/p>\n<p>Por exemplo, digamos que voc\u00ea queira escrever um script em lote que verifique diariamente o tamanho do disco r\u00edgido do seu computador. Se estiver abaixo de 3 GB, voc\u00ea deseja obter um relat\u00f3rio por e-mail que diz &quot;Espa\u00e7o no disco r\u00edgido muito baixo&quot;.<\/p>\n<p>Para criar um script que compare o espa\u00e7o livre no disco r\u00edgido atual ao seu limite, voc\u00ea ter\u00e1 que criar o seguinte script em lote e salv\u00e1-lo como um arquivo .bat.<\/p>\n<pre><code>@echo offset DriveLimit=300000000for \/f \"usebackq delims== tokens=2\" %%x in (`wmic logicaldisk where \"DeviceID='C:'\" get FreeSpace \/format:value`) do set FreeSpace=%%xEcho FreeSpace=\"%FreeSpace%\"Echo Limit=\"%DriveLimit%\"If %FreeSpace% GTR %DriveLimit% (Echo There is enough free space.) else (Echo Not enough free space.)<\/code><\/pre>\n<p>No script, <strong>WMIC<\/strong> \u00e9 o componente WMI (Instrumenta\u00e7\u00e3o de Gerenciamento do Windows) do Windows que vem com uma variedade de comandos que voc\u00ea pode usar para extrair informa\u00e7\u00f5es do seu PC.<\/p>\n<p>\u00c9 assim que o comando &quot;wmic&quot; neste script chama o espa\u00e7o do <strong>disco l\u00f3gico<\/strong> e o coloca na vari\u00e1vel <strong>FreeSpace .<\/strong><\/p>\n<p>Agora voc\u00ea pode substituir a linha <strong>Echo N\u00e3o h\u00e1 espa\u00e7o livre suficiente<\/strong> por um comando para enviar um alerta por e-mail. Defina o script para ser executado diariamente.<\/p>\n<h2>2 Compara\u00e7\u00f5es de String<\/h2>\n<p>Outra compara\u00e7\u00e3o IF valiosa que voc\u00ea pode fazer em um trabalho em lote \u00e9 comparar strings.<\/p>\n<p>No exemplo a seguir, voc\u00ea ver\u00e1 como verificar sua vers\u00e3o do Windows usando um trabalho em lote. Em seguida, voc\u00ea pode comparar isso com a vers\u00e3o esperada do Windows.<\/p>\n<p>Alguns usos desse script seriam para auditorias de TI quando voc\u00ea precisa executar rapidamente um script e verificar se o sistema operacional atual \u00e9 o mais recente ou se precisa de uma atualiza\u00e7\u00e3o.<\/p>\n<p>Veja como esse script se parece:<\/p>\n<pre><code>@echo offfor \/f \"tokens=4-5 delims=. \" %%i in ('ver') do set VERSION=%%i.%%jif \"%version%\" == \"6.0\" echo Windows Vista.if \"%version%\" == \"6.1\" echo Windows 7if \"%version%\" == \"6.2\" echo Windows 8if \"%version%\" == \"6.3\" echo Windows 8.1if \"%version%\" == \"10.0\" echo Windows 10.<\/code><\/pre>\n<p>Veja como \u00e9 a sa\u00edda deste script:<\/p>\n<p><a href=\"https:\/\/howto.mediadoma.com\/wp-content\/uploads\/2022\/10\/post-189893-633fa24c02082.png\" data-rel=\"lightbox\" ><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/howto.mediadoma.com\/wp-content\/uploads\/2022\/10\/post-189893-633fa24c02082.png\" alt=\"5 instru\u00e7\u00f5es IF a serem usadas para scripts em lote do Windows mais inteligentes\" ><\/a><\/p>\n<p>A capacidade de comparar strings em um lote abre toda uma lista de possibilidades. Se voc\u00ea explorar todas as <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/aa394531(v=vs.85).aspx\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">informa\u00e7\u00f5es que pode obter de um comando WMIC<\/a>, ver\u00e1 quantas estat\u00edsticas sobre seu computador podem ser monitoradas.<\/p>\n<p>Al\u00e9m disso, voc\u00ea pode at\u00e9 usar trabalhos em lote programados para receber alertas sobre eles.<\/p>\n<h2>3 Verifique se existe um arquivo<\/h2>\n<p>Outra situa\u00e7\u00e3o \u00fatil em que uma instru\u00e7\u00e3o IF em um arquivo em lotes \u00e9 verificar a exist\u00eancia de um arquivo de dados.<\/p>\n<p>Muitas vezes, o trabalho em lote \u00e9 apenas uma ferramenta de monitoramento que voc\u00ea pode agendar para verificar se h\u00e1 novos arquivos de dados recebidos em um diret\u00f3rio espec\u00edfico. Em seguida, voc\u00ea pode copiar esse arquivo para outro local ou iniciar algum script do Windows que processa o arquivo em uma sa\u00edda do Excel.<\/p>\n<p>Usar um arquivo em lote para verificar se existe um arquivo em um diret\u00f3rio \u00e9 r\u00e1pido e f\u00e1cil. Veja como \u00e9 esse script:<\/p>\n<pre><code>@echo offif exist c:tempdatafile.txt (%WINDIR%SysWOW64cmd.exe cscript LoadToExcel.vbs) else (rem file doesn't exist)<\/code><\/pre>\n<p>A compara\u00e7\u00e3o IF EXISTS \u00e9 \u00fatil para muitas coisas.<\/p>\n<p>Por exemplo, se voc\u00ea tiver um sistema ou aplicativo em execu\u00e7\u00e3o que crie novos logs de erros em uma pasta espec\u00edfica quando houver um problema, poder\u00e1 executar um trabalho em lote de vez em quando. Dessa forma, voc\u00ea pode monitorar facilmente se novos logs de erros s\u00e3o criados para que voc\u00ea possa enviar um alerta.<\/p>\n<h2>4 Verifique se um comando falhou<\/h2>\n<p>Um aspecto do script de arquivos em lote que muito poucas pessoas de TI ou programadores usam \u00e9 a verifica\u00e7\u00e3o de erros.<\/p>\n<p>H\u00e1 muitos trabalhos em lote circulando por a\u00ed que est\u00e3o executando tarefas cr\u00edticas de TI, como fazer backup de arquivos importantes ou executar opera\u00e7\u00f5es de c\u00f3pia de arquivos. Quando esses trabalhos em lote falham, os sistemas falham e as pessoas geralmente percebem.<\/p>\n<p>\u00c9 muito mais inteligente receber um alerta quando seu trabalho em lote falhou em um comando antes que as pessoas comecem a perceber. Dessa forma, voc\u00ea pode corrigir o problema de forma proativa.<\/p>\n<p>Voc\u00ea pode fazer isso utilizando a vari\u00e1vel %errorlevel% que a maioria dos aplicativos e comandos retornam ap\u00f3s serem executados. Tudo o que voc\u00ea precisa fazer \u00e9 seguir seu comando com o comando <strong>IF %ERRORLEVEL%<\/strong>.<\/p>\n<pre><code>@echo offxcopy C:omefolder E:backupfolderIF %ERRORLEVEL% NEQ 0 &lt;blat command to send email&gt;<\/code><\/pre>\n<p>Se o aplicativo ou comando retornar um zero, est\u00e1 tudo bem. Se n\u00e3o, ent\u00e3o voc\u00ea precisa enviar um e-mail.<\/p>\n<p>No entanto, voc\u00ea n\u00e3o precisa seguir o caminho do e-mail. Voc\u00ea sempre pode escrever um log de erros que pode ser verificado todas as manh\u00e3s ou iniciar um segundo aplicativo ou comando que tente fazer a c\u00f3pia usando um comando alternativo.<\/p>\n<p>Al\u00e9m disso, se voc\u00ea preferir usar uma instru\u00e7\u00e3o IF para verificar c\u00f3digos de erro espec\u00edficos, o Windows oferece uma <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ms681382(v=vs.85).aspx\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">lista bastante extensa de c\u00f3digos de erro do sistema<\/a>.<\/p>\n<h2>5 Verifique se h\u00e1 par\u00e2metros ausentes<\/h2>\n<p>A \u00faltima instru\u00e7\u00e3o IF \u00fatil n\u00e3o \u00e9 para um comando espec\u00edfico, mas para verificar se o script recebeu os par\u00e2metros de entrada apropriados.<\/p>\n<p>Por exemplo, digamos que voc\u00ea escreveu um script que executa um comando xcopy de uma pasta de entrada para uma pasta de rede comum usada por uma equipe. O usu\u00e1rio s\u00f3 precisa seguir o nome do seu script com os par\u00e2metros que definem o caminho do arquivo pessoal.<\/p>\n<p>Voc\u00ea n\u00e3o pode executar corretamente seu script sem o caminho especificado, ent\u00e3o voc\u00ea pode querer colocar uma instru\u00e7\u00e3o IF no in\u00edcio do seu script para garantir que ambos os par\u00e2metros sejam inseridos.<\/p>\n<pre><code>@echo offIF [%1]==[] (GOTO sub_message) ELSE (xcopy %1 E:backupfolder)GOTO eof:sub_messageecho You forgot to specify your path.:eof<\/code><\/pre>\n<p>Se voc\u00ea nunca usou par\u00e2metros com scripts em lote antes, o s\u00edmbolo de porcentagem seguido por um n\u00famero representa a vari\u00e1vel do par\u00e2metro. <strong>%1<\/strong> \u00e9 o primeiro par\u00e2metro, %2 \u00e9 o segundo e assim por diante.<\/p>\n<p>Em geral, as instru\u00e7\u00f5es IF s\u00e3o muito \u00fateis e voc\u00ea n\u00e3o precisa escrever muitos c\u00f3digos para realmente us\u00e1-las. Claro, se voc\u00ea quiser dar um passo adiante, considere dar uma olhada no VBA com nosso guia sobre como <a href=\"https:\/\/www.makeuseof.com\/tag\/simple-app-vba\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">criar seu primeiro aplicativo VBA<\/a>.<\/p>\n<h2>Trabalhos em lote podem ser poderosos<\/h2>\n<p>Muitas pessoas come\u00e7aram a usar trabalhos em lote para tarefas simples que precisam ser executadas sequencialmente. Felizmente, com instru\u00e7\u00f5es IF, \u00e9 poss\u00edvel adicionar muito mais l\u00f3gica aos seus scripts.<\/p>\n<p>Al\u00e9m disso, muitas vezes voc\u00ea pode usar linguagens de programa\u00e7\u00e3o mais avan\u00e7adas e usar o PowerShell para realizar muitas das mesmas tarefas para as quais atualmente usa trabalhos em lote.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/www.makeuseof.com\" class=\"external external_icon\">www.makeuseof.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Existem v\u00e1rios tipos de instru\u00e7\u00f5es IF que voc\u00ea pode usar em um arquivo em lotes do Windows para economizar tempo e esfor\u00e7o. Confira estes exemplos para saber mais.<\/p>\n","protected":false},"author":1,"featured_media":189894,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[2932],"tags":[3061],"class_list":["post-276498","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programacao","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/howto.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/276498","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/howto.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/howto.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/howto.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/howto.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=276498"}],"version-history":[{"count":1,"href":"https:\/\/howto.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/276498\/revisions"}],"predecessor-version":[{"id":305672,"href":"https:\/\/howto.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/276498\/revisions\/305672"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/howto.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/189894"}],"wp:attachment":[{"href":"https:\/\/howto.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=276498"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/howto.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=276498"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/howto.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=276498"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}