Elimine tarefas repetitivas por meio da automação usando scripts gerados por IA

Elimine tarefas repetitivas por meio da automação usando scripts gerados por IA

Você já se viu atolado em tarefas tediosas de computador? Você não está sozinho! A boa notícia é que com um pouco de assistência da inteligência artificial (IA), você pode agilizar e automatizar suas tarefas do Windows usando scripts do PowerShell, liberando tempo valioso para atividades mais importantes.

Visão geral do PowerShell: seu aliado de automação

O PowerShell serve tanto como um poderoso shell de linha de comando quanto como uma linguagem de script abrangente incorporada ao Windows, fornecendo soluções administrativas e de automação notáveis. De acordo com a Microsoft, é uma ferramenta que pode transformar a maneira como você gerencia tarefas no seu computador.

Interface do PowerShell

Com o PowerShell, você pode criar scripts — arquivos autossuficientes cheios de comandos e instruções — para automatizar tudo, desde o gerenciamento básico de arquivos até operações complexas do sistema.

Para os novatos em scripts, vários scripts PowerShell pré-escritos estão disponíveis online. Por exemplo, o PowerShell Scripts Repository apresenta mais de 500 scripts gratuitos projetados para auxiliar em várias tarefas, incluindo monitoramento de espaço em disco, listagem de programas instalados e organização de fotos por data de criação.

Embora esses scripts prontos para uso sejam valiosos, o verdadeiro potencial do PowerShell está na sua capacidade de criar scripts personalizados adequados às suas necessidades específicas.É aqui que a IA se torna um divisor de águas!

Aproveitando a IA para gerar scripts personalizados do PowerShell

Imagine precisar organizar milhares de arquivos recuperados de um disco rígido danificado. Em vez de passar horas dominando a sintaxe do PowerShell ou vasculhando o script ideal pré-existente, empreguei o ChatGPT para preparar um script personalizado.

Para minha necessidade específica — classificar vários tipos de arquivos (como imagens, áudio e documentos) — criei um prompt claro e conciso para a IA:

Prompt de IA para PowerShell

Aqui está o que certifiquei de incluir no meu prompt de IA:

  • Instruções para lidar com arquivos que não se enquadram em nenhuma categoria.
  • A tarefa exata de organizar arquivos por suas extensões.
  • Uma análise de categorias e tipos de arquivo para cada grupo.

A IA gerou rapidamente um script PowerShell eficaz que resolveu minha tarefa de organização de arquivos:

# Define the source folder as the current directory where the script is executed$sourceFolder = $PSScriptRoot# Define category folders and their associated file extensions$categories = @{ "Images" = @(".jpg", ".jpeg", ".png", ".gif", ".bmp", ".tiff", ".webp", ".svg", ".ico", ".raw", ".cr2", ".nef", ".heic", ".psd", ".ai", ".eps") "Documents" = @(".pdf", ".docx", ".doc", ".txt", ".rtf", ".xlsx", ".xls", ".pptx", ".ppt", ".odt", ".ods", ".odp", ".md", ".csv", ".json", ".xml", ".html", ".htm", ".log", ".tex", ".epub", ".mobi") "Audio" = @(".mp3", ".wav", ".aac", ".flac", ".ogg", ".wma", ".m4a", ".mid", ".midi", ".aiff", ".alac", ".ape", ".opus", ".amr", ".au", ".voc") "Video" = @(".mp4", ".avi", ".mov", ".wmv", ".mkv", ".flv", ".webm", ".m4v", ".mpg", ".mpeg", ".3gp", ".3g2", ".ts", ".vob", ".ogv", ".divx", ".asf", ".rm", ".rmvb") "Archives" = @(".zip", ".rar", ".7z", ".tar", ".gz", ".bz2", ".xz", ".cab", ".iso", ".tgz", ".tbz2", ".lzh", ".dmg", ".pkg", ".deb", ".rpm") "Code" = @(".py", ".js", ".html", ".css", ".java", ".c", ".cpp", ".cs", ".php", ".rb", ".go", ".swift", ".sql", ".ps1", ".sh", ".bat", ".vbs", ".ts", ".jsx", ".r", ".pl", ".lua") "Executables" = @(".exe", ".msi", ".app", ".apk", ".dll", ".bin", ".com", ".jar", ".gadget", ".wsf", ".appx", ".appxbundle") "Other" = @()}# Create category folders if they don't existforeach ($category in $categories. Keys) { $categoryPath = Join-Path -Path $sourceFolder -ChildPath $category if (-not (Test-Path -Path $categoryPath)) { New-Item -Path $categoryPath -ItemType Directory | Out-Null Write-Host "Created folder: $category" }} # Get all files in the source folder (non-recursive)$files = Get-ChildItem -Path $sourceFolder -File | Where-Object { $_. Name -ne $MyInvocation. MyCommand. Name } # Counter for moved files$movedFiles = 0$totalFiles = $files. CountWrite-Host "Starting to organize $totalFiles files..." # Process each fileforeach ($file in $files) { $extension = $file. Extension. ToLower() $targetCategory = "Other" # Determine which category the file belongs to foreach ($category in $categories. Keys) { if ($category -eq "Other") { continue } if ($categories[$category] -contains $extension) { $targetCategory = $category break } } # Move the file to the appropriate category folder $targetPath = Join-Path -Path $sourceFolder -ChildPath $targetCategory $targetFile = Join-Path -Path $targetPath -ChildPath $file. Name # Check if target file already exists and handle accordingly if (Test-Path -Path $targetFile) { $baseName = [System. IO. Path]::GetFileNameWithoutExtension($file. Name) $newName = "$baseName`_$(Get-Random)$extension" $targetFile = Join-Path -Path $targetPath -ChildPath $newName } Move-Item -Path $file. FullName -Destination $targetFile $movedFiles++ # Show progress $percentComplete = [math]::Round(($movedFiles / $totalFiles) * 100, 2) Write-Progress -Activity "Organizing Files" -Status "$movedFiles of $totalFiles files processed ($percentComplete%)" -PercentComplete $percentComplete } Write-Host "File organization complete! Moved $movedFiles files into categories."

