La boîte de Windows 7 a une liste de tâches planifiées -> Tâches Windows par défaut + Certaines tâches personnalisées qui commencent toutes par une certaine chaîne. Le code précédent a supprimé toutes les tâches avec la commande:
schtasks /Delete /TN * /F
Au lieu de cela, nous voulons conserver les tâches Windows par défaut et supprimer sélectivement les tâches qui commencent par une certaine chaîne abctask1
, par exemple abctask2
. Comment aller plus loin? Merci!
schtasks /Delete /TN abctask* /F
?/query
option, de les parcourir pour trouver celles qui correspondent à votre modèle souhaité et de les tuer en utilisant leurs noms complets. Quelque chose comme un script Perl pourrait être le mieux pour ce genre de tâche.Réponses:
En supposant que vos tâches sont un mot (par exemple, abctask1, abctask2 - pas "abc task 1"), cela devrait fonctionner:
la source
find
, étant inférieure à 1/4 de la taille defindstr
, réagirait plus rapidement. En outre, les deux prennent en charge l'utilisation de guillemets pour entourer le terme de recherche (lesfind
obligent), ce qui permettra de trouver des tâches comme la «tâche abc 1» que vous avez mentionnée.find
vs.findstr
, en particulier dans quelque chose d'aussi petit. :-)for /f "tokens=2" %%x in ('schtasks /query /xml ^| findstr taskname') do
Si vous souhaitez que le caractère générique (*) soit utilisé dans votre sélection de tâches à supprimer, essayez d'utiliser cette simple commande par lots:
(échantillon seulement)
la source
Je me suis retrouvé ici en cherchant un moyen d'automatiser la désactivation de certaines tâches planifiées de Windows. Je n'ai pu obtenir aucun des exemples actuels pour gérer correctement les noms de tâche avec des barres obliques inverses et des espaces. J'ai trouvé que l'utilisation du format csv et de la commande find me convenait le mieux:
la source
Vous avez beaucoup aidé ici. Alors que ce qui précède fonctionne pour les noms plus courts et que «user3490» a posté un assez bon ajout à la chaîne, cela ne semble toujours pas fonctionner avec les noms avec des espaces. J'ai trouvé que l'utilisation de caractères génériques avec SCHTASKS fonctionnait avec '.' plutôt que '*' et a trouvé une modification intéressante à la chaîne permettant une opportunité bien nécessaire! Je vais coller ci-dessous des exemples de ce que j'ai utilisé dans un fichier batch:
Merci à tous ici pour les excellents pointeurs! Je suis conscient que ce sujet a plus d'un an, mais j'espère que cela aide quelqu'un d'autre qui n'est peut-être pas allé aussi loin.
la source
La réponse de Mark fonctionne bien tant que vous avez des noms de tâche planifiés assez courts, mais la sortie par défaut de
schtasks /query
(format de tableau) tronque les noms de tâche à 32 caractères, ce qui provoque des erreurs lors de la tentative de suppression.Si vous avez besoin de gérer des tâches qui ont des noms plus longs, je recommanderais plutôt d'utiliser le format de sortie de liste, qui ne tronque pas:
Si les tâches que vous souhaitez supprimer ont un préfixe commun, vous pouvez affiner la correspondance à partir de findstr:
la source