Elimine tareas repetitivas mediante la automatización utilizando scripts generados por IA

Elimine tareas repetitivas mediante la automatización utilizando scripts generados por IA

¿Alguna vez te has visto abrumado por tareas informáticas tediosas? ¡No estás solo! La buena noticia es que, con un poco de ayuda de la inteligencia artificial (IA), puedes optimizar y automatizar tus tareas de Windows mediante scripts de PowerShell, lo que te permitirá dedicar tiempo valioso a actividades más importantes.

Descripción general de PowerShell: su aliado en la automatización

PowerShell funciona como un potente shell de línea de comandos y un completo lenguaje de scripting integrado en Windows, que ofrece soluciones administrativas y de automatización excepcionales. Según Microsoft, es una herramienta que puede transformar la forma en que gestionas las tareas en tu ordenador.

Interfaz de PowerShell

Con PowerShell, puede crear scripts (archivos autosuficientes llenos de comandos e instrucciones) para automatizar todo, desde la administración básica de archivos hasta operaciones complejas del sistema.

Para quienes se inician en la creación de scripts, hay numerosos scripts de PowerShell preescritos disponibles en línea. Por ejemplo, el Repositorio de Scripts de PowerShell cuenta con más de 500 scripts gratuitos diseñados para facilitar diversas tareas, como la monitorización del espacio en disco, la lista de programas instalados y la organización de fotos por fecha de creación.

Si bien estos scripts listos para usar son valiosos, el verdadero potencial de PowerShell reside en su capacidad de crear scripts personalizados que se adapten a sus requisitos específicos: ¡aquí es donde la IA cambia las reglas del juego!

Aprovechar la IA para generar scripts de PowerShell personalizados

Imagine tener que organizar miles de archivos recuperados de un disco duro dañado. En lugar de pasar horas dominando la sintaxis de PowerShell o buscando el script preexistente ideal, utilicé ChatGPT para crear un script personalizado.

Para mi necesidad específica (ordenar distintos tipos de archivos, como imágenes, audio y documentos), creé una instrucción clara y concisa para la IA:

Indicador de IA para PowerShell

Esto es lo que me aseguré de incluir en mi mensaje de IA:

  • Instrucciones para manejar archivos que no encajan en ninguna categoría.
  • La tarea exacta de organizar archivos por sus extensiones.
  • Un desglose de categorías y tipos de archivos para cada grupo.

La IA generó rápidamente un script de PowerShell eficaz que abordó mi tarea de organización de archivos:

# 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."

Automatizar sus scripts de PowerShell con el Programador de tareas

La magia de los scripts de PowerShell generados por IA no termina en la creación; también se pueden configurar para que se ejecuten automáticamente, lo que elimina la necesidad de intervención humana.

Como suelo pasar por alto los descansos durante mis largas sesiones de computadora, creé un script que me avisa para que tome descansos cortos. Una vez más, utilicé IA para generar este recordatorio con una instrucción sencilla:

Aviso de IA para recordatorio de descanso

El script de PowerShell resultante se adaptó perfectamente a mis necesidades:

# 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."

Ahora que tenía el script, lo configuré para que se ejecutara automáticamente cada hora a través del Programador de tareas de Windows. Así es como funciona:

Programador de tareas Tarea básica

Primero, guardé mi script generado por IA como archivo.ps1 y accedí al Programador de Tareas desde el Menú Inicio. Procedí a crear una nueva tarea básica con un activador diario.

Editar disparador en el Programador de tareas

Modifiqué la configuración del disparador para que la tarea se ejecute cada hora. Tras encontrar la tarea en la Biblioteca del Programador de Tareas, hice clic derecho y seleccioné Propiedades. En la pestaña Disparadores, hice clic en Editar, marqué la opción Repetir tarea cada y establecí el intervalo en 1 hora. También seleccioné Indefinidamente en Duración y guardé los cambios haciendo clic en Aceptar.

Propiedades de los activadores en el Programador de tareas

A continuación, ajusté la configuración de las acciones en la ventana Propiedades. Para ello, dirigí mi atención a la pestaña Acciones y hice clic en Editar. En el campo Programa/script, introduje powershell.exe[en lugar de la ruta directa a mi script].En el campo Agregar argumentos, usé [ -ExecutionPolicy Bypass -WindowStyle Hidden -File "C:\Users\David\Desktop\eye-saver.ps1", que abarcaba tanto las políticas de ejecución como la ruta completa a mi script].

Configuración del script de PowerShell Eye Saver

Tras guardar la configuración, finalicé la ventana Propiedades haciendo clic en Aceptar dos veces.¿El resultado? ¡Un recordatorio que funciona a la perfección y que mejora mi productividad y reduce la fatiga visual!

La ventaja de usar IA para crear y automatizar scripts de PowerShell es la notable eficiencia que aporta a tu rutina diaria. Con estos sencillos comandos, no solo fomentas un mejor flujo de trabajo, sino que también permites que tu ordenador trabaje por ti silenciosamente en segundo plano.

Todas las imágenes y capturas de pantalla se atribuyen a David Morelo.

Preguntas frecuentes

1.¿Necesito conocimientos de programación para crear scripts de PowerShell?

No, no necesitas conocimientos avanzados de programación. Con herramientas de IA como ChatGPT, puedes generar scripts simplemente describiendo lo que quieres, haciéndolos accesibles para todos.

2.¿Cómo puedo ejecutar mis scripts de PowerShell automáticamente?

Puede programar sus scripts de PowerShell con el Programador de tareas de Windows. Esto permite que se ejecuten a intervalos específicos, automatizando sus tareas sin necesidad de que usted haga nada más.

3.¿Qué pasa si mi script generado por IA no funciona como se esperaba?

Es común que los scripts iniciales requieran ajustes. Revise el código generado, asegúrese de que las rutas sean correctas y ajuste los parámetros. No dude en consultar la documentación de PowerShell para solucionar problemas.

Fuente e imágenes

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *