Zaplanuj zadanie systemu Windows co minutę

13

Muszę zaplanować zadanie systemu Windows, aby co minutę uruchamiał skrypt. W większości przypadków skrypt nie musi niczego wykonywać i istnieje natychmiast. Kiedy skrypt musi coś wykonać, chcę, aby zadanie to zostało uruchomione tak szybko, jak to możliwe, a więc w odstępie jednej minuty.

Teraz interfejs użytkownika Windows Scheduler stał się dość mylący w ostatnich latach, więc nie jestem pewien, jaki jest najlepszy sposób uruchamiania zadania co minutę (lub 5 minut ..) w systemie Windows 2008 R2.

Czy to najlepszy sposób na zaplanowanie zadania w systemie Windows co minutę? Czy to jest niezawodne? Czy uruchamia się bezpośrednio po ponownym uruchomieniu komputera, czy też jest uruchamiany ponownie dopiero o 12:00? Pamiętaj, że nie mogę używać / pisać niestandardowej aplikacji serwisowej, ponieważ muszę być bardzo przenośna.

Dennis G.
źródło
Nie, to nie jest najlepszy sposób. W skrypcie należy użyć funkcji uśpienia lub oczekiwania.
Joseph Kern

Odpowiedzi:

4

Tak, ta usługa będzie działać po ponownym uruchomieniu, możesz to sprawdzić w dzienniku transakcji usługi Harmonogramu zadań:

    Systemroot \ SchedLgU.txt

    (gdzie Systemroot jest folderem instalacyjnym systemu Windows)

Jeśli to nie działa poprawnie (pod XP, niepewny co do ekwiwalentu 2008):

    
    Panel sterowania -> Narzędzia administracyjne -> Usługi -> Harmonogram zadań 

    Ustaw na auto. 

Dokumentacja 2008 tutaj , dokumentacja XP tutaj

Harmonogram zadania rozpoczyna się o określonej godzinie, a następnie jest wykonywany na podstawie parametrów powtarzania. Czas rozpoczęcia można uznać za czas „instalacji zadania”, nie jest on częścią parametrów powtarzania (z wyjątkiem przesunięcia timera). Mam nadzieję, że to ma sens!

Andy
źródło
Miałem na myśli to, że jeśli komputer zostanie zrestartowany, czy zadanie jest uruchamiane ponownie bezpośrednio po ponownym uruchomieniu , czy też jest uruchamiane ponownie dopiero o 12:00, jak określono w GUI? Potrzebuję zadania do uruchomienia co minutę, niezależnie od ponownego uruchomienia komputera itp.
Dennis G.
I jak mogę bardzo, jeśli zadanie zostało wykonane? Czy jest zapisany gdzieś w Dzienniku zdarzeń? Nie mogę znaleźć żadnych wpisów w dzienniku. Dzięki.
Dennis G.
Zaktualizowana odpowiedź dla wyjaśnienia
Andy
18

Miałem ten sam wymóg. W Server 2008 możesz modyfikować zadanie Powtarzaj co: menu rozwijane. Domyślnie najniższą wartością jest „5 minut” , ale możesz po prostu wpisać „1 minutę” . Możesz to zweryfikować, patrząc na kartę Wyzwalacze i widząc, że jest napisane „... powtarzaj co 00:01:00 ...” . Możesz także spróbować wpisać „10 sekund”, a pojawi się błąd informujący o wybraniu opcji dłuższej niż 1 minuta.

coryvb123
źródło
3
To była część pytania, które mnie interesowało. Mogę potwierdzić, że nadal działa w 2012 R2.
Melikoth,
8

Jestem w stanie zaplanować zadanie powtarzania raz na minutę w wierszu polecenia „schtasks”. Przykładem kodu jest:

schtasks / create / sc minute / mo 1 / tn "Nazwa zadania" / tr c: \ temp \ filename.exe

Zadanie jest wyświetlane w interfejsie GUI systemu Windows 2008 R2 i jest uruchamiane raz na minutę. Zadanie należy utworzyć i zmodyfikować za pomocą narzędzia wiersza polecenia „schtasks”.

Niestety, Microsoft głupio zaprojektował harmonogram zadań Windows 2008 R2, porzucając elastyczną konfigurację znajdującą się w Harmonogramie zadań Windows 2003, na rzecz kilku ograniczonych możliwości interwałów.

davephan

davephan
źródło
Działa to na Win7. Dzięki
Vladimir Vukanac,
-1

spróbuj tego, pracował dla mnie ...

REM ================================================= ===============

REM # MAINBODY

REM ================================================= ==============

if "% 1" == "" echo Sposób użycia: - C: \ scripts \ port_schtask.cmd ^ ^ &&% SystemRoot% \ system32 \ ping 127.0.0.1 -n 10> nul && exit

jeśli nie istnieje C: \ scripts \ port.bat echo Zastosowanie: - Plik NIE istnieje C: \ scripts \ port.bat &&% SystemRoot% \ system32 \ ping 127.0.0.1 -n 10> nul && exit

% SystemRoot% \ system32 \ schtasks / delete / tn "port.bat% 1% 2" / f

% SystemRoot% \ system32 \ schtasks / create / tr "C: \ scripts \ port.bat% 1% 2" / SC MINUTE / MO 1 / tn "port.bat% 1% 2" / RU "SYSTEM"

% SystemRoot% \ system32 \ SCHTASKS / run / TN "port.bat% 1% 2"

% SystemRoot% \ system32 \ SCHTASKS |% SystemRoot% \ system32 \ find.exe "port.bat% 1% 2"

% SystemRoot% \ system32 \ schtasks / query / TN "port.bat% 1% 2"

% SystemRoot% \ system32 \ ping 127.0.0.1 -n 10> nul

rem ------------------------------------------------- -----

wiwaty RJB

RJB
źródło
Dlaczego wykonujesz nieistotne działania, takie jak pingowanie hosta lokalnego?
Tu-Reinstate Monica-dor duh