基于DOS命令的批处理


基于DOS命令的批处理

     批处理(Batch),也称批处理脚本。顾名思义,批处理就是对某对象进行批量的处理。批处理文件的扩展名为.bat 。
     基于DOS命令的批处理,应用于DOS和Windows系统中,由DOS或者Windows系统内嵌的命令解释器(通常是COMMAND.COM或者CMD.EXE)解释运行。批处理文件具有.bat或者.cmd的扩展名。批处理文件,或称为批处理程序,是由一条条的DOS命令组成的普通文本文件,可以用记事本直接编辑,完成后把文件后缀名修改为.bat或用DOS命令创建,也可以用DOS下的文本编辑器Edit.exe来编辑。在“命令提示”下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe运行该批处理程序。一般情况下,每条命令占据一行;也可以将多条命令用特定符号(如:&、&&、|、||等)分隔后写入同一行中;还有的情况就是像if、for等较高级的命令则要占据几行甚至几十几百行的空间。系统在解释运行批处理程序时,首先扫描整个批处理程序,然后从第一行代码开始向下逐句执行所有的命令,直至程序结尾或遇见exit命令或出错意外退出。

     下面枚举一些常用的批处理程序:
1、查看当前目录占用的空间
------------------------------------------------
@echo off
for /f "tokens=*" %%b in ('dir') do echo "%%b"|find "个文件">nul&&for /f "tokens=3*" %%c in ("%%b") do echo 当前目录 %%c %%d
for /f %%a in ('dir/ad/s/b') do for /f "tokens=*" %%b in ('"dir %%a\"') do echo "%%b"|find "个文件">nul&&for /f "tokens=3*" %%c in ("%%b") do echo %%a %%c %%d
pause
-------------------------------------------------

2、查找最新的文件
-------------------------------------------------
rem  文件更新列表批处理
cls
title         YIPINGSOFT CopyRight2006            
rem "=================================================="
For /r  %%i in (.) DO   del %%i\最新文件目录.txt
del 备查目录.txt
del 完整目录.txt
set homes=%date%    
date/t >>完整目录.txt      
for /F %%A in (完整目录.txt) do  set homes=%%A    
md  %homes%&
dir  /t:c /s>完整目录.txt  
for /f "tokens=1,4* delims= " %%1 in (完整目录.txt) do for /r  %%a in (%%2*) do if %%1==%homes% echo %%~fa >>最新文件目录.txt
For /r  %%i in (*.*) DO  echo %%~fi >>备查目录.txt
copy 最新文件目录.txt   %homes%&\
-------------------------------------------------

3、查看进程使用端口
-------------------------------------------------
@echo off
color 1f
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
  )
-------------------------------------------------

4、显示自己的IP地址
-------------------------------------------------
@echo off
for /f "tokens=15" %%i in ('ipconfig ^| find /i "ip address"') do set ip=%%i
echo %ip%
pause
-------------------------------------------------

5、修改主页
-------------------------------------------------
reg add "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v "Start Page" /t reg_sz /d http://www.feelfeng.com /f
reg add "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v "Default_Page_URL" /t reg_sz /d http://www.feelfeng.com /f
pause
-------------------------------------------------

6、显示网络配置
-------------------------------------------------
@echo off
call :select "ip address" "ip"
call :select "Physical Address" "mac"
call :select "Default Gateway" "gateway"
call :select "DNS Servers" "dns"
call :select "Description" "netcard"
echo IP:%ip%
echo MAC:%mac%
echo DNS:%dns%
echo GATEWAY:%gateway%
echo NETCARD:%netcard%
pause>nul
goto :eof
::**************************************************************
::              解析ipconfig命令输出通用函数
::**************************************************************
:select
    for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| findstr /i /c:%1') do if not "!%~2!" == "" set "%~2=%%i"
goto :eof
-------------------------------------------------

7、自定义配置网络IP、网关、DNS
-------------------------------------------------
@echo off
set slection1=
set/p slection1=请输入IP地址:
netsh interface ip set address name="本地连接" source=static addr=%slection1% mask=255.255.255.0
set slection2=
set/p slection2=请输入网关地址:
netsh interface ip set address name="本地连接" gateway=%slection2% gwmetric=0

set slection3=
set/p slection3=请输入主dns地址
netsh interface ip set dns name="本地连接" source=static addr=%slection3% register=PRIMARY

set slection4=
set/p slection4=请输入备份dns地址
netsh interface ip add dns name="本地连接" addr=%slection4%
netsh interface ip set wins name="本地连接" source=static addr=none
pause
-------------------------------------------------

8、显示系统用户名
-------------------------------------------------
@echo off
echo 所有用户帐号ID为:
echo.
for /f "skip=4 tokens=1-3" %%i in ('net user') do (
    if not "%%i"=="命令成功完成。" echo %%i
    if not "%%j"=="" echo %%j
    if not "%%k"=="" echo %%k
)
echo.
echo 当前用户帐号ID为:%username%
pause>nul
-------------------------------------------------

9、查看物理内存
-------------------------------------------------
@echo off
color f2
echo.
systeminfo|find "物理内存总量"
pause>nul
-------------------------------------------------

10、Windows XP 修改计算机名
-------------------------------------------------
@echo off
set /p name=请输您的计算机名:
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName" /v ComputerName /t reg_sz /d %name% /f
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /t reg_sz /d %name% /f
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v Hostname /t reg_sz /d %name% /f
-------------------------------------------------

11、列举进程
-------------------------------------------------
@echo for each ps in getobject _ >ps.vbs
@echo ("winmgmts:\\.\root\cimv2:win32_process").instances_ >>ps.vbs
@echo wscript.echo ps.handle^&vbtab^&ps.name^&vbtab^&ps.executablepath:next >>ps.vbs
cscript //nologo ps.vbs & del ps.vbs
pause
-------------------------------------------------

12、显示隐藏文件
-------------------------------------------------
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Hidden /t reg_dword /d 1 /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t reg_dword /d 0 /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v ShowSuperHidden /t reg_dword /d 1 /f
--------------------------------------------------

13、不显示隐藏文件
--------------------------------------------------
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Hidden /t reg_dword /d 00000000 /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t reg_dword /d 00000001 /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v ShowSuperHidden /t reg_dword /d 00000000 /f
--------------------------------------------------
... ...
... ...

锋.com博客  http://www.feelfeng.com

[本日志由 锋.com 于 2011-03-04 11:29 AM 编辑]
上一篇: 机箱维护注意事项
下一篇: 路由器或交换机上常用的测试和诊断命令及其功能
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: Dos 命令 批处理
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 支持Gravatar头像.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.