La bonne réponse pour toute version de Windows fabriquée au cours de la dernière décennie (y compris Windows XP spécifié dans la question). Merci :-)
woot le
Il attend réellement -1 - 99 999 secondes (~~ 1day3,7h | windows7) - le nombre spécifié dans /tOR pour appuyer sur n'importe quelle touche - qui peut être désactivé en envoyant /NOBREAKparam :)
La commande ping s'exécutera pendant 10 secondes et toute la sortie sera redirigée vers le périphérique NUL, ce qui signifie que vous ne verrez aucune sortie de la commande ping. Il fonctionne en effet comme le ferait une commande "sleep".
Edit: Comme mentionné dans les commentaires, SLEEPne sera pas disponible dans une installation normale. Vous aurez besoin de quelque chose comme le Kit de ressources Windows 2003, ou d'une autre astuce pour le simuler (l'astuce ping mentionnée par Bruno), et des notes pour le faire peuvent être trouvées ici .
le sommeil n'est pas inclus par défaut. Vous avez besoin du kit de ressources ou de quelque chose pour l'obtenir?
marcc
De quoi ai-je besoin exactement?
Non? J'aurais pu jurer que c'était quelque chose sur quoi je pouvais compter, mais je suppose que choicecela pourrait ne pas être inclus par la norme. J'examinerai plus en détail.
1
Il n'est pas nécessaire d'installer quoi que ce soit d'autre sur Windows pour "simuler" une commande sleep. Jetez un oeil à ma réponse pour un exemple.
1
Solution plus précise ping une fois sur l'hôte inexistant et définit le délai d'expiration
Ou, si vous le souhaitez, téléchargez le kit de ressources ou écrivez un programme simple pour dormir 10. Ma méthode, cependant, signifie que vous pouvez le déplacer vers une autre machine sans avoir à télécharger à nouveau plus de logiciels.
Je ne pensais pas que choicec'était venu avec XP et plus tard, ou du moins je ne l'ai pas vu sur des installations récentes.
1
J'utilise vanilla Vista Home Premium sur cet ordinateur portable et cela fonctionne très bien.
il n'y a pas de "choix" pour windows xp !!!
kokbira
0
Installer Cygwin qui fera sleepet cronà votre disposition (entre autres).
ci-dessous, c'est à la fois une méthode laide et belle, un fichier batch Windows - il consomme beaucoup de temps processeur pour ne rien faire, mais il fait ce que vous voulez et est tellement agréable.
SETLOCAL EnableDelayedExpansion
::in seconds
set time2stop=10
:loop1
arp -s 192.168.1.254 xx-xx-xx-xx-xx-xx
ipconfig /flushdns
for /f "tokens=1,2* delims=:" %%i in ("!time!") do (
set hour1=%%i
set min1=%%j
set sec1=%%k
)
for /f "tokens=1* delims=," %%i in ("!sec1!") do (
set isec1=%%i
)
:loop2
for /f "tokens=1,2* delims=:" %%i in ("!time!") do (
set hour2=%%i
set min2=%%j
set sec2=%%k
)
for /f "tokens=1* delims=," %%i in ("!sec2!") do (
set isec2=%%i
)
set /a delta=3600*(!hour2!-!hour1!)+60*(!min2!-!min1!)+(!isec2!-!isec1!)
if !delta! geq !time2stop! goto end2
goto loop2
:end2
@echo on
goto loop1
une autre façon est de faire une séquence de boucle, par exemple en répétant (pour / l %% i dans (1,1,65535) ne définissez rien = 0) quelques fois et en "calibrant" "combien de fois" vous devez répéter le test pour résultat en 10 secondes, hahaha. mais c'est la façon la plus laide.
kokbira
vous pouvez également créer un lot Windows à utiliser comme fonctions (un pour partager le temps, un pour faire l'attente ...) mais ce sera plus complexe ...
kokbira
Je pense que cela causera un bogue si vous l'utilisez de 23:59:51 à 23:59:59 - dans ce cas, le lot attendra pour toujours ... certains "si" résoudraient le problème ...
kokbira
si vous voulez tester pendant un temps fixe (pas un temps + 10sec) vous pouvez simplement faire "si% time% geq 10:30 do goto end". la solution est devenue complexe parce que la somme ...
kokbira
C'est vraiment horrible. Tout d'abord, attente occupée. gaspiller inutilement les cycles CPU n'est jamais une bonne idée (sauf sur du matériel embarqué). Cela ne semble pas non plus fonctionner correctement vers minuit.
Réponses:
cela fait un 10 sec. retard:
alors essayez ceci:
la source
/t
OR pour appuyer sur n'importe quelle touche - qui peut être désactivé en envoyant/NOBREAK
param :)Essaye celui-là:
La commande ping s'exécutera pendant 10 secondes et toute la sortie sera redirigée vers le périphérique NUL, ce qui signifie que vous ne verrez aucune sortie de la commande ping. Il fonctionne en effet comme le ferait une commande "sleep".
la source
Edit: Comme mentionné dans les commentaires,
SLEEP
ne sera pas disponible dans une installation normale. Vous aurez besoin de quelque chose comme le Kit de ressources Windows 2003, ou d'une autre astuce pour le simuler (l'astuce ping mentionnée par Bruno), et des notes pour le faire peuvent être trouvées ici .la source
choice
cela pourrait ne pas être inclus par la norme. J'examinerai plus en détail.Solution plus précise ping une fois sur l'hôte inexistant et définit le délai d'expiration
Mais cela génère du trafic parasite
la source
Vous pouvez utiliser la commande
for
etping
:Vous pouvez utiliser
ping -n [secs+1] localhost >nul
pour attendre un certain temps en secondes.la source
goto
.Tricher:
Utilisez cette commande pour suspendre le lot pendant 10 secondes
choix / n / t: c, <10> / c: cc
Maintenant, placez-le dans une boucle sans fin dans le lot et voilà!
la source
choice
c'était venu avec XP et plus tard, ou du moins je ne l'ai pas vu sur des installations récentes.Installer Cygwin qui fera
sleep
etcron
à votre disposition (entre autres).la source
ci-dessous, c'est à la fois une méthode laide et belle, un fichier batch Windows - il consomme beaucoup de temps processeur pour ne rien faire, mais il fait ce que vous voulez et est tellement agréable.
la source