(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Cómo generar scripts de automatización con Microsoft Copilot: paso a paso

João Barros 28 de July de 2026 5 min de lectura

Ahorre tiempo al automatizar tareas repetitivas es una gran ventaja. Esta guía muestra cómo generar un script de automatización con Microsoft Copilot para organizar archivos en una carpeta según el tipo y la fecha, útil para gestión de archivos y copias de seguridad.

Requisitos previos

  • Cuenta con acceso a Microsoft Copilot (Copilot integrado en Microsoft 365 o Copilot para desarrolladores).
  • Entorno donde ejecutar scripts: Windows 10/11 con PowerShell o macOS/Linux con Bash (elija uno).
  • Editor de texto (se recomienda VS Code) y permisos para leer/escribir en la carpeta de destino.
  • Conocimientos básicos de comandos PowerShell o Bash (nivel introductorio).

Paso 1: Definir objetivo claro para el Copilot

Explique al Copilot exactamente lo que desea: mover archivos por tipo (p. ej.: .pdf, .docx, .jpg) a subcarpetas con el nombre de la extensión y, además, agrupar por año de modificación. Una petición clara evita respuestas vagas.

Prompt exemplo:
"Cria um script PowerShell que percorra a pasta C:\Users\MeuUtilizador\Downloads, crie subpastas por extensão (.pdf, .docx, .jpg) e, dentro de cada subpasta, crie subpastas por ano de modificação (ex: 2024). Move os ficheiros correspondentes. Inclui logging simples e tratamento de erros."

Paso 2: Elegir lenguaje y pedir versión mínima

Indique el lenguaje que va a usar (PowerShell para Windows, Bash para macOS/Linux) y pida una versión mínima, para compatibilidad. Esto evita comandos incompatibles.

Prompt exemplo para PowerShell:
"Gerar um script PowerShell compatível com PowerShell 7+.
- Input: caminho da pasta como variável $SourcePath.
- Criar subpastas por extensão e por ano de modificação.
- Fazer log em ficheiro move-log.txt.
- Incluir verificação de existência de ficheiro e tratamento de erros."

Paso 3: Pedir mejoras iterativas y explicar el porqué

Cuando el Copilot genere un primer borrador, solicite mejoras: rendimiento (usar Get-ChildItem con -File), seguridad (evitar sobrescritura) y mensajes de progreso. Explique por qué desea cada cambio para obtener código más alineado con su escenario.

Prompt de iteração:
"Optimiza para performance e evita sobrescrever ficheiros existentes (se existir, acrescenta um sufixo com contador). Adiciona Write-Progress para visibilidade."

Paso 4: Probar el script generado en un entorno controlado

Antes de ejecutar en la carpeta real, cree una carpeta de pruebas con algunos archivos de ejemplo. Ejecute el script en modo 'dry-run' si el Copilot incluye esa opción, o añada una variable $WhatIf para simular movimientos.

# Exemplo mínimo PowerShell para dry-run
$SourcePath = "C:\Temp\TestFiles"
$WhatIf = $true  # definir a $false para executar

# O script principal deve respeitar $WhatIf e usar -WhatIf onde aplicável

Paso 5: Revisar seguridad y permisos

Verifique que el script no ejecuta comandos con privilegios elevados sin necesidad y que usa rutas absolutas validadas. Pida al Copilot que añada validación de ruta y registro de errores con try/catch.

Prompt para validação:
"Acrescenta validação: confirma que $SourcePath existe e é uma pasta. Em caso de erro, grava no log e sai com código de erro 1."

Paso 6: Ejemplo final (PowerShell funcional)

A continuación hay un ejemplo mínimo y funcional que puede usar y adaptar. Sustituya la ruta por la que desee.

# Script PowerShell exemplo (PowerShell 7+)
param(
    [string]$SourcePath = "C:\Users\MeuUtilizador\Downloads",
    [switch]$WhatIf
)

$LogPath = Join-Path -Path $SourcePath -ChildPath "move-log.txt"

if (-not (Test-Path -Path $SourcePath -PathType Container)) {
    "[$(Get-Date)] Erro: Pasta não encontrada: $SourcePath" | Out-File -FilePath $LogPath -Append
    exit 1
}

Get-ChildItem -Path $SourcePath -File -Recurse | ForEach-Object -Begin { $i = 0 } -Process {
    $i++
    $ext = ($_.Extension -replace '^\.', '').ToLower()
    if ([string]::IsNullOrEmpty($ext)) { $ext = 'noext' }
    $year = $_.LastWriteTime.Year

    $destFolder = Join-Path -Path $SourcePath -ChildPath (Join-Path -Path $ext -ChildPath $year)
    if (-not (Test-Path -Path $destFolder)) { New-Item -Path $destFolder -ItemType Directory | Out-Null }

    $destPath = Join-Path -Path $destFolder -ChildPath $_.Name

    # Evitar sobrescrita: acrescentar sufixo se existir
    $count = 0
    $baseName = [System.IO.Path]::GetFileNameWithoutExtension($destPath)
    $extension = [System.IO.Path]::GetExtension($destPath)
    while (Test-Path -Path $destPath) {
        $count++
        $destPath = Join-Path -Path $destFolder -ChildPath ("{0}({1}){2}" -f $baseName, $count, $extension)
    }

    if ($WhatIf) {
        "WhatIf: Mover '$($_.FullName)' para '$destPath'" | Out-File -FilePath $LogPath -Append
    } else {
        try {
            Move-Item -Path $_.FullName -Destination $destPath -ErrorAction Stop
            "[$(Get-Date)] Moveu: '$($_.FullName)' -> '$destPath'" | Out-File -FilePath $LogPath -Append
        } catch {
            "[$(Get-Date)] Erro ao mover '$($_.FullName)': $_" | Out-File -FilePath $LogPath -Append
        }
    }
}

"[$(Get-Date)] Concluído. Processados: $i ficheiros." | Out-File -FilePath $LogPath -Append

Verificar el resultado

Confirme que la estructura de carpetas se creó (por tipo y año) y que los archivos se movieron sin pérdida. Abra el archivo move-log.txt para consultar el historial de operaciones y errores. Si usó $WhatIf primero, verifique solo las entradas 'WhatIf'.

Conclusión

Usar Microsoft Copilot para generar scripts acelera el desarrollo y reduce errores manuales. Como siguiente paso, pruebe adaptar el script para filtros (por tamaño, por fecha) o integrar con Power Automate para activación automática. Consejo: mantenga siempre una copia de prueba antes de ejecutar scripts sobre datos reales.