[VBS脚本]定时提示并关闭计算机

一、Natalia.bat

双击这个文件可以运行Natalia

控制台在打开后会变成最小化,标题为PowerAssistant,黑色背景淡绿色文字

运行脚本Natalia.vbs

 1 @ECHO OFF
 2
 3 REM 脚本最小化运行.
 4 IF "%1" == "m" GOTO BEGIN
 5 MSHTA VBScript:CreateObject("WSCript.Shell").Run("%~fs0 m",6)(Window.Close)&&EXIT
 6 :BEGIN
 7
 8 REM 注释最后一定要跟一个解释器可识别半角字符,否则脚本会运行错误.
 9 REM 设置命令行标题.
10 TITLE PowerAssistant
11
12 REM 设置命令行颜色.
13 REM 前景色(0=黑,1=蓝,2=绿,3=浅绿,4=红,5=紫,6=黄,7=白,8=灰,9=淡蓝).
14 REM 背景色(A=淡绿,B=淡浅绿,C=淡红,D=淡紫,E=淡黄,F=亮白).
15 COLOR 0A
16
17 REM 调用倒计时脚本.
18 CSCRIPT Natalia.vbs //NOLOGO
19
20 PAUSE

二、Natalia.vbs

在最上面的“定义常量部分”,可以设置预计关机的时间

 1 Option Explicit
 2
 3 ‘定义常量
 4 Const ObjHour   = 23   ‘时 0-23
 5 Const ObjMinute = 30   ‘分 0-59
 6 Const ObjSecond = 00   ‘秒 0-59
 7
 8 ‘检查输入是否合法
 9 Dim IsInputLegal
10 IsInputLegal = True
11 If ObjHour < 0 Or ObjHour > 23 Then
12     IsInputLegal = False
13 End If
14 If ObjMinute < 0 Or ObjMinute > 59 Then
15     IsInputLegal = False
16 End If
17 If ObjSecond < 0 Or ObjSecond > 59 Then
18     IsInputLegal = False
19 End If
20 If IsInputLegal = False Then
21     WScript.Echo "输入非法 时区间:[0-23] 分区间:[0,59] 秒区间:[0,59]"
22     WScript.Quit
23 End If
24
25 ‘定义变量
26 Dim ObjTime    ‘目标时间
27 Dim CurTime    ‘当前时间
28 Dim CurHour    ‘当前时
29 Dim CurMinute  ‘当前分
30 Dim CurSecond  ‘当前秒
31
32 ObjTime = "目标时间:" & ObjHour & "时 " & ObjMinute & "分 " & ObjSecond & "秒"
33
34 Dim IsTimeOut
35 IsTimeOut = False
36
37 ‘时间到则终止循环
38 Do Until IsTimeOut = True
39
40     CurHour = Hour(Now)
41     CurMinute = Minute(Now)
42     CurSecond = Second(Now)
43
44     CurTime = "当前时间:" & CurHour & "时 " & CurMinute & "分 " & CurSecond & "秒"
45     WScript.Echo ObjTime & " | " & CurTime
46
47     If (CurHour = objHour And CurMinute = objMinute And CurSecond = objSecond) Or _
48         (Hour(Now) = objHour And Minute(Now) = objMinute And Second(Now) = objSecond+1) Then
49         IsTimeOut = True
50     End If
51
52     WScript.Sleep(1000)
53
54 Loop
55
56 WScript.CreateObject("wscript.shell").Run "shutdown -s -t 300", 0
57 WScript.Echo vbCrlf
58 WScript.Echo "收拾收拾准备睡觉啦!5分钟后我会把你的电脑关掉哦~~~"
59 WScript.Echo "在控制台输入命令 shutdown -a 可以取消关机计划"
60 WScript.Echo vbCrlf

三、运行效果

时间: 2024-07-30 20:29:02

[VBS脚本]定时提示并关闭计算机的相关文章

Vbs脚本定时判断及启动tomcat服务

说到tomcat服务,我们大家都会联系到apache,那apache和tomcat有什么区别呢,apache是web服务器(静态解析,如HTML),tomcat是java应用服务器(动态解析,如JSP.PHP)tomcat只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行,两者从以下几点可以比较的: 1.两者都是apache组织开发的 .2.两者都有HTTP服务的功能 .3.两者都是开源免费的 .当然对于一个java开发人员来

Vbs 脚本编程简明教程之一

