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

时间:2015-08-12 04:19:51

标签: batch-file windows-8.1

我正在尝试创建一个批处理文件,以便从Surface Pro 3上的任务栏关闭我的计算机,我已经在台式计算机上成功完成了(两个都运行Windows 8.1),但在我的Surface上这个批处理文件:

$(document).ready( function(){
    var $div
    for(var i = 0; i < 30 ; i++){
        $div = $("<div>", {class: "a lime" })
        $(".container").append($div)
    }
    console.log($(".a").eq(1))
    var random
    setInterval(function(){

    for(var i = 0; i < $(".a").length && (i % 4 == 0); i ++){
        random = Math.floor(Math.random() * $(".a").length)
        var saved  = random;

            // if(i % 2 == ){
                if($(".a").eq(saved).hasClass("lime")){
                    //!!!make it so that after changing to yellow so that it changes to green.
                         lime class is green!!!
                    $(".a").eq(saved).removeClass("lime").addClass("yellow")
                }else if ($(".a").eq(saved).hasClass("yellow")){
                    $(".a").eq(saved).removeClass("yellow").addClass("lime")
                }
                // $(".a").eq(saved).toggleClass("yellow")
                // $(".a").eq(saved).toggleClass("lime")
            // }


    }
    }, 1000)
});

导致错误&#34;此时意外关机。&#34;包含它的命令窗口立即崩溃。这个准确的(编辑:措辞不当,实际上并不精确)批处理文件在我的桌面上按预期工作。我的Surface上的批处理文件只包含代码:

@echo off
SET /p var1 = "Shutdown? (Y/N) "
if /I %var1% == "Y" shutdown /s /t 0

工作正常,这对我来说非常令人费解。我没有从我的搜索中找到任何解决方案,所以任何帮助都将不胜感激!

2 个答案:

答案 0 :(得分:0)

@echo off
SET /p var1="Shutdown? (Y/N) "
if /I "%var1%" == "Y" shutdown /s /t 0

此版本有效,所有需要修复的内容都是=周围的空格和%var1周围的引号。感谢SomethingDark的回答。

答案 1 :(得分:0)

为什么不使用Powershell的Stop-Computer cmdlet?该cmdlet在Powershell 4.0中可用。

-Edit添加一个例子。感谢this question获取是/否确认码,确认在Powershell v4中工作。

$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."
}