ฉันจะปิดรีสตาร์ทหรือออกจากระบบ Windows ผ่านไฟล์ bat ได้อย่างไร


660

ฉันใช้การเชื่อมต่อเดสก์ท็อประยะไกลเพื่อเชื่อมต่อกับเวิร์กสเตชัน แต่ในสภาพแวดล้อมนี้ฉันไม่สามารถใช้ตัวเลือกพลังงานในเมนูเริ่ม ฉันต้องการวิธีอื่นในการปิดหรือรีสตาร์ท

ฉันจะควบคุมสถานะพลังงานของคอมพิวเตอร์ผ่านทางบรรทัดคำสั่งได้อย่างไร

คำตอบ:


1164

วิธีทั่วไปในการใช้shutdownคำสั่งคือ:

  • shutdown -s - ปิดเครื่อง.
  • shutdown -r - เริ่มใหม่
  • shutdown -l - ออกจากระบบ
  • shutdown -h - ไฮเบอร์เนต

    หมายเหตุ:มีข้อผิดพลาดทั่วไปที่ผู้ใช้คิดว่า-hหมายถึง "ความช่วยเหลือ" (ซึ่งจะทำเพื่อโปรแกรมบรรทัดคำสั่งอื่น ๆ ... ยกเว้นshutdown.exeที่มันหมายถึง "ไฮเบอร์เนต") จากนั้นเรียกใช้shutdown -hและปิดคอมพิวเตอร์โดยไม่ตั้งใจ ระวังให้ดี

  • shutdown -i- "โหมดโต้ตอบ" แทนที่จะแสดงการดำเนินการจะแสดงกล่องโต้ตอบ GUI

  • shutdown -a - ยกเลิกคำสั่งปิดระบบก่อนหน้านี้

คำสั่งข้างต้นสามารถรวมกับตัวเลือกเพิ่มเติมเหล่านี้:

  • -f- บังคับให้โปรแกรมออก ป้องกันไม่ให้กระบวนการปิดการทำงานหยุดชะงัก
  • -t <seconds>- ตั้งเวลาจนกว่าจะปิด ใช้-t 0เพื่อปิดเครื่องทันที
  • -c <message>- เพิ่มข้อความปิดระบบ ข้อความจะจบลงในบันทึกเหตุการณ์
  • -y - บังคับให้คำตอบ "ใช่" สำหรับคำสั่งปิดทั้งหมด

    หมายเหตุ:ตัวเลือกนี้ไม่ได้รับการบันทึกไว้ในเอกสารประกอบอย่างเป็นทางการ มันถูกค้นพบโดยเหล่าผู้ใช้ StackOverflow


ฉันต้องการให้แน่ใจว่าคำตอบที่ดีอื่น ๆ บางอย่างจะกล่าวถึงพร้อมกับคำตอบนี้ ที่นี่พวกเขาอยู่ในลำดับที่ไม่มี


