批處理實例代碼教程
--------------------------------------------------------------------------------
批處理程序刪除自身.bat
echo 有時候我們需要批處理程序在執(zhí)行完成之后刪除自身,可以用 del %0
例:
復制代碼 代碼如下:
@echo off
echo 按任意鍵后我將刪除自身
pause
del %0
--------------------------------------------------------------------------------
批處理發(fā)送文件夾的快捷方式到桌面
復制代碼 代碼如下:
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= 請輸入關機時間:
:: 以下語句實現(xiàn)每個星期的每一天指定時間關機
:: 如果要換成每個月的某幾天,請改字母為數(shù)字,并用逗號分隔
:: 以下代碼沒有錯誤檢測語句,輸入時間的時候務必按照指定格式輸入
:: 可以用在CMD窗口用at命令來查看計劃任務
if not "%times%"=="" for %%i in (%times%) do (
at %%i /every:M,T,W,Th,F,S,Su shutdown -s
)
--------------------------------------------------------------------------------
批處理創(chuàng)建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并執(zhí)行.bat
復制代碼 代碼如下:
@echo off
:: 全盤查找qq.exe,找到之后就執(zhí)行并退出CMD窗口
:: fsutil fsinfo drives 得出來的結果雖然中間有空格,但是他代表是回車符或者換行符的作用,所以還要用find /v來過濾,否則,只得到第一個分區(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
復制代碼 代碼如下:
@echo off
:: 刪除"運行"、"查找"等處的歷史記錄
reg add HKCU/Software/Microsoft/Windows/CurrentVersion/Policies/Explorer /v ClearRecentDocsonExit /t REG_DWORD /d 00000001
--------------------------------------------------------------------------------
批處理查看進程端口
用批處理實現(xiàn)的獲取當前進程所開啟的端口代碼:
復制代碼 代碼如下: