Windows 7 ma listę zaplanowanych zadań -> Domyślne zadania Windows + Niektóre niestandardowe zadania, które zaczynają się od określonego ciągu. Poprzedni kod usunął wszystkie zadania za pomocą polecenia:
schtasks /Delete /TN * /F
Zamiast tego chcemy zachować domyślne zadania systemu Windows i selektywnie usunąć zadania rozpoczynające się od określonego ciągu abctask1
, np abctask2
. Jak kontynuować? Dzięki!
schtasks /Delete /TN abctask* /F
?/query
opcją, przeglądanie ich w celu znalezienia tych, które pasują do pożądanego wzorca, i zabijanie ich przy użyciu ich pełnych nazw. Coś takiego jak skrypt Perla może być najlepsze do tego rodzaju zadań.Odpowiedzi:
Zakładając, że twoje zadania są jednym słowem (np. Abctask1, abctask2 - nie „abc task 1”), powinno to działać:
źródło
find
, że mniejszy niż 1/4 wielkościfindstr
zareagowałby szybciej. Oba obsługują także użycie cudzysłowów dookoła wyszukiwanego hasła (find
wymaga ich), ponieważ pozwoli to na znalezienie zadań takich jak „zadanie abc 1”, o którym wspomniałeś.find
porównaniu zfindstr
, szczególnie w czymś tak małym. :-)for /f "tokens=2" %%x in ('schtasks /query /xml ^| findstr taskname') do
Jeśli chcesz użyć symbolu wieloznacznego (*) do wyboru zadań do usunięcia, spróbuj użyć tego prostego polecenia wsadowego:
(tylko próbka)
źródło
Skończyłem tutaj, szukając sposobu na automatyzację wyłączania niektórych standardowych zadań Windows. Nie mogłem uzyskać żadnego z bieżących przykładów, aby poprawnie obsługiwać nazwy zadań za pomocą odwrotnych ukośników i spacji. Przekonałem się, że użycie formatu csv i polecenia find działały dla mnie najlepiej:
źródło
Pomogliście tu całkiem sporo. Chociaż powyższe działa w przypadku krótszych nazw, a „user3490” opublikował całkiem niezły dodatek do ciągu, nadal nie działa z nazwami ze spacjami. Zauważyłem, że używanie symboli wieloznacznych w SCHTASKS-ach działa z „.” zamiast „*” i znalazłem interesującą modyfikację ciągu, która dała bardzo potrzebną okazję! Wkleję poniżej przykłady tego, czego użyłem w pliku wsadowym:
Dziękuję wam wszystkim za doskonałe wskazówki! Wiem, że ten temat ma ponad rok, ale mam nadzieję, że pomoże to komuś innemu, kto mógł nie dotrzeć tak daleko.
źródło
Odpowiedź Marka działa dobrze, o ile masz dość krótkie zaplanowane nazwy zadań, ale domyślne wyjście to
schtasks /query
(format tabeli) skraca nazwy zadań do 32 znaków, co powoduje błędy podczas próby ich usunięcia.Jeśli musisz poradzić sobie z zadaniami o dłuższych nazwach, zaleciłbym zamiast tego użycie formatu wyjściowego listy, który nie obcina:
Jeśli zadania, które chcesz usunąć, mają wspólny prefiks, możesz dodatkowo zawęzić dopasowanie z findstr:
źródło