Eliminar selectivamente tareas programadas del sistema

Eliminar selectivamente tareas programadas del sistema

El cuadro de Windows 7 tiene una lista de tareas programadas -> Tareas predeterminadas de Windows + Ciertas tareas personalizadas que comienzan con una determinada cadena. El código anterior eliminó todas las tareas con el comando:

schtasks /Delete /TN * /F

En su lugar, queremos conservar las tareas predeterminadas de Windows y eliminar selectivamente las tareas que comienzan con una determinada cadena abctask1, por ejemplo abctask2,. ¿Cómo proceder más? ¡Gracias!

Respuesta1

Suponiendo que sus tareas sean una sola palabra (por ejemplo, abctask1, abctask2, no "abc tarea 1"), esto debería funcionar:

for /f %%x in ('schtasks /query ^| findstr abctask') do schtasks /Delete /TN %%x /F

Respuesta2

Si desea utilizar un comodín (*) en su selección de tareas para eliminar, intente utilizar este sencillo comando por lotes:

(Sólo prueba)

echo off
del %SystemDrive%\Windows\Tasks\Google*
del %SystemDrive%\Windows\Tasks\Facebook*

Respuesta3

Terminé aquí mientras buscaba una manera de automatizar la desactivación de algunas tareas programadas de Windows. No pude conseguir que ninguno de los ejemplos actuales manejara adecuadamente los nombres de las tareas con barras invertidas y espacios. Descubrí que usar el formato csv y el comando buscar funcionaron mejor para mí:

for /f "tokens=1 delims=," %%x in ('schtasks /query /fo csv ^| find "\Microsoft\Windows\Application Experience\"') do schtasks /Delete /TN %%x /F

Respuesta4

La respuesta de Mark funciona bien siempre que tenga nombres de tareas programadas bastante cortos, pero la salida predeterminada de schtasks /query(formato de tabla) trunca los nombres de las tareas a 32 caracteres, lo que provoca errores al intentar eliminarlos.

Si necesita lidiar con tareas que tienen nombres más largos, recomendaría usar el formato de salida de lista, que no se trunca:

for /f "tokens=2 delims=\" %%x in ('schtasks /query /fo:list ^| findstr abctask') do schtasks /Delete /TN %%x /F

Si las tareas que desea eliminar tienen un prefijo común, puede refinar aún más la coincidencia desde findtr:

for /f "tokens=2 delims=\" %%x in ('schtasks /query /fo:list ^| findstr ^^abctask') do schtasks /Delete /TN %%x /F

información relacionada