-为什么要使用 Vbs ? 在 Windows 中,学习计算机操作也许很简单,但是很多计算机工作是重复性劳动,例如你每周也许需要对一些计算机文件进行复制.粘贴.改名.删除,也许你每天启动 计算机第一件事情就是打开 WORD ,切换到你喜爱的输入法进行文本编辑,同时还要播放优美的音乐给工作创造一个舒心的环境,当然也有可能你经常需要对文本中的某 些数据进行整理,把各式各样的数据按照某种规则排列起来--.这些事情重复.琐碎,使人容易疲劳. 第三方软件也许可以强化计算机的某些功能,但是解决这些重复劳动往

Vbs脚本经典教材

转载:http://www.cnblogs.com/BeyondTechnology/archive/2011/01/10/1932440.html Vbs脚本经典教材(最全的资料还是MSDN) -为什么要使用Vbs? 在Windows中,学习计算机操作也许很简单,但是很多计算机工作是重复性劳动,例如你每周也许需要对一些计算机文件进行复制.粘贴.改名.删除,也许你每天启动计算机第一件事情就是打开WORD,切换到你喜爱的输入法进行文本编辑,同时还要播放优美的音乐给工作创造一个舒心的环境,当然也有可

Windows操作 - 定时关闭计算机

有时候,我们需要定时关闭计算机,下面介绍在Windows XP下实现定时关机的简单方法. Windows的关机是由Shutdown.exe程序来控制的. Shutdown.exe的参数: [plain] view plaincopy -a  取消关机操作 -s  关闭本地计算机 -f  强行关闭应用程序 -m \\计算机名:控制远程计算机 -i  显示图形用户界面,但必须是Shutdown的第一个选项 -l  注销当前用户 -r  关机并重启 -t  时间:设置关机倒计时 -c "消息内容&qu

vbs脚本实现qq定时发消息(初级)

vbs脚本实现QQ消息定时发送 目标 批处理又称为批处理脚本,强大的强大功能可以高效得实现很多功能,例如批量更改文件格式,批量进行文件读写,今天我们的目标是用vbs脚本编写可以发送qq消息的脚本,并利用c++程序,实现qq消息的定时自动发送 准备 记事本 vbs脚本不需要什么花里花哨的东西,记事本足矣 c++编译器 随便选一个就行 开工 编写vbs脚本 VBS是基于Visual Basic的脚本语言,功能还是很强的,当然我也只会一点点皮毛,因为工作需要,去学习了如何写发送QQ消息的脚本~ 新建一

vbs脚本大全2

http://www.miaoqiyuan.cn/p/wshell-sendkey ---Just Do It--------------------------------- 让VBS脚本自动在词本中输入一行文字"Hello, welcome to cfan". Dim WshShell Set WshShell=WScript.CreateObject("WScript.Shell") WshShell.Run "notepad" WScri

VBS脚本获取最新数据备份及重名数据文件

我们前面提到了,近期公司一直对OA系统上线忙前忙后,所以对于运维的我来说需要借助一些脚本工具替我分担解忧,现在遇到的问题是,我们需要将从真实环境上定时备份的SQL数据库数据拷贝到测试环境中,然后还原数据库,由于还原数据库我们使用SQL自带的脚本程序就可以完成,但是在完成的过程中,我们需要对还原的数据库名称做统一,因为我们都知道数据库通过计划任务备份后都是以日期命名的,所以我们在用脚本自动还原的时候不太方便,毕竟不怎么人性化,所以我们就想到的是,将最新备份的SQL数据文件通过VBS脚本拷贝到本地后

Vbs脚本将本地文件上传到Azure存储账户

说到Azure相信大家都已经非常熟悉了,所以就不做多介绍了,我们都知道在Azure上有一个存储账户,在存储账户下可以可以创建容器,可以存放数据,近期公司呢为了达到数据的安全性,准备将本地的备份数据给Azure存储账户下备份一份: Azure提供了很多方法可以将本地的文件上传到Azure存储账户下,比如Powershell.Azcopy.存储文件管理工具,但是存储工具和powershell不支持断点续传,只有Azcopy支持断点续传,所以我们就用Azcopy进行数据的传输,在此说一下Azcopy也

Vbs脚本执行不同版本的Office激活任务(MAK激活)

我们都知道微软部分产品可以使用不同的激活方式,对于企业内部的用户来说,会针对Office和windows os部署对应的kms服务进行激活,但是对于但是对于企业外部的用户来说,一般使用mak的激活方式,MAK的key是有数量限制的,用一个会少一个,所以我们建议少用,当然有人会说,将kms服务器的1688发布到外网不就可以对于外部的用户使用了么,这么敏感的信息发布到外网肯定不好,所以一般会使用Mak激活方式,使用mak的话,我们不能给用户远程来输入key,所以只能通过对应的vbs程序让用户自己执行