188
อ่านเกี่ยวกับการใช้ -f (บังคับ) ในคำตอบถัดไป กล่าวว่าคนที่ไม่ได้และตอนนี้มีคอมพิวเตอร์ติดอยู่ในการปิดในด้านอื่น ๆ ของโลกในช่วงวันหยุดสุดสัปดาห์ (:
pasx

11
1 เพียงแค่ว่าผมใช้แทน/<switch> ความช่วยเหลือส่วนยังใช้-<switch> /
legends2k

ประสบการณ์ของฉัน: การใช้ตัวเลือก -s (ปิดเครื่อง) ในเดสก์ท็อประยะไกล (ตามที่กล่าวถึง OP) จะยกเลิกเฉพาะเดสก์ท็อประยะไกลเท่านั้น
Heri

3
ฉันใช้ "-r" สำหรับเครื่องรีโมต ดังนั้นมันจะรีสตาร์ทและไม่จำเป็นต้องมีการแทรกแซงด้วยตนเอง
granadaCoder

6
หากคุณอยู่บนเครื่องระยะไกลคุณอาจต้องการเพิ่ม-fตัวเลือกเพื่อบังคับให้รีบูต มิฉะนั้นเซสชันของคุณอาจปิดลงและแอปที่ดื้อรั้นสามารถแขวนระบบได้ shutdown -t 0 -r -fเพื่อบังคับให้มีการรีบูตทันที: สำหรับเป็นมิตรมากขึ้น "ให้พวกเขามีเวลาบางส่วน" shutdown -t 30 -rตัวเลือกที่คุณสามารถใช้นี้ -fก็ส่อให้เห็นโดยการหมดเวลา (จากการแก้ไขที่เสนอโดยMateusz Konieczny )
Ole VV

375

หากคุณอยู่บนเครื่องระยะไกลคุณอาจต้องการเพิ่มตัวเลือก -f เพื่อบังคับให้รีบูต มิฉะนั้นเซสชันของคุณอาจปิดลงและแอปที่ดื้อรั้นสามารถแขวนระบบได้

ฉันใช้สิ่งนี้เมื่อใดก็ตามที่ฉันต้องการบังคับให้รีบูตทันที:

shutdown -t 0 -r -f

สำหรับตัวเลือก "ให้เวลากับพวกเขา" คุณสามารถใช้สิ่งนี้:

shutdown -t 30 -r

อย่างที่คุณเห็นในความคิดเห็นตัว -f นั้นบอกเป็นนัย ๆ ว่าการหมดเวลา

Brutus 2006 เป็นโปรแกรมที่ให้ GUI สำหรับตัวเลือกเหล่านี้


15
การอ่านความช่วยเหลือสำหรับการปิดระบบใน Windows 8.1 ฉันเห็น: "ถ้าระยะเวลาการหมดเวลามากกว่า 0 พารามิเตอร์ / f จะมีนัย" และเนื่องจากการหมดเวลาเริ่มต้นคือ 30 วินาทีฉันคิดว่าเป็นการดีกว่าที่จะให้เวลาสำหรับการปิดระบบใหม่และจากนั้นการปิดระบบบังคับจะเกิดขึ้นหลังจากหมดเวลา
Zitrax

2
นั่นเป็นจุดที่ดี ฉันเชื่อว่าเมื่อฉันเขียนสิ่งนี้ระบบปฏิบัติการที่ฉันใช้คือ Windows XP ฉันเห็นว่าคำพูด "/ f เป็นนัย" อยู่ใน Windows 7 เช่นกัน ฉันแก้ไขตัวอย่างแล้ว
JosephStyons

2
โดยค่าเริ่มต้นพวกเขามี 30 วินาที ฉันใช้งานได้ทันที: ปิดระบบ / r / t 0 และเป็นมิตร: ปิดระบบ / r
dzampino

81

ไม่มีใครพูดถึง-mตัวเลือกสำหรับการปิดระยะไกล:

shutdown -r -f -m \\machinename

นอกจากนี้:

  • -rพารามิเตอร์ทำให้เกิดการรีบูต (ซึ่งมักจะเป็นสิ่งที่คุณต้องการในเครื่องจากระยะไกลเนื่องจากร่างกายเริ่มต้นมันอาจจะยาก)
  • -fตัวเลือกพารามิเตอร์กองกำลังรีบูต
  • คุณต้องมีสิทธิ์ที่เหมาะสมในการปิดเครื่องระยะไกลแน่นอน

2
ชื่อเครื่องสามารถเป็นที่อยู่ IP ได้หรือไม่? คือคุณสามารถทำสิ่งนี้ผ่านทางอินเทอร์เน็ตได้หรือไม่?
mcmillab

หากคุณสามารถเข้าถึงเครื่องผ่านทาง\\IP.AD.DR.ESS(เช่นพอร์ตที่จำเป็นเปิดอยู่และคุณมีสิทธิ์ที่จำเป็น) จากนั้นก็ใช่มันจะทำงานผ่านอินเทอร์เน็ต
Timothy Zorn

ฉันพยายามครั้งแรกด้วย -r เท่านั้นและมันไม่ทำงานเพราะฉันต้องการปิดระบบระยะไกล มันทำงานกับการปิดระบบ -r -m - ไม่จำเป็น
Dchris

38

คำตอบเดิม: ตุลาคม 2008

คุณยังได้รับทั้งหมด " rundll32.exe shell32.dll" เซเรียอา:

(ดูอัปเดตด้านล่าง)

  • rundll32.exe user.exe,**ExitWindows** [ปิดระบบอย่างรวดเร็วของ Windows]
  • rundll32.exe user.exe,**ExitWindowsExec** [รีสตาร์ท Windows]

    rundll32.exe shell32.dll,SHExitWindowsEx n
    

ที่nหมายถึง:

  • 0 - LOGOFF
  • 1 - SHUTDOWN
  • 2 - REBOOT
  • 4 - FORCE
  • 8 - POWEROFF

(สามารถรวมกันได้ -> 6 = 2 + 4 FORCE REBOOT)


อัปเดตเมษายน 2558 (6 ปีขึ้นไป):

ข้อมูล 1800กรุณาชี้ให้เห็นในความคิดเห็น :

อย่าใช้ rundll32.exeเพื่อจุดประสงค์นี้ มันคาดว่าฟังก์ชั่นที่คุณผ่านในบรรทัดคำสั่งมีลายเซ็นวิธีที่เฉพาะเจาะจงมาก - ExitWindowsมันไม่ตรงกับลายเซ็นของวิธีการ

Raymond CHEN wrote:

ลายเซ็นฟังก์ชันที่จำเป็นสำหรับฟังก์ชั่นที่เรียกโดยrundll32.exeคือ:

void CALLBACK ExitWindowsEx(HWND hwnd, HINSTANCE hinst,
       LPSTR pszCmdLine, int nCmdShow);

นั่นไม่ได้หยุดไม่ให้ผู้คนใช้rundll32โทรหาฟังก์ชั่นแบบสุ่มที่ไม่ได้ออกแบบมาให้เรียกrundll32เหมือนหรือuser32 LockWorkStationuser32 ExitWindowsEx

(อุ๊)

ลายเซ็นฟังก์ชันที่แท้จริงสำหรับ ExitWindowsEx คือ:

BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);

