⏰ 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
- Guarda el script corregido en un archivo apagar_despues_url.bat.
- Sustituye la URL de ejemplo por la tuya.
- Ejecútalo desde el Explorador de Windows o desde CMD.
- Verás que no aparece ninguna ventana (ejecución oculta). El PC se apagará después de unos 10-12 segundos (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! 🖥️⚡