El cuadro de Windows 7 tiene una lista de tareas programadas -> Tareas predeterminadas de Windows + Ciertas tareas personalizadas que comienzan con una cadena determinada. El código anterior eliminó todas las tareas con el comando:
schtasks /Delete /TN * /F
En lugar queremos mantener las tareas de Windows por defecto, y de forma selectiva eliminar las tareas que se inician con una cierta cadena digamos abctask1
, abctask2
. ¿Cómo proceder más? ¡Gracias!
schtasks /Delete /TN abctask* /F
?/query
opción podría ser obtener la lista de tareas con la opción, recorrerlas para encontrar las que coincidan con su patrón deseado y eliminarlas usando sus nombres completos. Algo así como un script Perl podría ser lo mejor para este tipo de tarea.Respuestas:
Asumiendo que sus tareas son una palabra (por ejemplo, abctask1, abctask2 - no "abc task 1"), esto debería funcionar:
fuente
find
, siendo menos de 1/4 del tamaño defindstr
reaccionaría más rápido. Además, ambos admiten el uso de comillas para rodear el término de búsqueda (losfind
requiere), lo que permitirá encontrar tareas como la "tarea abc 1" que mencionó.find
vs.findstr
, particularmente en algo tan pequeño. :-)for /f "tokens=2" %%x in ('schtasks /query /xml ^| findstr taskname') do
Si desea que se use el comodín (*) en su selección de tareas para eliminar, intente usar este simple comando por lotes:
(Sólo prueba)
fuente
Terminé aquí mientras buscaba una forma de automatizar la desactivación de algunas tareas programadas de Windows. No pude obtener ninguno de los ejemplos actuales para manejar adecuadamente los nombres de tareas con barras diagonales invertidas y espacios. Descubrí que usar el formato csv y el comando find funcionó mejor para mí:
fuente
Ustedes han ayudado mucho aquí. Si bien lo anterior funciona para los nombres más cortos y 'user3490' publicó una buena adición a la cadena, todavía no parecía funcionar con nombres con espacios. Encontré que usar comodines con SCHTASKS funciona con '.' en lugar de '*' y encontró una modificación interesante a la cadena que permite la oportunidad que tanto necesita. Pegaré a continuación ejemplos de lo que usé en un archivo por lotes:
¡Gracias a todos por los excelentes consejos! Soy consciente de que este tema tiene más de un año, pero espero que esto ayude a alguien que no haya llegado tan lejos.
fuente
La respuesta de Mark funciona bien siempre que tenga nombres de tarea programados bastante cortos, pero la salida predeterminada de
schtasks /query
(formato de tabla) trunca los nombres de tarea 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 la lista, que no se trunca:
Si las tareas que desea eliminar tienen un prefijo común, puede refinar aún más la coincidencia desde FindStr:
fuente