Apagada docs

Aprendiendo a programar el pasado

Herramientas de usuario

Herramientas del sitio


es:bat:apaga-cuando-acabe-robocopy.cmd
Apaga-cuando-acabe-robocopy.cmd

Este archivo hace que el ordenador se apague si robocopy no está ejecutándose.

En caso contrario, espera a que robocopy deje de ejecutarse.

Así, podemos iniciar robocopy por la noche y, antes de irnos a dormir, ejecutar este script para que apague el ordenador cuando robocopy termine.

apaga-al-terminar-robocopy.cmd
rem Guardar este programa como
rem apaga-al-terminar-robocopy.cmd
rem y ejecutarlo DESPUÉS de iniciar robocopy.
rem
:inicio
tasklist | find /i "robocopy" > estado_robocopy
for %%a in (estado_robocopy) do if %%~za.==0. goto :apaga
for /L %%f  in (1;1;10000) do rem %%f
goto :inicio
:apaga
shutdown /s /t 200
@echo **************************************
@echo Para CANCELAR EL APAGADO, abra una 
@echo línea de comandos y escriba
@echo Shutdown /a
:fin

Versión alternativa que se puede pegar en la línea de comandos

Esta versión alternativa no usa goto, por lo que puede pegarse en la línea de comandos.

Si va a convertirla en archivo de proceso por lotes (.bat o .cmd), debe cambiar %a por %%a.

Tenga en cuenta que en esta versión el apagado no se puede cancelar.

Nunca pegue nada en la línea de comandos sin estudiar previamente su funcionamiento. Debajo del código se explica el funcionamiento del mismo.

for /L %a in (1;0;100) do (
 tasklist |find /i "robocopy"
 if errorlevel 1 shutdown /s /f
)

Las siguientes líneas:

for /L %a in (1;0;1;100) do (
)

Repiten una y otra vez todas las líneas entre los dos paréntesis (se incrementa el valor de %a en 0 y se sale de los paréntesis cuando se llega a 100; obviamente, nunca se llega a 100).

La siguiente línea:

tasklist | find /i "robocopy"

pide a Windows la lista de aplicaciones activas y busca entre ellas robocopy. Si robocopy no está en ejecución, la salida de error se establece en 1.

La última línea:

if errorlevel 1 shutdown /s /f

Comprueba si errorlevel es mayor o igual a 1. En caso afirmativo, realiza un apagado forzado del ordenador (shutdown /s /f).

Este sitio web utiliza cookies. Al utilizar el sitio web, usted acepta almacenar cookies en su computadora. También reconoce que ha leído y entendido nuestra Política de privacidad. Si no está de acuerdo abandone el sitio web.Más información
es/bat/apaga-cuando-acabe-robocopy.cmd.txt · Última modificación: por nepenthes