因此,以前我在批处理文件中使用以下命令,
Start http://accounts.google.com/logout
Timeout /t 3
shutdown /l
它完全满足了我的需要。它让用户退出 Google,3 秒后,系统也退出。
由于某种原因,截至 2019 年 5 月 8 日,此功能已失效。它仍会将用户从 Chrome 中注销,但不会将其从系统中注销。相反,它只是一遍又一遍地重复此操作,直到关闭。
C:\Users\Class\Desktop>shutdown /l
我知道这可能是我正在看的东西非常简单,但它确实让我感到困惑。当然,我绝对不是专业人士。
我已经在其他系统上尝试过,甚至尝试了关机命令的不同变体,/l、/r 和 /s。
自 2019 年 4 月 10 日起,系统尚未更新。其他人没有时间篡改系统。该怎么办?
答案1
根据您的评论,
我尝试从不同的位置运行它,并且它运行良好。
我怀疑您的环境中发生了一些变化,导致它无法在此位置正常工作。我想到了很多原因,但对于为什么您会看到这种特定行为,我只能猜测一下。
我的猜测是以下几种情况之一:
- 您的桌面上有一个名为“timeout”或“shutdown”的快捷方式或文件。因此,它不是运行名为shutdown的可执行命令的批处理文件,而是执行桌面上的文件。
- 您最近启用了文件夹重定向,但那里发生了一些奇怪的事情。
- 您的
PATH
环境变量已发生改变,导致驱动器上不同位置的名为“timeout”或“shutdown”的文件/快捷方式被执行,而不是通常位于的正确位置c:\windows\system32
。
我认为解决此问题最有可能的方法是确保运行正确的shutdown
命令timeout
。为此,请使用绝对路径代替相对路径在你的脚本中。
你的最终脚本看起来应该像这样:
start http://accounts.google.com/logout
%systemroot%\system32\timeout.exe /t 3
%systemroot%\system32\shutdown.exe /l
环境变量%systemroot%
解析为 Windows 的安装位置,通常为c:\windows
。使用这样的环境变量是一种确保批处理文件可移植且可在任何 Windows 计算机上正常工作的技术,而不仅仅是在 C:\Windows 中安装了 Windows 的计算机上。
使用绝对路径的这一更改强制批处理文件运行位于 Windows 文件夹中的特定命令。
最后需要注意的是,/f
在shutdown
命令中添加参数将确保通过终止任何试图阻止计算机注销或关闭的打开的应用程序来强制注销。如果用户没有保存某些内容,则存在数据丢失的风险。