代碼如下:
@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)處改爲",也能運行。