一个前端,爱跑步、爱吉他、爱做饭、爱生活、爱编程、爱南芳姑娘,爱我所爱。世间最温暖又无价的是阳光、空气与爱,愿它们能带你去更远的地方。

  • 文章
  • 心情
  • 照片墙
  • 工具
  • 开发技术分享

    nodejs控制windows关机重启

    技术 199 2022-11-09 10:11

    最近写了一些脚本,

    期望这些脚本在某些特定的时间去自动执行,(定时任务)

    定时任务参考文章:nodejs定时任务

    在任务执行完之后,除了退出程序以外,还想要自动关机。

    于是找到了node可以直接关机和重启的方法。


    其实不用node也可以直接

    按下组合键“win+R”,电脑会自动弹出来一个“运行”的对话框。

    在对话框里面填写关机的时间,例如说“Shutdown -s -t 600”。温馨提醒,600代表的是10分钟,代表十分钟之后 自动关机 。

    如果您想要在20分钟之后关机,则需要输入“Shutdown -s -t 1200”。我们应该根据设定时间的不同,填写不同的数字。

    取消定时任务的话 可以通过 “shutdown -a”


    但是这样其实没有办法自动检测我们的脚本任务啥时候结束,

    需要写到node.js中 形成一个任务队列,这样就比较智能了。

    下面是代码:

    操作系统:w10

    node版本:12.18.2


    关机

    const { exec } = require('child_process');
    function shutdownWindow() {
    	let command = exec('shutdown -s -t 00', function(err, stdout, stderr) {
        if(err || stderr) {
          console.log("shutdown failed" + err + stderr);
        }
      });
      command.stdin.end();
      command.on('close', function(code) {
        console.log("shutdown", code);
      });
    }
    

    重启

    const { exec } = require('child_process');
    function rebootWindow() {
    	let command = exec('reboot', function(err, stdout, stderr) {
    	  if(err || stderr) {
    	    console.log("reboot failed" + err + stderr);
    	  }
    	});
    	command.stdin.end();
    	command.on('close', function(code) {
    	  console.log("reboot", code);
    	});
    }