批处理文件中的关闭命令导致 cmd 提示符出现错误并崩溃。
批处理文件中的关闭命令导致 cmd 提示符出现错误并崩溃。
我正在尝试在我的Surface Pro 3上从任务栏创建一个批处理文件来关闭我的计算机,我在我的桌面计算机上成功地做到了这一点(两者都运行Windows 8.1),但是在我的Surface上,这个批处理文件:
@echo off SET /p var1 = "Shutdown? (Y/N) " if /I %var1% == "Y" shutdown /s /t 0
导致一个错误"在此时意外关闭",同时命令窗口立即崩溃。这个确切的(编辑:措辞选择不当,实际上并非完全相同)批处理文件在我的桌面上按预期工作。在我的Surface上,只包含以下代码的批处理文件:
shutdown /s /t 0
可以正常工作,这让我非常困惑。我在搜索中没有找到任何解决方案,所以非常感谢任何帮助!
在批处理文件中使用"Shutdown"命令会导致cmd命令提示符出现错误并崩溃。
问题出现的原因是"Shutdown"命令在批处理文件中被错误地使用,导致cmd命令提示符无法正确处理该命令并崩溃。
解决方法是使用Powershell中的"Stop-Computer"命令。可以使用以下代码示例:
$message = 'Shutdown Computer?' $question = 'Are you sure you want to Shutdown?' $choices = New-Object Collections.ObjectModel.Collection[Management.Automation.Host.ChoiceDescription] $choices.Add((New-Object Management.Automation.Host.ChoiceDescription -ArgumentList '&Yes')) $choices.Add((New-Object Management.Automation.Host.ChoiceDescription -ArgumentList '&No')) $decision = $Host.UI.PromptForChoice($message, $question, $choices, 1) if ($decision -eq 0) { Stop-Computer -force } else { "Shutdown aborted." }
以上代码段使用Powershell中的"Stop-Computer"命令来实现关机功能,并提供了一个Yes/No的确认选项。如果用户选择"Yes",则会立即强制关闭计算机。如果用户选择"No",则会显示"Shutdown aborted."的提示信息。
这种方法可以替代在批处理文件中使用"Shutdown"命令,避免了出现错误和cmd命令提示符崩溃的问题。