如何通过bat文件关闭,重新启动或注销Windows?


Answers:


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 2014年

我的经验:在远程桌面(如OP所述)中使用-s选项(关闭)只会终止远程桌面,而不会影响远程计算机。
Heri 2014年

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 2014年

2
那是个很好的观点。我相信当我写这篇文章时,我使用的操作系统是Windows XP。我看到Windows 7中也有“ / f隐含”的说明。我已经相应地修改了示例。
JosephStyons 2014年

2
默认情况下,它们有30秒。我使用即时的:shutdown / r / t 0和友好的:shutdown / r
dzampino

81

没有人提到-m远程关闭的选项:

shutdown -r -f -m \\machinename

也:

  • -r参数导致重新引导(这通常是您在远程计算机上想要的,因为从物理上启动它可能很困难)。
  • -f参数选项强制重启。
  • 当然,您必须具有适当的特权才能关闭远程计算机。

2
机器名称可以是IP地址吗?即,您可以通过互联网执行此操作吗?
mcmillab

如果您可以通过以下方式访问计算机\\IP.AD.DR.ESS(即,必要的端口已打开并且您具有所需的权限),那么可以,这应该可以通过Internet进行。
蒂莫西·佐恩

我首先尝试仅使用-r,但由于我想要远程关闭而无法使用。它与shutdown -r -m一起使用。-f不需要。
Dchris

38

原始答案:2008年10月

你也得到了所有 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


2015年4月更新(6年后):

1800信息在评论中指出

请勿rundll32.exe用于此目的。它期望您在命令行上传递的函数具有非常特定的方法签名-与的方法签名不匹配ExitWindows

雷蒙·陈写道:

由调用的函数所需的函数签名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
关机和关机之间有什么区别?
Asdfg 2012年

17
@Asdfg今天?没有。对于NT4及更早版本,主板并不总是支持关机,而是仅关机(窗口已完全关闭,但PC仍处于通电状态)。仅关闭电源(如果当时硬件支持)会关闭窗户切断电源。今天,关机和关机都可以做到这一点。
VonC 2012年

2
不要为此目的使用rundll32.exe。它期望您在命令行上传递的函数具有非常特定的方法签名-它与ExitWindows的方法签名不匹配。
1800信息

2
@ 1800INFORMATION很好。我已经重写了答案,以表明这不是有效的选择。
VonC

3
公平地讲,如果立即关闭PC,则造成何种类型的内存泄漏或堆栈损坏都没有关系。
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
您可以在bath文件中放置暂停,然后中止命令,这样中止顺序将是任意键
rsk82 2013年

@ rsk82,能够输掉任何东西也是我的俄勒冈足迹的TRS-80副本的不幸限制,但是坦率地说,我一直认为它是作弊的,每当我这样做时,我的兄弟都会生气。只是说:你为什么要激怒我的兄弟?
加文2014年

7

远程连接到计算机(目标仍然是Windows XP;我不确定目标Windows Vista)时,尽管开始菜单上的“ 关机 ”已由“ 断开会话”或类似方法代替,但是应该有一个称为“ Windows安全性”的工具同样的事情Ctrl+ Alt+ End尖的由欧文。


我曾经使用过这种方法,但是它不再起作用了,在命令行上是这样。
user742864 '16

我还有一个小工具,其中包含用于RDP的关机,重启,休眠,锁定按钮。
user742864 '16

7

您可能已经意识到了这一点,但是以防万一:只需在shutdown -r“运行”框中键入(或您喜欢的任何命令)并按Enter 键就容易得多。

保存将批处理文件保留在各处。


是的...我只是想双击坐在那里...- r bat文件也适用; o)
Keng

17
注意不要将其放在程序->启动中:)
Dean Rather

如果将代码放置在shutdown.bat文件中,则会获得aw ..和好奇的行为。尝试一下!:)....
Brethlosze 2016年

6

我会在记事本写字板中写出基本的注销命令:

@echo off
shutdown -l

这基本上与手动单击“开始”和“注销”相同,但是如果您已准备好批处理文件,则速度稍有提高。


5

我参加聚会很晚,但是还没有看到这个答案。当您不想使用批处理文件或键入命令时。您可以将焦点设置在桌面上,然后使用Alt+ F4

Windows将询问您要做什么,选择关闭或重新启动。

有关屏幕截图甚至视频的信息,请参见:https : //tinkertry.com/how-to-shutdown-or-restart-windows-over-rdp


3
@Keng,阅读实际问题“我无法在“开始”菜单中使用关机/重新启动功能”,这似乎对您来说我想知道如何做。命令行是一种解决方案,键盘是另一种解决方案。它可能会帮助偶然发现此问题的其他用户,只是他们想要一种简单的解决方案来关闭或重新启动。
msoft
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.