และเพื่อให้มันชัดเจน

Rundll32 เป็นของเหลือจาก Windows 95 และเลิกใช้แล้วตั้งแต่ Windows Vista เป็นอย่างน้อยเพราะละเมิดแนวทางด้านวิศวกรรมสมัยใหม่จำนวนมาก


3
อะไรคือความแตกต่างระหว่างการปิดระบบและ poweroff?
Asdfg

17
@ Asdfg วันนี้? ไม่มี. สำหรับ NT4 และก่อนหน้านี้เมนบอร์ดไม่สนับสนุนการปิดเครื่องทุกครั้งมีเพียงการปิดระบบ (หน้าต่างปิดสนิท แต่พีซียังอยู่ภายใต้พลังงานไฟฟ้า) ปิดไฟเท่านั้น (หากฮาร์ดแวร์รองรับในขณะนั้น) ปิดหน้าต่างและตัดกำลังไฟฟ้า วันนี้ทั้งปิดและ poweroff ทำอย่างนั้น
VonC

2
อย่าใช้ rundll32.exe เพื่อจุดประสงค์นี้ มันคาดว่าฟังก์ชั่นที่คุณส่งผ่านบรรทัดคำสั่งจะมีลายเซ็นของเมธอดที่เฉพาะเจาะจงมากซึ่งไม่ตรงกับลายเซ็นเมธอดของ ExitWindows
1800 ข้อมูล

2
@ 1800INFORMATION จุดที่ดีมาก ฉันเขียนคำตอบใหม่เพื่อให้ชัดเจนว่านี่ไม่ใช่ตัวเลือกที่ถูกต้อง
VonC

3
เพื่อความเป็นธรรมแม้ว่าจะไม่สำคัญว่าหน่วยความจำรั่วหรือสแต็คเสียหายที่คุณก่อให้เกิดขึ้นหากคุณปิดพีซีทันที
PRMan

10

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

@echo off
echo Shutting down in 10 seconds. Please type "shutdown /a" to abort.
cmd.exe /K shutdown /f /t 10 /r

พลัสเนื่องจากมันในเวลาที่คุณได้รับเกี่ยวกับความตื่นเต้นเช่นเดียวกับที่คุณทำเมื่อการล่าสัตว์ใน Oregon Trail


