Automação de tarefas em C#: 5 ferramentas poderosas para o desenvolvedor preguiçoso

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Por que C# não é só sobre sites e jogos?

\n\n

Quando se ouve "automação", a maioria lembra de Python ou Bash. E isso é justo: eles são leves, baseados em scripts, "para pobres". Mas e se você for um desenvolvedor .NET que não quer aprender uma nova sintaxe por causa de um único script? Ou seu projeto já está em C#, e arrastar dependências do Python para analisar logs é um inferno?

\n\n

Bem-vindo ao mundo da automação de tarefas em C#. Não é apenas "escrever um aplicativo de console". É uma ferramenta completa que pode trabalhar com o sistema de arquivos, registro, objetos COM, GUI e até executar comandos PowerShell. E tudo isso — com tipagem forte, IntelliSense e sem surpresas.

\n\n

Neste artigo, vamos explorar 5 cenários específicos que você pode aplicar ainda hoje. Sem enrolação — apenas código e casos reais.

\n\n

1. Manipulação de arquivos: limpando logs, arquivando projetos

\n\n

A dor mais comum de qualquer desenvolvedor são pastas de logs inchadas, arquivos inúteis e a necessidade de fazer backup de builds. A automação C# de operações com arquivos é feita em 5 linhas.

\n\n

Exemplo: excluindo arquivos mais antigos que N dias

\n\n
using System.IO;\n\nstring path = @"C:\\Logs\\";\nint daysOld = 30;\n\nvar oldFiles = Directory.GetFiles(path, "*.*", SearchOption.AllDirectories)\n    .Where(f => File.GetLastWriteTime(f) < DateTime.Now.AddDays(-daysOld));\n\nforeach (var file in oldFiles)\n{\n    File.Delete(file);\n    Console.WriteLine($"Excluído: {file}");\n}\n
\n\n

Altere SearchOption.AllDirectories para TopDirectoryOnly — e o script funciona apenas na raiz. Adicione try-catch — e ele estará pronto para produção.

\n\n

Exemplo: arquivando uma pasta com data

\n\n
using System.IO.Compression;\n\nstring source = @"C:\\Projects\\MyApp\\bin\\Release";\nstring zipPath = $@"C:\\Backups\\MyApp_{DateTime.Now:yyyy-MM-dd}.zip";\n\nZipFile.CreateFromDirectory(source, zipPath);\nConsole.WriteLine($"Arquivo criado: {zipPath}");\n
\n\n

Este código pode ser agendado no Agendador de Tarefas do Windows (Task Scheduler) — e você esquece dos backups manuais. Automação em C# em ação.

\n\n

2. Trabalhando com o registro: alterando configurações do sistema

\n\n

Às vezes é necessário definir uma chave de registro para todos os usuários ou, ao contrário, remover uma entrada de vírus. C# através de Microsoft.Win32 faz isso de forma segura e sem arquivos BAT.

\n\n
using Microsoft.Win32;\n\n// Definindo um valor\nRegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\\MyCompany", true);\nif (key == null)\n{\n    key = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\\MyCompany");\n}\nkey.SetValue("InstallPath", @"C:\\Program Files\\MyApp");\nkey.Close();\n
\n\n

Para HKEY_CURRENT_USER, use Registry.CurrentUser. Importante: para HKLM são necessários privilégios de administrador — execute o aplicativo como administrador.

\n\n

3. PowerShell a partir do C#: cruzando dois mundos

\n\n

Às vezes é mais fácil escrever um comando PowerShell do que implementá-lo em C#. Por exemplo, obter a lista de programas instalados ou reiniciar um serviço. A biblioteca System.Management.Automation permite executar scripting em C# com chamadas de comandos PS.

\n\n

Instale o pacote NuGet:

\n
Install-Package Microsoft.PowerShell.SDK
\n\n

Exemplo: reiniciando um serviço

\n\n
using System.Management.Automation;\n\nusing (PowerShell ps = PowerShell.Create())\n{\n    ps.AddScript("Restart-Service -Name 'Spooler' -Force");\n    var results = ps.Invoke();\n    \n    if (ps.HadErrors)\n    {\n        foreach (var error in ps.Streams.Error)\n        {\n            Console.WriteLine($"Erro: {error.Exception.Message}");\n        }\n    }\n    else\n    {\n        Console.WriteLine("Serviço reiniciado.");\n    }\n}\n
\n\n

Dessa forma, você obtém a flexibilidade do PowerShell e a segurança do C#. Perfeito para automação Windows em cor

Blogs

Book Recommendations