Bat fichier à appeler A.bat si l'heure est inférieure à 19h45 et d'appeler B.bat si le temps est supérieur à 19:45 (je ne peux pas utiliser le planificateur de tâches Windows dans ce cas car j'ai un réglage qui fait que mon gestionnaire de téléchargement déclenche ce fichier chauve-souris chaque fois qu'un fichier est téléchargé via ce gestionnaire de téléchargement)Bat fichier à appeler A.bat si l'heure est inférieure à 19h45 et d'appeler B.bat si l'heure est supérieure à 19h45
Répondre
Comment utiliser Windows Task Scheduler?
Consultez les commandes DATE and TIME ici.
Vous pouvez utiliser le code suivant comme base de référence (vous pouvez utiliser bat
fichiers mais je préfère cmd
comme une extension):
@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
Gardez à l'esprit que %time%
est le même format que vous obtenez de l'time
commande et cela peut dépendre des paramètres régionaux. Le format que j'obtiens est 20:17:28.48
pour environ 20h15 mais votre résultat peut être différent.
Si c'est le cas, il suffit d'ajuster les sous-chaînes lors du réglage hh
et mm
. La commande:
set mm=!tm:~3,2!
ensembles mm
aux deux caractères de tm
à l'offset 3 (où 0 décalage est le premier caractère).
Si vous n'êtes pas un grand fan de code spaghetti, même en lots, vous pouvez également utiliser:
@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
Juste curieux: il n'y a pas d'autre dans Windows langue de lot? –
N'y a-t-il pas un 'ou' dans la langue par lots de Windows? :) –
@Adriano, ce n'est pas le plus adaptable des langages mais vous pouvez faire quelques choses: 'else' et' and' sont affichés. J'émule habituellement 'or' avec plusieurs' if's qui définissent un drapeau puis un 'if' basé sur ce drapeau. Primitif mais, si le seul outil que vous avez est la mâchoire d'un mammouth, vous ne pouvez pas être trop tatillon :-) – paxdiablo
J'ai été récemment en train de faire quelque chose de similaire et ma solution était une boucle - non étonnamment compact, mais fait le travail:
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
)
Ensuite, tout ce que vous devez faire est une instruction IF pour vérifier si%% hr était inférieure à 19% et mn% était inférieure à 45
- 1. Expression régulière supérieure et inférieure à
- 2. Détermine si la valeur de getPixel() est supérieure ou inférieure à 50% en gris
- 3. Sélection Si la date est supérieure à la date actuelle
- 4. Comment trouver si une date est une date valide et non supérieure à l'année 2038?
- 5. Afficher du contenu différent si la taille de la fenêtre est inférieure à une certaine taille?
- 6. Excel - bordure inférieure si du texte est présent?
- 7. lot à vérifier si un seul fichier est modifié
- 8. Comment voir si la date est postérieure à 8 jours?
- 9. Transfert de boucle d'abandon si la vitesse (de chargement) est inférieure à
- 10. Firefox cache barre de défilement verticale si la hauteur de l'élément est inférieure à 32px
- 11. Si mysql_num_rows est supérieur à 0
- 12. Si [Get Variable] est égal à [Array]
- 13. Je veux faire une instruction 'si' que si une variable est inférieure à 80 t = 0 mais si la variable est terminée t = x-80
- 14. vérifier si une valeur est NULL ou inférieure à 0 dans une instruction TSQL
- 15. .bat Si alors Déclaration
- 16. Vérifier si le contrôle est à l'écran
- 17. DROP SQL Tables si la date de création est supérieure à une semaine - MS SQL Server
- 18. Comment tester si la version du système d'exploitation est supérieure à Windows XP SP2
- 19. Comment savoir si une variable dans xslt est supérieure à une autre
- 20. Comment savoir si un UIView est visible et à l'écran?
- 21. Bordure supérieure et inférieure manquante dans IE7
- 22. Est-ce que SqlCommandParameter nécessite que SqlType soit défini comme SqlImage si la valeur est supérieure à 8KB?
- 23. Quel est le moyen le plus rapide de vérifier si une taille de dossier est supérieure à une taille spécifique?
- 24. Comment déterminer si l'interface réseau est connectée à Internet (c'est-à-dire si l'ordinateur est en ligne)
- 25. Vérifier si l'iframe est prêt à être écrit
- 26. Pourquoi le plugin flexbuilder pour eclipse est-il si lent à ouvrir et à compiler?
- 27. Lire à partir d'un fichier dans un tableau et arrêter si un ":" est trouvé dans ruby
- 28. Dessin en arrête UIView travail si la largeur de vue devient supérieure à environ 16600
- 29. Comment puis-je obtenir une sortie supérieure à/inférieure à Velocity sans l'échapper?
- 30. Récupérer l'emplacement du fichier `.bat` à l'intérieur
Je ne peux pas utiliser Windows task sheduler dans ce cas parce que j'ai un réglage qui fait que mon gestionnaire de téléchargement déclenche ce fichier chauve-souris chaque fois qu'un fichier est téléchargé via ce gestionnaire de téléchargement – dhiraj05