[ EN | PT ] How to make processes in Batch Script? - Como fazer processos em Batch Script?

banner

I've done some scripts in Batch in the past, so I decided to create this simple tutorial in an uncompromising way. Feel free to experiment, test and comment on the technology and its uses, and ask questions in the comments.

Why use old technology like this?

Batch scripts really are an old technology that was ignored for a long time by Microsoft, so much so that several features that exist today in BASH and PowerShell simply don't exist in Batch, such as loops and things like that (or even exist, but only in its most primitive form, with GOTO clusters). So maybe you're thinking, “Why should I study something as old as Batch scripts?

The answer is that these scripts are used to perform automated actions like cleaning folders, converting files, releasing or blocking network ports and the like, and all with minimal user interference, which also reduces human error. Also, regardless of the Windows system version, Batch is among the dependencies, so it's not that difficult to create a script compatible with older versions of Windows, or adapt it to more modern versions.

Batch scripts have other characteristics, allowing, for example, interaction with the user, which can be useful, for example, in scripts that allow executing more than one action, such as scripts to encrypt and decrypt data, or even simple games (yes, you can create rudimentary games in Batch, which will work like old terminal games in BASIC or such).

What is a Batch Script?

A Batch script is, in short, a stack of commands that are inside a file, and will be executed from start to finish, with their execution being occasionally altered by conditional or control loops. Its origins predate the MS-DOS operating system, and it has withstood the passage of time until Windows 10, despite constant threats to its role as Microsoft's primary automated scripting language with languages such as Powershell and VBScript. Its main advantage is its simplicity, and its main disadvantage is the fact that it is an archaic language.

DOS commands

Like other scripting languages, Batch Script is just a file with a bunch of terminal commands. Just that, there is no middle ground. Thus, we can understand that everything that is possible to do via CMD, such as creating folders and files, running programs and even crashing the operating system, is also possible with a Batch program, and everything that cannot be done via CMD is also not possible. do via Batch (with rare exceptions).

Batch files have other advantages, such as avoiding crashes due to user errors, speeding up everyday and repetitive tasks, and making it possible to view complex sequences of environment configuration commands for beginners.

Let's start by recapping some of the most basic commands in the system:

CommandResult
ECHOWrite on screen
ECHO OFFHide code executed by the system
ECHO ONRedisplays the code executed by the system
ECHO.Skip a line
CLSClean console
STARTRun another program
PAUSEPauses program execution until a key is typed
REMIndicates the beginning of a comment that will extend to the end of the line

Hello World!

And now let's go to the classic “Hello World” that the vast majority of programming languages implement. Your program will look like this:

echo Hello World
pause

Save this in a file called Hello.bat and double click on it.

Let's start by noticing some aspects of language. First of all, for messages, you don't need to put single or double quotes, just throw what you want there. Second, Batch Script commands are not case sensitive (only in more specific messages or the like). And third, your CMD probably looked like this:

C:> echo Hello World
Hello World

It wasn't our goal, after all, the program should act by hiding these commands, and not just keep listing them on the screen. Edit your file and leave it like this:

@echo off
echo Hello World
pause

Now the commands executed by the batch will be hidden in the system. Simple, agreed?

Running notepad.exe program

Let's say you want to open Notepad on Windows. Since the notepad.exe program is already inside the system PATH, you don't need to do anything other than run it:

@echo off
rem initializes Windows notepad
start notepad.exe

And there? Did you like the class? Tell me in the comments 😊😄


Eu fiz no passado alguns scripts em Batch, então resolvi de criar de forma meio descompromissada esse tutorial simples. Sinta-se a vontade para experimentar, testar e opinar sobre a tecnologia e sobre seus usos, e tirar dúvidas nos comentários.

Por que usar uma tecnologia velha como essa?

Os scripts em Batch realmente são uma tecnologia antiga e que foi ignorada por muito tempo pela Microsoft, tanto que diversos recursos que hoje existem no BASH e no PowerShell simplesmente não existem no Batch, como laços de repetição e coisas do tipo (ou até existem, mas apenas em sua forma mais primitiva, com aglomerados de GOTO). Então talvez você esteja pensando: “Por que eu deveria estudar uma coisa tão velha quanto scripts Batch?