1
คุณสามารถวางหยุดชั่วคราวในไฟล์บาทและจากนั้นยกเลิกคำสั่งลำดับการยกเลิกดังกล่าวจะเป็นคีย์ใด ๆ
rsk82

@ rsk82 ความสามารถในการหลีกหนีจากการพิมพ์อะไรก็ตามเป็นข้อ จำกัด ที่โชคร้ายของชุด Oregon Trail TRS-80 ของฉันเช่นกัน แต่ตรงไปตรงมาฉันคิดเสมอว่ามันโกงและพี่ชายของฉันจะโกรธเมื่อใดก็ตามที่ฉันทำ แค่พูดว่า: ทำไมคุณถึงโกรธแค้นน้องชายของฉัน?
กาวิน

7

เมื่อ remoted เข้าไปในเครื่อง (เป้าหมายคือ Windows XP ต่อไปฉันไม่แน่ใจเกี่ยวกับเป้าหมายของ Windows Vista) แม้ว่าการปิดระบบในเมนูเริ่มจะถูกแทนที่ด้วยDisconnect Sessionหรืออะไรทำนองนั้นควรมีหนึ่งเรียกว่า 'Windows Security' สิ่งเดียวกันกับCtrl+ Alt+ Endชี้โดยโอเว่น


ฉันเคยใช้วิธีการนั้น แต่มันไม่ทำงานอีกต่อไปบรรทัดคำสั่งมันคือ
user742864

ฉันยังมีแกดเจ็ตที่มีปุ่มสำหรับปิด, รีสตาร์ท, ไฮเบอร์เนต, ล็อคที่ทำงานใน RDP
user742864

7

คุณอาจทราบเรื่องนี้ แต่ในกรณี: มันง่ายกว่าที่จะพิมพ์shutdown -r(หรือคำสั่งใดก็ตามที่คุณต้องการ) ลงในช่อง "Run" แล้วกด Enter

บันทึกเป็นชุดไฟล์ที่วางอยู่รอบ ๆ ทุกที่


อ๋อ ... ฉันแค่อยากจะนั่งดับเบิลคลิกที่นั่น ... นั่นคือไฟล์ค้างคาวสำหรับเช่นกัน; o)
Keng

17
ระมัดระวังที่จะไม่ใส่ไว้ในโปรแกรม -> เริ่มต้น :)
ดีนค่อนข้าง

aw .. และพฤติกรรมที่อยากรู้อยากเห็นจะได้รับถ้ารหัสถูกวางในไฟล์ shutdown.bat ลองมัน!
:)

6

ฉันจะเขียนสิ่งนี้ในNotepadหรือWordPadสำหรับคำสั่งออกจากระบบพื้นฐาน:

@echo off
shutdown -l

โดยทั่วไปจะเหมือนกับการคลิกเริ่มและออกจากระบบด้วยตนเอง แต่จะเร็วขึ้นเล็กน้อยหากคุณพร้อมไฟล์แบตช์


5

ฉันไปงานปาร์ตี้สาย แต่ยังไม่เห็นคำตอบนี้ เมื่อคุณไม่ต้องการใช้แบตช์ไฟล์หรือพิมพ์คำสั่ง คุณก็สามารถตั้งค่าการโฟกัสไปยังเดสก์ทอปและจากนั้นใช้+AltF4

Windows จะถามคุณว่าคุณต้องการทำอะไรเลือกปิดหรือรีสตาร์ท

สำหรับภาพหน้าจอและแม้แต่วิดีโอดู: https://tinkertry.com/how-to-shutdown-or-restart-windows-over-rdp


3
@ เก่งอ่านปัญหาที่เกิดขึ้นจริง"ฉันไม่สามารถใช้ฟังก์ชั่นปิด / รีสตาร์ทในเมนู Start"ดูเหมือนว่าฉันต้องการทราบวิธีการทำ บรรทัดคำสั่งเป็นวิธีการแก้ปัญหาหนึ่งแป้นพิมพ์เป็นอีกวิธีหนึ่ง มันอาจช่วยให้ผู้ใช้รายอื่นที่สะดุดกับคำถามนี้และเพียงต้องการทางออกที่ง่ายในการปิดหรือรีสตาร์ท
msoft
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.