ฉันจะทำให้แบตช์ไฟล์รอ / หลับเป็นเวลาครู่หนึ่งได้อย่างไร


57

ฉันใช้แบตช์ไฟล์เพื่อเริ่มโปรแกรมบางโปรแกรมที่ฉันต้องใช้ในพื้นหลัง จนถึงตอนนี้ฉันได้ใช้คำสั่งหยุดชั่วคราวเพื่อดำเนินการมันหลังจากที่อื่น ๆ เริ่มต้นขึ้นเสร็จ ฉันต้องการใช้คำสั่ง wait หรือ sleep แต่ไม่ปรากฏว่ามีอยู่ใน Windows 7

ไม่มีใครรู้วิธีที่จะนำคำสั่งเหล่านั้นกลับมาหรือวิธีการอื่นที่ให้ผลลัพธ์เดียวกัน


1
หรือคุณสามารถใช้ powershell: stackoverflow.com/questions/1741490/…
Berzemus

ต้องให้ sleep.exe โดย MS เป็นค่าเริ่มต้นจาก 2017 ในโฟลเดอร์ system32 หรือในไฟล์โปรแกรม / สถานที่มาตรฐานใด ๆ ง่าย c exe 40k หรืออย่างนั้น!
tgkprog

ถูกใจสิ่งนี้sleepcmd.com
tgkprog

คำตอบ:


30

มีสาธารณูปโภคการนอนหลับอีกมากมายที่คุณสามารถดาวน์โหลดและวางลงในโฟลเดอร์ System32 ของคุณหนึ่งมีให้กับWindows Server 2003 ทรัพยากร Kitsleep.exeเรียกว่า

คุณสามารถใช้เคล็ดลับ ping:

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

จากที่อื่นในไฟล์แบทช์คุณสามารถเรียกมันว่า:

CALL :sleep 1

1
เคล็ดลับการปิงสามารถใช้เป็นวิธีแก้ปัญหาทางอารมณ์ได้ แต่ฉันต้องการวิธีที่จะหยุดกระบวนการชั่วคราวแทนที่จะให้งานยุ่งตลอดเวลา นอกจากนี้หนึ่งในรายการในรายการที่คุณเชื่อมโยงคือสิ่งที่ฉันกำลังมองหา?
Cegorach

คุณต้องการ sleep.exe
John T

ฉันลอง CALL: sleep 1 จากไฟล์แบตช์ทดสอบและมันตอบกลับด้วย "ระบบไม่สามารถหาฉลากแบทช์ที่ระบุได้ - SLEEP"
Cegorach

เพราะคุณต้องเพิ่มรูทีนย่อยที่ฉันโพสต์ไว้ด้านบน Call เพียงเรียกรูทีนย่อยซึ่งเป็น 3 บรรทัดที่ฉันโพสต์ไว้เหนือคำสั่ง call
John T

126

คุณสามารถใช้timeoutคำสั่ง:

ยูทิลิตี้นี้ยอมรับพารามิเตอร์การหมดเวลาเพื่อรอช่วงเวลาที่ระบุ (เป็นวินาที) หรือจนกว่าจะกดปุ่มใด ๆ นอกจากนี้ยังยอมรับพารามิเตอร์เพื่อละเว้นการกดปุ่ม

ตัวอย่างเช่นเพื่อรอ 10 วินาที:

TIMEOUT /T 10

สำหรับรายละเอียดเพิ่มเติม:

TIMEOUT /?

1
เหตุใดจึงไม่เลือกตัวเลือกนี้เป็นคำตอบที่ถูกต้อง คนปัจจุบันเรียกได้ไกลมากถ้าคุณถามฉัน
Dany Khalife

7
@Dany: เนื่องจากหัวข้อมาจาก 2009 เมื่อติดตั้งส่วนใหญ่เป็น XP ก่อน Vista การหมดเวลาใช้งานในรุ่นเซิร์ฟเวอร์และใน Resource Kit เท่านั้นไม่ใช่การติดตั้ง XP ปกติ ทุกวันนี้คำตอบที่ถูกต้องคือหมดเวลา
mivk

6
@DanyKhalife เว้นแต่คุณต้องการเรียกใช้กระบวนการในพื้นหลัง "ข้อผิดพลาด: ไม่รองรับการเปลี่ยนเส้นทางอินพุตให้ออกจากกระบวนการทันที"
Annan


6

นอกจากนี้ยังมี

waitfor SomethingThatIsNeverHappening /t 10

ซึ่งจะรอระหว่าง 1 ถึง 99999 วินาที



-1

หากคุณติดตั้ง Python (และเพิ่มพา ธ การติดตั้งให้กับตัวแปรสภาพแวดล้อมของคุณ) คุณสามารถปล่อยให้ Python ทำการ sleep ด้วยสิ่งต่อไปนี้:

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

(หากคุณมี Windows Vista หรือสูงกว่าtimeoutก็เป็นวิธีเดินทางไปตามธรรมชาติ)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.