it-swarm.asia

Bir yarasa dosyasında birkaç saniye beklemenin daha iyi bir yolu var mı?

Olası Kopya:
Bir toplu iş dosyasında nasıl uyulur?

İşte bir toplu iş dosyasında bir saniyeliğine duraklamanın haxxorish bir yolu:

PING 400.500.600.700 > NUL

Google'ı aradım ama daha iyisi olduğundan emin değilim .. herhangi bir fikir? :)

12
Srekel

Gecikme oluşturmak için yerleşik seçim komutunun "varsayılan seçim" ve "zaman aşımı" seçeneklerini kullanabilirsiniz.

@echo off
echo Hi, I'm doing some stuff
echo OK, now I need to take a breather for 5 seconds...
choice /d y /t 5 > nul
echo Times up! Here I go again...
11
ThatGraemeGuy

Bunu yapmanın doğru yolu, Windows 2000'de tanıtılan timeout komutunu kullanmaktır.

30 saniye beklemek için:

timeout /t 30

Kullanıcı herhangi bir tuşa basarsa zaman aşımı kesintiye uğrar; ancak komut ayrıca, açık bir /nobreak dışında kullanıcının basabileceği her şeyi etkili bir şekilde yok sayan isteğe bağlı anahtarı CTRL-C kabul eder:

timeout /t 30 /nobreak

Ayrıca, komutun geri sayımını ekranda yazdırmasını istemiyorsanız, çıktısını NUL öğesine yönlendirebilirsiniz:

timeout /t 30 /nobreak > NUL
29
Massimo
@echo off
echo It is time for liftoff.
timeout /t 5
echo Commencing crash sequence.
timeout /t 5

Bir anahtar vurmak geri sayım binmek tek dezavantajı.

4
Aaron Lewis

sleep.exe yerine kullanıyorum.

@ping -n 1 -w 1000 0.0.0.1 > NUL  

Değişiklik -n x beklemek (kabaca) x saniye.

3
nray

Görünüşe göre Windows kaynak kitinde uyku komutu var. Diğer Siteler ayrıca seçim kullanmanızı öneririz .....

2
James

Üzerinde bir zamanlayıcı bulunan CHOICE komutu iyi çalışıyor ...

SEÇİM/C: x/T: x, 10> NUL

Orada da "programları" orada WAIT ve UYKU, vb gibi çalıştırabilirsiniz.

Bu yardımcı olur umarım.

1
KPWINC

Ping (yukarıda) iyi olanıdır - ancak bir ağa bağlıysa çalışır.

Geciktirecek biraz komut dosyası aşağıdadır:


@Eko kapalı

set/a saniye sonu =% TIME: ~ 6,2% + 10

% secondsend% GTR 59 ayarlanmışsa/saniye sonu = saniye sonu-60

:burada bekle

% TIME ise: ~% 6,2 NEQ% saniye sonu% goto waithere


Bu, 9-10 saniye arasında duraklar (TIME komutunun kullanılması nedeniyle ilk saniye doğru değildir - ve başlamadan önce bir saniyenin yarısında olabilir).

PC saatinin geçerli saniyesine 'saniye sonu' ayarlayarak çalışırsa, buna 10 ekler (gecikme). Eğer 59 dakikadan büyükse 60 dakika kadar ilerliyorsa, bir sonraki dakikaya sarılır. Sonra mevcut saniyeyi 'saniye sonu' ile kontrol eden bir döngü vardır - senaryo ile eşleştikten sonra devam eder.

Farklı bir süre 2-59 geciktirmek istiyorsanız, ikinci satırdaki 10'u değiştirin (ilk saniye tam saniye olmayabileceğinden 2-59 diyorum, bu yüzden 2 örneğin 1,2 saniye diyebiliriz).

Maalesef çok rüzgarlı ama rutinin nasıl çalıştığını açıklayacağımı düşündüm.

1
Mark H