批处理文件中的关闭命令导致 cmd 提示符出现错误并崩溃。

11 浏览
0 Comments

批处理文件中的关闭命令导致 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

可以正常工作,这让我非常困惑。我在搜索中没有找到任何解决方案,所以非常感谢任何帮助!

0
0 Comments

在批处理文件中使用"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命令提示符崩溃的问题。

0
0 Comments

问题的出现原因:

在批处理文件中使用shutdown命令时,出现了错误并导致cmd提示符崩溃。这是由于在代码中缺少了一些关键的语法规则导致的。

解决方法:

修复代码中的语法错误可以解决此问题。具体地说,需要在等号周围添加空格,并在变量var1的引用处添加引号。

以下是修复后的代码:

off

SET /p var1="Shutdown? (Y/N) "

if /I "%var1%" == "Y" shutdown /s /t 0

感谢SomethingDark提供的答案。

0