批处理几个例子1,注册表扫描@echo offtitle 注册表扫描中...mode con cols=50 lines=10setlocal enabledelayedexpansion>%temp%\reglist.txt echo %DATE%%time% 注册表扫描报告for /f "tokens=3 delims=\" %%i in ('reg query HKLM\SOFTWARE') do (echo 当前扫描信息: HKLM\SOFTWARE\%%i>>%temp%\reglist.txt echo ================================================================>>%temp%\reglist.txt echo 软件名称:%%i >>%temp%\reglist.txt echo ================================================================ if not "%%i"=="Classes" if not "%%i"=="Microsoft" for /f "tokens=4 delims=\" %%j in ('reg query HKLM\SOFTWARE\%%i 2^>nul') do ( echo 软件信息: %%j>>%temp%\reglist.txt for /f "tokens=* delims=" %%k in ('reg query "hklm\software\%%i\%%j" /S^|findstr /c:"REG_SZ" ') do (set /a n+=1clsecho 已扫扫描项值: !n! 当前信息: %%jecho 关联文件信息:%%k>>%temp%\reglist.txt ) )))>>%temp%\reglist.txt echo 如需保存结果请选择文件另存为 BY PPdostitle FINISHED&echo 扫描完毕!ping 127.0>nulstart %temp%\reglist.txt 2,计算器 @echo off title DOS计算器---by blackboy mode con: cols=45 lines=20 setlocal enabledelayedexpansion REM 开始界面 :begin cls color 0a echo. echo ╭——————╮ echo ╭———┤ DOS 计算器 ├———╮ echo │ ╰——————╯ │ echo │ =by blackboy= │ echo │ │ echo │ 请选择: │ echo │ │ echo │ 1 - 普通+-×÷ │ echo │ 2 - 求N次方 │ echo │ 3 - 求阶乘 │ echo │ h - 帮助 │ echo │ q - 退出 │ echo │ │ echo ╰——————————————╯ REM 取得用户输入 echo. set UserChoice="" set /p UserChoice=请选择: if /I %UserChoice%==q goto end if /I %UserChoice%==h goto help if %UserChoice%==1 goto normal if %UserChoice%==2 goto fang if %UserChoice%==3 goto jiecheng goto error REM 普通运算 :normal cls echo. echo. echo. echo ╭—————————╮ echo │ 普通+-×÷运算 │ echo ╰—————————╯ echo. set /p UserInput=请输入表达式: REM 检测表达式 echo %UserInput% | findstr "[0-9]">nul || goto error echo %UserInput% | findstr /I "[a-z]">nul && goto error echo %UserInput% | find ".">nul && goto error echo %UserInput% | findstr "+ - * /">nul || goto error echo %UserInput% | find "+">nul && goto add echo %UserInput% | find "-">nul && goto minus echo %UserInput% | find "*">nul && goto multiply echo %UserInput% | find "/">nul && goto divide REM 实际运算 :add for /f "tokens=1,2 delims=+" %%a in ("%UserInput%") do set /a result=%%a+%%b echo 计算结果=%result% goto refresh :minus for /f "tokens=1,2 delims=-" %%a in ("%UserInput%") do set /a result=%%a-%%b echo 计算结果=%result% goto refresh :multiply for /f "tokens=1,2 delims=*" %%a in ("%UserInput%") do set /a result=%%a*%%b echo 计算结果=%result% goto refresh :devide for /f "tokens=1,2 delims=/" %%a in ("%UserInput%") do set /a result=%%a/%%b echo 计算结果=%result% goto refresh REM 计算N次方 :fang cls echo. echo. echo. echo ╭—————————╮ echo │ 求 N 次 方 │ echo ╰—————————╯ echo. set /p UserInput=请输入表达式: REM 检测表达式 echo %UserInput% | findstr "[0-9]">nul || goto error echo %UserInput% | findstr /I "[a-z]">nul && goto error echo %UserInput% | find ".">nul && goto error echo %UserInput% | find "_">nul || goto error set num= set n= set /a result=1 for /f "tokens=1,2 delims=_" %%a in ("%UserInput%") do set /a num=%%a & set /a n=%%b if %n%==0 goto showfang for /L %%i in (1,1,%n%) do set /a result*=%num% :showfang echo 计算结果=%result% goto refresh REM 计算阶乘 :jiecheng cls echo. echo. echo. echo ╭—————————╮ echo │ 求 阶 乘 │ echo ╰—————————╯ echo. set /p UserInput=请输入要求阶乘的整数: REM 检测表达式 echo %UserInput% | findstr "[0-9]">nul || goto error echo %UserInput% | findstr /I "[a-z]">nul && goto error echo %UserInput% | find ".">nul && goto error set /a result=1 REM 不可以直接判断UserInput是否为0 set num=%UserInput% if %num%==0 goto showjiecheng for /L %%i in (%num%,-1,1) do set /a result*=%%i :showjiecheng echo 计算结果=%result% goto refresh REM 错误 :error cls color 0c echo. echo. echo. echo ╭————————————╮ echo │ 输入错误,请参考帮助! │ echo ╰————————————╯ echo. REM 刷新 :refresh echo. set UserChoice="" set /p UserChoice=请按任意键继续,退出请按q,帮助请按h: if /I %UserChoice%==q goto end if /I %UserChoice%==h goto help goto begin REM 帮助 :help cls color 0a echo. echo ╭——————╮ echo ╭————┤ 帮 助 ├————╮ echo │ ╰——————╯ │ echo │ │ echo │ 1.普通运算请使用以下形式: │ echo │ 4+1 5-2 2*3 6/2 │ echo │ │ echo │ 2.计算N次方请使用以下形式: │ echo │ 2_5 (求2的5次方) │ echo │ │ echo │ 3.只支持整数运算 │ echo │ │ echo │ 4.输入部分特殊符号可能会 │ echo │ 导致意外退出 │ echo │ │ echo ╰————————————————╯ goto refresh REM 退出 :end cls color 0a echo. echo. echo. echo ╭————————————————╮ echo │ │ echo │ 非常感谢您的使用,再见! │ echo │ │ echo ╰————————————————╯ ping -n 2 127.1>nul exit3,生成dos帮助文档@echo offtitle Dos帮助文档 装载中...mode con cols=50 lines=5setlocal enabledelayedexpansion>Dos帮助文档.txt echo Dos帮助文档>>Dos帮助文档.txt echo.>>Dos帮助文档.txt echo %DATE%%time% >>Dos帮助文档.txt echo.>>Dos帮助文档.txt echo 作者: LGC>>Dos帮助文档.txt echo.for /f "skip=1 " %%i in ('help') do (>>Dos帮助文档.txt echo ================================================================>>Dos帮助文档.txt echo. 命令名称:%%i >>Dos帮助文档.txt echo ================================================================>>Dos帮助文档.txt echo. echo.help %%i >>Dos帮助文档.txtset /a n+=1clsecho 已完成命令数: !n! 当前命令:%%i>>Dos帮助文档.txt echo. )title FINISHED&echo 扫描完毕!ping 127.0>nulDos帮助文档.txt4,他妈的给我开机@echo off setlocal EnableDelayedExpansion set _tmp_F_S=C:\_delay.vbs set _tmp_F_F=C:\_tmp.tmp set delay=50 set s1=开机 set s2=快开机 set s3=他妈的开机 set s4=你他妈到底开不开机 set s5=操!!再不开机老子砸了你!! echo if WScript.Arguments.count = 1 then WScript.Sleep CInt(WScript.Arguments(0)) end if>%_tmp_F_S% if exist %_tmp_F_F% del %_tmp_F_F% for /L %%i in (1,1,4) do (call :show %%s%%i%% && call :fail %%s%%i%%) call :show %s5% call :suc if exist %_tmp_F_S% del %_tmp_F_S% if exist %_tmp_F_F% del %_tmp_F_F% ping -n 1 127.1>nul goto :EOF :show if "%~1"=="" goto :EOF set s=%1 set /p ans=%cd%^><nul set /A len=0 :comp_len echo %%s:~%len%,1%% | find "ECHO">nul && goto end_comp set /A "len+=1" goto comp_len :end_comp set /A "len-=1" for /L %%i in (0,1,%len%) do (cscript //nologo %_tmp_F_S% %delay% && set /p ans=!s:~%%i,1!<nul) cscript //nologo %_tmp_F_S% 500 echo. echo %cd%^>%1>>%_tmp_F_F% echo.>>%_tmp_F_F% goto :EOF :fail echo '%1' 不是内部或外部命令,也不是可运行的程序 echo 或批处理文件。 echo. echo '%1' 不是内部或外部命令,也不是可运行的程序>>%_tmp_F_F% echo 或批处理文件。>>%_tmp_F_F% echo.>>%_tmp_F_F% goto :EOF :suc ping -n 1 127.1>nul set eqq================================================================================ set gtr=^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^> echo Loading Windows 2000 ...>>%_tmp_F_F% echo.>>%_tmp_F_F% for /L %%i in (0,1,79) do (set /A new=2*%%i && type %_tmp_F_F% && echo !gtr:~0,%%i!!eqq:~%%i,80! && ping -n 1 127.1>nul && cls) goto :EOF 5,系统设置自动登录 @echo off:: 用于不用每次登录都要手动填写登录名和密码title 快速登录Windows系统 color 1eecho.echo 作者:LGC echo.echo QQ:28493389echo.echo 软件描述:现在的黑客如此泛滥,谁也不能保证自己的计算机系统绝对安全,各种各样的入侵技术应用的是相当广泛,而对于我们这些水平一般的用户来说,自己能做只能是把自己的系统登录密码设的复杂一点,这样即使黑客能入侵你,也要很费劲的,对于那些没有耐性的黑客,可能就此退缩哦,嘻嘻而如果把用户密码设的很复杂了,在我们正常登录的时候就会很浪费时间,呵呵,对于我们这类懒人来说,是无法容忍的,所以就做了这个东西,不用登录就客进入系统,嘻嘻。。(并不是真的不登录的,而是Windows自己启动时登录的,嘻嘻。。)echo.echo.echo 1,开启自动登录 2,关闭自动登录 3,自动登录设置 4, 退出echo.:STAR@set /p XZ=请选择操作类型:if %XZ%== 1 GOTO OPENAUTOif %XZ%== 2 GOTO CLOSEAUTOif %XZ%== 3 GOTO EDITAUTOif %XZ%== 4 GOTO CLOSESYSif %XZ% GTR 4 GOTO STAR:OPENAUTOREG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /V AutoAdminLogon /T REG_SZ /D 1 /Fgoto CLOSESYS:CLOSEAUTOREG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /V AutoAdminLogon /T REG_SZ /D 0 /Fgoto CLOSESYS:EDITAUTOclsset /p username=请输入用户名:REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /V DefaultUserName /T REG_SZ /D %username% /Fset /p userpass=请输入用户密码:echo %userpass%>1(find /i "echo" 1)>nul && REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /V DefaultPassword /T REG_SZ /F || REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /V DefaultPassword /T REG_SZ /D %userpass% /Fecho pause>nul del 1goto CLOSESYS:CLOSESYSpause6,关机 @echo offtitle 系统关机:loopclscolor bcecho.echo.echo *** WINDOWSXP 快速关机系统 ***echo.echo 快速关机……………………请直接回车echo 开始倒计时关机……………请输入1+回车echo 设定时间点关机……………请输入2+回车echo 显示计时关机………………请输入3+回车echo 设定每天关机………………请输入4+回车echo 取消系统关机………………请输入空格+回车echo 退出…………………………请输入Q+回车echo.echo.set a=set /p a= 【 请输入 】:if "%a%"=="1" goto aaaif "%a%"=="2" goto bbbif "%a%"==" " goto cccif "%a%"=="" goto dddif "%a%"=="3" goto eeeif "%a%"=="4" goto fffif "%a%"=="q" exitgoto loop:ddd@echo offcolor e5clsecho.echo.echo 〖系统即将关机并结束进程〗pauseecho.::ntsd -c q -pn %run%taskkill /f /t /im pfw.exe /f /t /im internat.exe /f /t /im explorer.exeshutdown -s -f -t 0 -c "取消请运行shutdown -a"exit:aaa@echo offcolor f4echo.echo.echo.echo 现在将设置系统自动关机,请在此输入倒计时秒数后回车,系统将在设定时间自动关闭set mytime=set /p mytimes= 【 倒计时关机请输入 小时数】:set /a mytimes=%mytimes%*3600set /p mytimef= 【 倒计时关机请输入 分钟数】:set /a mytimef=%mytimef%*60set /p mytimem= 【 倒计时关机请输入 秒 数】:set /a mytime=%mytimes%+%mytimef%+%mytimem%shutdown -s -t %mytime% -c "取消请运行shutdown -a"clsecho.echo 〖系统将在%mytime%秒后关机〗echo.pausegoto loop:bbb@echo offcolor f9echo.echo.echo.echo 现在将设置系统自关机,请在此输入关机时间(如12:00)回车,系统将定时自动关闭set mytimes=set mytimef=set /p mytimes= 【 定时关机请输入 时】:set /p mytimef= 【 定时关机请输入 分】:at %mytimes%:%mytimef% shutdown -s -t 0::这表示在mytime分执行shutdown -s -t 0操作.如果当前时间大于任务执行时间,则默认为明日执行,0为倒计时时间.echo.echo 〖现在将显示所有计划〗echo ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■atecho ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■pause::显示计划并暂停goto loop:ccc@echo offcolor f2echo.echo.echo.echo 〖现在将设置取消系统自动关机〗echo.pauseshutdown -aecho.echo.echo 〖现在将显示所有计划,在回车后取消计划且无须确认〗echo ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■atecho ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■pauseat /del /yes::取消所有计划并无须确认clsecho.echo 〖系统已经取消自动关机〗echo 〖系统已经取消所有计划任务〗echo.pausegoto loop:eee@echo offcolor f4echo.echo.echo.echo 现在将设置系统自动关机,请在此输入倒计时秒数后回车,系统将在设定时间自动关闭set mytime=::此行是为了清mytime变量值,以免在不注意的情况下存在变量值,此为一种好的习惯.set mytimes=0::赋值为0是为了使%mytimes%不致于无意义,下同.set mytimef=0set mytimem=0set /p mytimes= 【 倒计时关机请输入 小时数】:set /a mytimes=%mytimes%*3600set /p mytimef= 【 倒计时关机请输入 分钟数】:set /a mytimef=%mytimef%*60set /p mytimem= 【 倒计时关机请输入 秒 数】:color a3mode con cols=30 lines=4set /a mytime=%mytimes%+%mytimef%+%mytimem%SET wait=ping -n 2 127.0.0.1 ^>^nulfor /l %%n in (%mytime%,-1,0) do (rem clsecho *******************echo 〖%%n秒后自动关机〗echo *******************%wait%cls)shutdown -s -t 0goto loop:fff@echo offcolor f9echo.echo.echo.echo 现在将设置系统每天运行自关机echo.set myopengs=set /p myopengs= 【重复设定请输入单空格+回车,单次及最后一次设定请回车】echo.echo 请在此输入关机时间(如12:00)后回车,系统将定时关闭echo.set mytimes=set mytimef=set /p mytimes= 【 定时关机请输入 时】:set /p mytimef= 【 定时关机请输入 分】:at %mytimes%:%mytimef% /EVEry:M,T,W,Th,F,S,Su shutdown -s -fecho.echo 〖现在将显示所有计划〗echo ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■atecho ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■pause::显示计划并暂停if "%myopengs%"==" " goto :fffgoto loop
|