Plik z batem, aby zadzwonić do A.bat, jeśli czas jest mniejszy niż 19:45 i zadzwonić B.bat, jeśli czas jest większy niż 19:45 (nie mogę w tym przypadku używać programu do planowania zadań systemu Windows, ponieważ mam ustawienie, które powoduje, że mój menedżer pobierania uruchamia ten plik z plikiem macierzystym za każdym razem, gdy plik jest pobierany za pośrednictwem tego menedżera pobierania)Plik bat, aby zadzwonić do A.bat, jeśli czas jest mniejszy niż 19:45 i zadzwonić do B.bat, jeśli czas jest większy niż 19:45,
Odpowiedz
Co powiesz na korzystanie z Harmonogramu zadań systemu Windows?
Sprawdź tutaj polecenia DATE and TIME.
Można użyć następującego kodu jako punkt odniesienia (można użyć bat
pliki ale wolę cmd
jako rozszerzenie):
@echo off
setlocal enableextensions enabledelayedexpansion
set tm=%time%
:: Test data on lines below.
:: set tm=18:59:59.00
:: set tm=19:00:00.00
:: set tm=19:44:59.00
:: set tm=19:45:00.00
:: set tm=23:59:59.99
set hh=!tm:~0,2!
set mm=!tm:~3,2!
if !hh! lss 19 (
call a.cmd
goto :done
)
if !hh! equ 19 (
if !mm! lss 45 (
call a.cmd
goto :done
)
)
call b.cmd
:done
endlocal
Należy pamiętać, że %time%
jest ten sam format, jak dostać się z time
polecenie i może zależeć od ustawień regionalnych. Format, który otrzymuję, to 20:17:28.48
na około 20:15, ale Twój wynik może być inny.
Jeśli tak, dostosuj podciągi, ustawiając hh
i mm
. Polecenie:
set mm=!tm:~3,2!
zestawy mm
do dwóch znaków tm
na przesunięcie 3 (gdzie 0 oznacza przesunięcie pierwszy znak).
Jeśli nie jesteś wielkim fanem kodu spaghetti, nawet w partii, można również użyć:
@echo off
setlocal enableextensions enabledelayedexpansion
set tm=%time%
:: Test data on lines below.
:: set tm=18:59:59.00
:: set tm=19:00:00.00
:: set tm=19:44:59.00
:: set tm=19:45:00.00
:: set tm=23:59:59.99
set hh=!tm:~0,2!
set mm=!tm:~3,2!
if !hh! lss 19 (
call a.cmd
) else (
if !hh! equ 19 if !mm! lss 45 (
call a.cmd
) else (
call b.cmd
)
)
endlocal
Po prostu ciekawy: czy w Windowsie nie ma "innego" język wsadowy? –
Czy nie ma "lub" w języku wsadowym Windows? :) –
@Adriano, nie jest to najbardziej przystosowany język, ale możesz zrobić kilka rzeczy: pokazano "else" i "and". Zazwyczaj emuluję 'lub' z wieloma' if's ustawiającymi flagę, a następnie 'if' na podstawie tej flagi. Prymitywny, ale jeśli jedynym narzędziem, jakie masz, jest szczęka mamuta, nie możesz być zbyt wybredny :-) – paxdiablo
Byłem niedawno robi coś podobnego i moje rozwiązanie było dla pętli - nie niezwykle zwarty, ale swoją robotę:
for /f "tokens=1,2,3,4 delims=:,. " %%i in ("%time%") do (
echo Timegrab = %%i %%j %%k %%l
set hr=%%i
set mn=%%j
set sc=%%k
set ms=%%l
)
Wtedy wszystko będzie trzeba zrobić to instrukcja if, aby sprawdzić, czy% h% była mniejsza niż 19% i mn% była mniejsza niż 45.
- 1. czas użytkownika mclapply większy niż minął czas
- 2. czas użytkownika większy niż w czasie rzeczywistym
- 3. Czas dat PHP większy niż dzisiaj
- 4. Wydajność: większy/mniejszy niż vs nie równa
- 5. Powinienem zadzwonić do SqlDataReader.HasRows, jeśli zadzwonię do SqlReader.Read
- 6. czas systemowy jest inny niż czas sygnatury Apache -?
- 7. jeśli rozmiar tablicy jest większa niż 1
- 8. Jak mogę zadzwonić do oryginalnego "operatora new", jeśli go przeciąłem?
- 9. Dlaczego kompilator nie jest błąd czas rzucony kiedy zadzwonić do funkcji C
- 10. Lepsze nasiona niż czas (0)?
- 11. JSF weryfikator większy niż zero
- 12. PHP DateTime(): Wyświetlaj czas dłuższy niż 24 godziny, ale nie jako dni, jeśli jest dłuższy niż 24 godziny.
- 13. poświadczeń do WMI zadzwonić VBScript
- 14. Jak zrobić mniejszy lub większy niż porównania w angularjs
- 15. Dopasowywanie podglądu kamery do SurfaceView jest większy niż wyświetlacz.
- 16. Dlaczego 1 nie jest większy niż -0x80000000
- 17. Android - kiedy zadzwonić do db.setTransactionSuccessful()?
- 18. Sprawdzanie, czy jeden plik NSDate jest większy niż inny
- 19. Minimalna Subarray który jest większy niż Key
- 20. Jeśli więcej niż jeden wątek może uzyskać dostęp do pola, jeśli jest oznaczone jako niestabilne?
- 21. Czy stan "Jeśli" jest lepszy niż? i odlewanie
- 22. Overhead Java JNI zadzwonić
- 23. System.currentTimeMillis(); Jeśli zmienię czas systemowy
- 24. Jak wyśrodkować element potomny w CSS, nawet jeśli jest większy niż nadrzędny?
- 25. Jak zatrzymać SSIS od "Zadzwonić do domu"
- 26. Lucene.Net większy niż/mniej niż TermRangeQuery?
- 27. W języku RSpec - jak mogę przetestować, czy jeden atrybut jest mniejszy (lub większy) niż inny
- 28. Porównaj, jeśli BigDecimal jest większy od zera
- 29. Heroku cedar: wolniejszy czas reakcji niż bambus?
- 30. jeśli warunek: jeśli przeglądarka jest IE, a wersja przeglądarki IE jest starsza niż 9
Nie mogę używać programu windows task sheduler w tym przypadku, ponieważ mam ustawienie, które powoduje, że mój menedżer pobierania uruchamia ten plik rodzica nietoperza za każdym razem, gdy plik jest pobierany przez tego menedżera pobierania. – dhiraj05