Automatizando seus scripts do PowerShell com o Agendador de Tarefas

A magia dos scripts do PowerShell gerados por IA não termina na criação; eles também podem ser configurados para serem executados automaticamente, eliminando a necessidade de intervenção humana!

Como frequentemente ignoro pausas durante minhas longas sessões de computador, criei um script que me alerta para fazer pausas curtas. Mais uma vez, utilizei IA para gerar este script de lembrete com um prompt direto:

Aviso de IA para lembrete de intervalo

O script PowerShell resultante foi perfeitamente adaptado às minhas necessidades:

# Script to remind user to take regular screen breaks # Load required assemblies for notifications Add-Type -AssemblyName System. Windows. Forms# Function to show break reminder notification function Show-BreakReminder { $motivationalMessages = @( "Time for a 5-minute break! Rest your eyes and stretch.", "Screen break time! Look at something 20 feet away for 20 seconds.", "Break time! Stand up and move around for 5 minutes.", "Your eyes need a rest! Take 5 minutes away from the screen.", "Productivity hack: A 5-minute break now will boost your focus!" ) # Select a random message $randomMessage = $motivationalMessages | Get-Random # Create and configure the notification $notification = New-Object System. Windows. Forms. NotifyIcon $notification. Icon = [System. Drawing. SystemIcons]::Information $notification. BalloonTipTitle = "Wellness Reminder" $notification. BalloonTipText = $randomMessage $notification. Visible = $true # Show notification for 10 seconds $notification. ShowBalloonTip(10000) # Clean up after a delay Start-Sleep -Seconds 12 $notification. Dispose() } # Display an initial notification Show-BreakReminder Write-Host "Break reminder displayed. Set this script to run hourly using Task Scheduler."

Agora que eu tinha o script, configurei-o para executar automaticamente a cada hora pelo Windows Task Scheduler. Veja como:

Agendador de tarefas Tarefa básica

Primeiro, salvei meu script gerado pela IA como um arquivo.ps1 e acessei o Agendador de Tarefas pelo Menu Iniciar. Prossegui para criar uma nova tarefa básica com um gatilho diário.

Editar gatilho no Agendador de tarefas

Modifiquei as configurações do gatilho para executar a tarefa de hora em hora. Após localizar minha tarefa na Biblioteca do Agendador de Tarefas, cliquei com o botão direito nela e selecionei Propriedades. Na guia Gatilhos, cliquei em Editar, marquei a opção Repetir tarefa a cada: e configurei o intervalo para 1 hora. Também selecionei Indefinidamente em duração e salvei minhas alterações clicando em OK.

Propriedades do gatilho no Agendador de tarefas

Em seguida, ajustei as configurações de ação na janela Propriedades navegando até a aba Ações e clicando em Editar. Para o campo Programa/script, eu insiro powershell.exeem vez do caminho direto para meu script. No campo Adicionar argumentos, usei -ExecutionPolicy Bypass -WindowStyle Hidden -File "C:\Users\David\Desktop\eye-saver.ps1", que cobria as políticas de execução e o caminho completo para meu script.

Configuração do script do PowerShell do Eye Saver

Após salvar essas configurações, finalizei a janela Propriedades clicando em OK duas vezes. O resultado? Um lembrete de execução contínua que aumenta minha produtividade e reduz o cansaço visual!

A beleza de empregar IA na criação e automatização de scripts do PowerShell é a eficiência notável que ele introduz na sua rotina diária. Com esses comandos simples, você não está apenas promovendo um melhor fluxo de trabalho, mas também capacitando seu computador a fazer o trabalho para você silenciosamente em segundo plano.

Todas as imagens e capturas de tela são creditadas a David Morelo.

Perguntas frequentes

1. Preciso de conhecimento de programação para criar scripts do PowerShell?

Não, você não precisa de conhecimento extensivo de programação. Com ferramentas de IA como ChatGPT, você pode gerar scripts simplesmente descrevendo o que você quer, tornando-o acessível para todos.

2. Como posso executar meus scripts do PowerShell automaticamente?

Você pode agendar seus scripts do PowerShell usando o Windows Task Scheduler. Isso permite que eles sejam executados em intervalos especificados, automatizando suas tarefas sem nenhuma ação adicional sua.

3. E se meu script gerado pela IA não funcionar como esperado?

É comum que scripts iniciais exijam ajustes. Revise o código gerado, garanta que seus caminhos estejam precisos e ajuste quaisquer parâmetros. Não hesite em consultar a documentação do PowerShell para solução de problemas!

Fonte e Imagens

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *