Saltar a contenido

⏰ Apagar el PC tras ejecutar una URL con espera

📌 Introducción

Imagina que necesitas lanzar un webhook (como un trigger de IFTTT) y, después de unos segundos, apagar el ordenador automáticamente. Es común en tareas de automatización doméstica, backups o cierres programados.

Sin embargo, un error típico es no esperar el tiempo suficiente o usar una sintaxis incorrecta para el apagado. En esta receta te mostramos el script corregido y explicamos cada paso.

🧩 El script original (con errores)

El usuario partió de este script en un archivo .bat o .cmd:

@echo off
start /min powershell.exe -WindowStyle Hidden -Command "Start-Sleep -Seconds 5; Invoke-WebRequest -Uri 'https://maker.ifttt.com/trigger/pc/with/key/tu_clave'; Start-Sleep -Seconds 5 shutdown -c"

Problemas detectados

  • El comando shutdown -c cancela un apagado, no lo inicia.
    • Falta un separador ; antes de shutdown dentro de la cadena de PowerShell.
    • No se especifica ningún tiempo o fuerza para el apagado.

✅ Solución: script corregido

@echo off
start /min powershell.exe -WindowStyle Hidden -Command "Start-Sleep -Seconds 5; Invoke-WebRequest -Uri 'https://maker.ifttt.com/trigger/pc/with/key/tu_clave'; Start-Sleep -Seconds 5; shutdown /s /t 0"

🔍 ¿Qué hace cada parte?

Comando Función @echo off Oculta los mensajes internos del Batch. start /min powershell.exe -WindowStyle Hidden Abre PowerShell minimizado y sin ventana visible. Start-Sleep -Seconds 5 Pausa durante 5 segundos (primera espera). Invoke-WebRequest -Uri '...' Realiza la petición HTTP GET a la URL (webhook de IFTTT). shutdown /s /t 0 Apaga el PC inmediatamente (/s = shutdown, /t 0 = sin demora).

Segunda espera

El segundo Start-Sleep -Seconds 5 da tiempo a que el webhook se procese antes de apagar. Ajusta este valor según necesites.

📦 Versiones alternativas

Usando Stop-Computer (PowerShell nativo)

@echo off
start /min powershell.exe -WindowStyle Hidden -Command "Start-Sleep 5; Invoke-WebRequest -Uri 'URL'; Start-Sleep 5; Stop-Computer -Force"

Con cierre forzado de aplicaciones

Añade /f al shutdown para forzar el cierre de programas sin guardar:

shutdown /s /f /t 0

⚠️ Consideraciones importantes

Permisos de administrador

El comando shutdown no requiere privilegios de administrador para apagar el equipo local, pero en algunas configuraciones de red o políticas de grupo podría ser necesario. Si el script falla, ejecuta el .bat como administrador.

Personalización de la URL

Reemplaza 'https://maker.ifttt.com/trigger/pc/with/key/tu_clave' con tu propio webhook. Asegúrate de que la clave sea correcta y que el trigger esté activo.

Depuración

Para probar sin apagar el PC realmente, sustituye shutdown /s /t 0 por shutdown /a (cancelar apagado) o simplemente muestra un mensaje con echo "Se apagaría el equipo".

🧪 Prueba paso a paso

  1. Guarda el script corregido en un archivo apagar_despues_url.bat.
  2. Sustituye la URL de ejemplo por la tuya.
  3. Ejecútalo desde el Explorador de Windows o desde CMD.
  4. Verás que no aparece ninguna ventana (ejecución oculta). El PC se apagará después de unos 10-12 segundos (5 + 5).
  5. Si quieres cancelar el apagado antes de que ocurra, abre CMD como administrador y escribe shutdown /a.

🖍️ Personalización avanzada

· Cambiar el tiempo de espera total: Modifica los segundos en Start-Sleep -Seconds X. · Ejecutar varias URLs: Añade más Invoke-WebRequest separados por ;. · Mostrar una notificación antes de apagar: Usa msg * "El PC se apagará en 5 segundos" antes del shutdown (requiere permisos).

📚 Conclusión

Con el script corregido ya puedes lanzar una URL, esperar unos segundos y apagar el ordenador de forma fiable. Recuerda que el error más común es usar shutdown -c (cancelar) en lugar de shutdown /s. Aplica esta receta en tus automatizaciones con IFTTT, Zapier o cualquier webhook.


¿Te ha sido útil? ¡Compártelo o guárdalo para futuros proyectos de automatización en Windows! 🖥️⚡