当前位置:  开发笔记 > 开发工具 > 正文

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

如何解决《如何通过bat文件关闭,重启或注销Windows?》经验,为你挑选了9个好方法。

我一直在使用远程桌面连接进入工作站.但在此环境中,我无法使用"开始"菜单中的电源选项.我需要另一种方法来关闭或重启.

如何通过命令行控制计算机的电源状态?



1> Keng..:

使用该shutdown命令的最常用方法是:

shutdown -s - 关闭.

shutdown -r - 重新开始.

shutdown -l - 注销.

shutdown -h - 冬眠.

注意:有一个常见的陷阱,用户认为这-h意味着"帮助"(它对其他所有命令行程序都有帮助......除了shutdown.exe它意味着"休眠").然后他们跑步shutdown -h并意外关闭他们的电脑.注意这一点.

shutdown -i - "互动模式".它不显示操作,而是显示GUI对话框.

shutdown -a - 中止先前的关闭命令.

上面的命令可以与这些附加选项结合使用:

-f - 强制程序退出.防止关机过程卡住.

-t - 设置关闭前的时间.用于-t 0立即关闭.

-c - 添加关闭消息.该消息将在事件日志中结束.

-y - 强制所有关闭查询的"是"答案.

注意:此选项未在任何官方文档中记录.它是由这些StackOverflow用户发现的.


我想确保还提到其他一些非常好的答案.在这里他们没有特别的顺序.

-f选项从JosephStyons

使用rundll32从VonC

在运行框中 从院长

从基普远程关机


请阅读下一个答案中关于使用-f(强制)的内容.在周末期间,那个没有,现在有一台计算机停在地球另一边停电的家伙说:
+1只是我使用`/ `而不是` - `.帮助部分也使用`/`.
如果您在远程计算机上,则可能还需要添加`-f`选项以强制重新启动.否则您的会话可能会关闭,顽固的应用程序可能会挂起系统.强制立即重启:`shutdown -t 0 -r -f`.为了更友好的"给他们一些时间"选项,您可以使用:`shutdown -t 30 -r`.超时表示`-f`.(来自[Mateusz Konieczny]的拟议编辑(http://stackoverflow.com/users/4130619/mateusz-konieczny))
我在远程机器上使用"-r".因此它将重新启动而不需要手动干预.

2> JosephStyons..:

如果您在远程计算机上,则可能还需要添加-f选项以强制重新启动.否则您的会话可能会关闭,顽固的应用程序可能会挂起系统.

每当我想强制立即重启时我都会使用它:

shutdown -t 0 -r -f

为了更友好的"给他们一些时间"选项,你可以使用这个:

shutdown -t 30 -r

正如您在注释中看到的那样,-f由超时隐含.

Brutus 2006是一个为这些选项提供GUI的实用程序.


在Windows 8.1上阅读关闭帮助我看到:_"如果超时时间大于0,则隐含/ f参数."_并且由于默认超时为30秒,我认为最好给它一些时间进行清理关机,然后在超时后发生强制关机.
那是个很好的观点.我相信当我写这篇文章时,我使用的操作系统是Windows XP.我看到"/ f暗示"的评论也在Windows 7中.我相应地修改了这个例子.
默认情况下,它们有30秒.我立即使用:shutdown/r/t 0和friendly:shutdown/r

3> Kip..:

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

shutdown -r -f -m \\machinename

也:

-r参数导致重新启动(这通常是您在远程计算机上所需的,因为实际启动它可能很困难).

-f参数选项强制重启.

当然,您必须具有关闭远程计算机的适当权限.


机器名称可以是IP地址吗?即,你能通过互联网做到这一点吗?

4> VonC..:

原答案: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.

Raymond CHEN写道:

在2004年" 当你与调用约定不匹配时会出现什么问题? ":

调用函数所需的函数签名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);

在2011年:" 在人行道上扔垃圾:rundll32计划的悲惨历史 "

并使其清晰:

在2013年" 什么时候使用rundll32的指导?容易:不要使用它 ":

Rundll32 是Windows 95的遗留物,至少从Windows Vista开始就被弃用,因为它违反了许多现代工程指南.


@Asdfg今天?没有.对于NT4和之前,主板并不总是支持断电,只关机(窗户完全关闭,但PC仍然处于电源状态).只有断电(如果当时硬件支持它)关闭窗口*并*切断电源.今天,关机和关机都是这样做的.
关闭和断电之间的区别是什么?
但是,公平地说,如果您立即关闭PC,导致什么类型的内存泄漏或堆栈损坏并不重要.
不要将rundll32.exe用于此目的.它期望您在命令行上传递的函数具有非常特定的方法签名 - 它与ExitWindows的方法签名不匹配.
@ 1800INFORMATION非常好点.我重写了答案,明确表示这不是*有效选项.

5> Gavin..:

另一个小提示:当进入批处理文件路径时,我希望能够中止它,以防我意外运行它.因此批处理文件会调用关闭,但之后会在命令提示符下离开.

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

另外,由于它是在计时器上,你在俄勒冈小道上狩猎时会得到同样的刺激.



6> Carl..:

当远程进入一台机器(目标是Windows XP无论如何;我不确定目标Windows Vista),虽然开始菜单上的ShutdownDisconnect Session或类似的东西取代,但应该有一个名为'Windows Security'的东西也可以与Owen指出的Ctrl+ Alt+ 相同End.



7> Dean Rather..:

您可能已经意识到这一点,但以防万一:只需键入即可 shutdown -r "运行"框中(或任何您喜欢的命令)并按Enter即可.

保存各处的剩余批处理文件.


小心不要把它放在程序 - >启动:)

8> 小智..:

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

@echo off
shutdown -l

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



9> msoft..:

我迟到了,但还没有看到这个答案.如果您不想使用批处理文件或键入命令.您可以将焦点设置到桌面,然后使用Alt+ F4.

Windows将询问您要执行的操作,选择关闭或重新启动.

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


@Keng,阅读实际问题_"我无法在开始菜单中使用关机/重启功能"_在我看来你想知道如何做到这一点.命令行是一种解决方案,键盘是另一种解决方案.它可能有助于其他用户偶然发现这个问题,只想要一个简单的解决方案来关闭或重启.
推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有