A resposta é que esses scripts servem para realizar ações automatizadas, como limpeza de pastas, conversões de arquivos, liberação ou bloqueio de portas de rede e coisas do tipo, e tudo com o mínimo de interferência do usuário, o que também reduz erros humanos. Além disso, independente da versão do sistema Windows, o Batch está entre as dependências, então não é tão difícil de criar um script compatível com versões anteriores do Windows, ou adaptá-lo para versões mais modernas.

Os scripts Batch possuem outras características, possibilitando, por exemplo, a interação com o usuário, o que pode ser útil, por exemplo, em scripts que possibilitam executar mais de uma ação, como scripts para encriptar e decriptar dados, ou mesmo jogos simples (sim, você pode criar jogos rudimentares em Batch, que vão funcionar como jogos de terminal antigos em BASIC ou coisas do tipo).

O que é um Batch Script?

Um script em Batch é, em resumo, uma pilha de comandos que está dentro de um arquivo, e serão executados do início ao fim, com sua execução sendo pontualmente alterada por laços condicionais ou de controle. Sua origem vem de antes do sistema operacional MS-DOS, e resistiu à passagem do tempo até o Windows 10, mesmo com as constantes ameaças a seu papel como principal linguagem para a criação de scripts automatizados da Microsoft com linguagens como Powershell e VBScript. Sua principal vantagem é sua simplicidade, e sua principal desvantagem é o fato de ser uma linguagem arcaica.

Comandos do DOS

Assim como outras linguagens de script, o Batch Script não passa de um arquivo com um monte de comandos de terminal. Apenas isso, não existe um meio termo. Assim, podemos entender que tudo que é possível fazer via CMD, como criar pastas e arquivos, executar programas e até travar o sistema operacional, também é possível fazer com um programa Batch, e tudo que não é possível fazer via CMD também não é possível fazer via Batch (com raras exceções).

Os arquivos Batch apresentam outras vantagens, como evitar falhas por erros da parte do usuário, agilizar tarefas cotidianas e repetitivas e possibilitar a visualização de sequências complexas de comandos de configuração de ambiente para iniciantes.

Comecemos recapitulando alguns dos comandos mais básicos do sistema:

ComandoResultado
ECHOEscreve na tela
ECHO OFFOculta o código executado pelo sistema
ECHO ONVolta a exibir o código executado pelo sistema
ECHO.Pula uma linha
CLSLimpa o console
STARTExecuta outro programa
PAUSEPausa a execução do programa até que alguma tecla seja digitada
REMIndica o início de um comentário que se extenderá até o final da linha

Olá, mundo!

E vamos agora ao clássico “Hello World” que a grande maioria das linguagens de programação implementa. O seu programa será assim:

echo Hello World
pause

Salve isso em um arquivo chamado Hello.bat e dê dois cliques nele.

Comecemos percebendo alguns aspectos da linguagem. Em primeiro lugar, para mensagens, não é necessário colocar aspas simples ou duplas, somente jogar ali o que você quer. Em segundo, os comandos de Batch Script não diferenciam letras maiúsculas e minúsculas (apenas em mensagens ou coisas do tipo mais específicas). E, em terceiro, provavelmente seu CMD ficou assim:

C:> echo Hello World
Hello World

Não era o nosso objetivo, afinal, o programa deveria agir ocultando esses comandos, e não simplesmente continuar listando eles na tela. Edite seu arquivo e deixe-o assim:

@echo off
echo Hello World
pause

Agora os comandos executados pelo batch vão ficar ocultos no sistema. Simples, não?

Executando o programa notepad.exe

Digamos que você queira abrir o Notepad no Windows. Como o programa notepad.exe já está dentro do PATH do sistema, você não precisa fazer nada além de executá-lo:

@echo off
rem inicializa o notepad do Windows
start notepad.exe

E aí? Gostou da aula? Conta pra mim nos comentários 😊😄

References | Referências

H2
H3
H4
3 columns
2 columns
1 column
3 Comments
Ecency