Bagaimana cara membuat file batch menunggu / tidur selama beberapa detik?

57

Saya menggunakan file batch untuk memulai beberapa program yang perlu saya jalankan di latar belakang. Sampai sekarang, saya telah menggunakan perintah pause untuk menjalankannya setelah beberapa start-up lainnya selesai. Saya lebih suka menggunakan perintah wait atau sleep tetapi tampaknya tidak dimasukkan dalam Windows 7.

Adakah yang tahu cara mengembalikan perintah itu, atau metode lain yang mencapai hasil yang sama?

Cegorach
sumber
1
Atau Anda dapat menggunakan powershell: stackoverflow.com/questions/1741490/…
Berzemus
Berharap sleep.exe disediakan oleh MS sebagai default dari 2017 di folder system32 atau di file program / tempat standar mana pun. Sederhana sekitar 40k atau lebih!
tgkprog
Seperti ini sleepcmd.com
tgkprog

Jawaban:

30

Ada banyak utilitas tidur yang dapat Anda unduh dan masukkan ke folder System32 Anda, satu disediakan dengan Windows Server 2003 Resource Kit yang disebut sleep.exe.

Anda juga dapat menggunakan trik ping:

:sleep
ping 127.0.0.1 -n 2 -w 1000 > NUL
ping 127.0.0.1 -n %1 -w 1000 > NUL

lalu dari suatu tempat di file batch Anda, Anda dapat menyebutnya seperti ini:

CALL :sleep 1
John T
sumber
1
Trik ping dapat digunakan sebagai solusi temperary, tapi saya lebih suka yang hanya menunda proses, daripada melakukan pekerjaan sibuk untuk saat itu. Juga, salah satu item dalam daftar yang Anda tautkan adalah apa yang saya cari?
Cegorach
Anda ingin sleep.exe
John T
saya mencoba PANGGILAN: tidur 1 dari file batch pengujian dan itu menjawab dengan "sistem tidak dapat menemukan label batch yang ditentukan - SLEEP"
Cegorach
karena Anda perlu menambahkan subrutin yang saya posting di atas. Panggil saja panggilan subrutin, yang merupakan 3 baris saya diposting di atas perintah panggilan.
John T
126

Anda dapat menggunakan timeoutperintah:

Utilitas ini menerima parameter batas waktu untuk menunggu periode waktu yang ditentukan (dalam detik) atau hingga tombol apa pun ditekan. Ini juga menerima parameter untuk mengabaikan penekanan tombol.

Misalnya, menunggu 10 detik:

TIMEOUT /T 10

Untuk lebih jelasnya:

TIMEOUT /?
Alex S
sumber
1
mengapa ini tidak dipilih sebagai jawaban yang benar? yang saat ini jauh dibuat jika Anda bertanya kepada saya
Dany Khalife
7
@ Banyak: karena topiknya adalah dari 2009, ketika kebanyakan instalasi adalah XP. Sebelum Vista, Timeout hanya ada di edisi server dan di Resource Kit, bukan pada instalasi XP normal. Saat ini, memang, jawaban yang benar adalah Timeout.
mivk
6
@DanyKhalife Kecuali Anda ingin menjalankan proses di latar belakang. "KESALAHAN: Pengalihan input tidak didukung, segera keluar dari proses."
Annan
8
timeout /t <seconds> /nobreak > NUL
Prichard
sumber
Bagus sekali! calc && timeout 3 && notepad
Tamara Wijsman
6

Ada juga

waitfor SomethingThatIsNeverHappening /t 10

Yang akan menunggu antara 1 dan 99999 detik.

Unggas
sumber
-1

Jika Anda menginstal Python (dan menambahkan path instal ke variabel lingkungan Anda), Anda dapat membiarkan Python melakukan tidur dengan sesuatu seperti:

echo from time import sleep; sleep(3) | python

(Jika Anda memiliki Windows Vista atau lebih tinggi, timeouttentu saja adalah cara untuk pergi.)

Pelindung satu
sumber