代码如下:
@ECHO OFF
Title Rebooter
COLOR A
SET "REGP=HKEY_CURRENT_USER\123"
SET "REGN=Value"
SET "pURL=0"
SET "CQCS=5"
for /f "tokens=1,2,3,4,*" %%i in ('reg query "%REGP%" ^| find /i "%REGN%"') do SET "pURL=%%k"
SET /A "value=%pURL%+1"
if "%pURL%"=="%CQCS%" (
::此行不需要 REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V "%~nx0" /F
REG DELETE "%REGP%" /V "%REGN%" /F
pause
EXIT
) else (
REG ADD "%REGP%" /V "%REGN%" /D "%value%" /F
::在此处可以添加你进入OS需要做的动作,任何设置重启次数做某事都可以使用这种模式。
shutdown.exe -R -F -T 10
)
::此行不需要 REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V "%~nx0" /F /D "mshta.exe vbscript:CreateObject(""WScript.Shell""").Run(Chr(34)+""%0""+Chr(34))(Close)"
echo #####$This OS will reboot !######
pause
代码分析
1.在OS下,要使每次开机就自动运行,要把自动化脚本BAT文件放到指定的路径下才可以(注意查看指定路径需要把隐藏文件选项勾上,见下图)。
指定路径:C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
2.@ECHO OFF 理解
@echo off
echo hello world
打印如下:
@echo on
echo hello world
打印如下:
echo on
echo hello world
echo off
echo hello world
总之:上面格式可见第一种最符合习惯,我们常用也是第一种
2.Title ROOTER
用于如果在bat文件里想修改BAT运行起的CMD窗体标题可以这样做:
/d 指定新注册表项的值
例如(补充,cmd /k 为在运行中使用reg命令) :
cmd /k reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v systray /t REG_SZ /d "%SystemRoot%\system32\systray.exe" /f(开机启动音量控制)
cmd /k reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d "%SystemRoot%\explorer.exe" /f(开机启动explorer外壳程序)
cmd /k reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\explorer\Advanced\Folder\Hidden\SHOWALL" /v Checkedvalue /t reg_dword /d 1 /f(显示隐藏的文件和文件夹)
9.mshta.exe是微软Windows操作系统相关程序,用于执行.HTA文件
HTA是HTML Application的缩写(HTML应用程序),是软件开发的新概念,直接将HTML保存成HTA的格式,就是一个独立的应用软件,与VB、C++等程序语言所设计的软件界面没什么差别。
CreateObject(""WScript.Shell""")作用是创建一个WScript.shell对象,他可对windows的外壳程序进行访问。
chr()函数是VB中将一个ASCII码转为相应的字符,与它对应的是ASC()函数,将一个字符转为相应的ASCII码。chr(34)程序执行结果为",可以把程序中chr(34)处改为",也能运行。