一Qping
它是用来查网l是否通畅或者网l连接速度的命令。作Z个生zd|络上的理员或者黑客来_ping命o是第一个必L握的DOS命oQ它 所利用的原理是q样的:|络上的机器都有唯一定的IP地址Q我们给目标IP地址发送一个数据包Q对方就要返回一个同样大的数据包,Ҏq回的数据包? 们可以确定目标主机的存在Q可以初步判断目标主机的操作pȝ{。下面就来看看它的一些常用的操作。先看看帮助吧,在DOSH口中键入:ping /? 回RQ。所C的帮助画面。在此,我们只掌握一些基本的很有用的参数可以了Q下同)?
-t 表示不间断向目标IP发送数据包Q直到我们强q其停止。试惻I如果你?00M的宽带接入,而目标IP?6K的小猫,那么要不了多久,目标IP因为承受不了这么多的数据而掉U,呵呵Q一ơ攻dq么单的实现了?
-l 定义发送数据包的大,默认?2字节Q我们利用它可以最大定义到65500字节。结合上面介l的-t参数一起用,会有更好的效果哦?
-n 定义向目标IP发送数据包的次敎ͼ默认?ơ。如果网l速度比较慢,3ơ对我们来说也浪费了不少旉Q因为现在我们的目的仅仅是判断目标IP是否存在Q那么就定义Zơ吧?
说明一下,如果-t 参数?-n参数一起用,ping命o׃攑֜后面的参Cؓ标准Q比?ping IP -t -n 3"Q虽然用了-t参数Q但q不是一直ping下去Q而是只ping 3ơ。另外,ping命o不一定非得ping IPQ也可以直接pingL域名Q这样就可以得到L的IP?
下面我们举个例子来说明一下具体用法?
q里time=2表示从发出数据包到接受到q回数据包所用的旉?U,从这里可以判断网l连接速度的大。从TTL的返回值可以初步判断被pingL的操作系l,之所以说"初步判断"是因个值是可以修改的。这里TTL=32表示操作pȝ可能?win98?nbsp;
Q小知识Q如果TTL=128Q则表示目标L可能是Win2000Q如果TTL=250Q则目标L可能是UnixQ?nbsp;
至于利用ping命o可以快速查扑ֱ域网故障Q可以快速搜索最快的QQ服务器,可以对别行pingd……q些靠大家自己发挥了?
二,nbtstat
该命令用TCP/IP上的NetBIOS昄协议l计和当前TCP/IPq接Q用这个命令你可以得到q程L的NETBIOS信息Q比如用户名、所属的工作l、网卡的MAC地址{。在此我们就有必要了解几个基本的参数?
-a 使用q个参数Q只要你知道了远E主机的机器名称Q就可以得到它的NETBIOS信息Q下同)?
-A q个参数也可以得到远E主机的NETBIOS信息Q但需要你知道它的IP?nbsp;
-n 列出本地机器的NETBIOS信息?
当得CҎ的IP或者机器名的时候,可以用nbtstat命o来进一步得到对方的信息了,q又增加了我们入늚保险pL?
三,netstat
q是一个用来查看网l状态的命oQ操作简便功能强大?
-a 查看本地机器的所有开攄口,可以有效发现和预防木马,可以知道机器所开的服务等信息Q如??
q里可以看出本地机器开放有FTP服务、Telnet服务、邮件服务、WEB服务{。用法:netstat -a IP?nbsp;
-r 列出当前的\׃息,告诉我们本地机器的网兟뀁子|掩码等信息。用法:netstat -r IP?nbsp;
四,tracert
跟踪路由信息Q用此命o可以查出数据从本地机器传输到目标L所l过的所有途径Q这Ҏ们了解网l布局和结构很有帮助。如??
q里说明数据从本地机器传输到192.168.0.1的机器上Q中间没有经qQ何中转,说明q两台机器是在同一D局域网内。用法:tracert IP?
五,net
q个命o是网l命令中最重要的一个,必须透彻掌握它的每一个子命o的用法,因ؓ它的功能实在是太强大了,q简直就?微Y为我们提供的最好的入R工具。首先让我们来看一看它都有那些子命令,键入net /?回R如图6?nbsp;
在这里,我们重点掌握几个入R常用的子命o?
net view
使用此命令查看远E主机的所以共享资源。命令格式ؓnet view \IP。
net use
把远E主机的某个׃n资源影射为本地盘W,囑Ş界面方便使用Q呵c命令格式ؓnet use x: \IP\sharename。上面一个表C把192.168.0.5IP的共享名为magic的目录媄ؓ本地的Z盘。下面表C和192.168.0.7 建立IPC$q接Qnet use \IP\IPC$ "password" /user:"name"Q,
建立了IPC$q接后,呵呵Q就可以上传文g了:copy nc.exe \192.168.0.7\admin$Q表C把本地目录下的nc.exe传到q程LQ结合后面要介绍到的其他DOS命o可以实现入侵了?
net start
使用它来启动q程L上的服务。当你和q程L建立q接后,如果发现它的什么服务没有启动,而你又想利用此服务怎么办?׃用这个命令来启动吧。用法:net start servernameQ如?Q成功启动了telnet服务?
net stop
入R后发现远E主机的某个服务手脚Q怎么办?利用q个命o停掉ok了,用法和net start同?
net user
查看和帐h关的情况Q包括新建帐戗删除帐戗查看特定帐戗激zd戗帐L用等。这Ҏ们入侉|很有利的Q最重要的,它ؓ我们克隆帐户提供了前提。键入不带参数的net userQ可以查看所有用P包括已经用的。下面分别讲解?nbsp;
1Qnet user abcd 1234 /addQ新Z个用户名为abcdQ密码ؓ1234的帐P默认为userl成员?nbsp;
2Qnet user abcd /delQ将用户名ؓabcd的用户删除?nbsp;
3Qnet user abcd /active:noQ将用户名ؓabcd的用L用?nbsp;
4Qnet user abcd /active:yesQ激zȝ户名为abcd的用戗?nbsp;
5Qnet user abcdQ查看用户名为abcd的用L情况
net localgroup
查看所有和用户l有关的信息和进行相x作。键入不带参数的net localgroup卛_出当前所有的用户l。在入Rq程中,我们一般利用它来把某个帐户提升为administratorl帐Pq样我们利用q个帐户 可以控制整个远E主Z。用法:net localgroup groupname username /add?
现在我们把刚才新建的用户abcd加到administratorl里MQ这时候abcd用户已经是超U管理员了,呵呵Q你可以再用net user abcd来查看他的状态,和图10q行比较可以看出来。但q样太明显了Q网一看用h况就能漏出破l,所以这U方法只能对付菜鸟网,但我们还得知 道。现在的手段都是利用其他工具和手D克隆一个让|管看不出来的超U管理员Q这是后话。有兴趣的朋友可以参照《黑客防Uѝ第30期上的《由入p析隆? 戗一文?
net time
q个命o可以查看q程L当前的时间。如果你的目标只是进入到q程L里面Q那么也许就用不到这个命令了。但单的入R成功了,N只是看看 吗?我们需要进一步渗透。这pq程L当前的时间都需要知道,因ؓ利用旉和其他手D(后面会讲刎ͼ可以实现某个命o和程序的定时启动Qؓ我们q一步入 侉|好基。用法:net time \IP?
六,at
q个命o的作用是安排在特定日期或旉执行某个特定的命令和E序Q知道net time的重要了吧?Q。当我们知道了远E主机的当前旉Q就可以利用此命令让其在以后的某个时_比如2分钟后)执行某个E序和命令。用法:at time command \computer?
表示??5分时Q让名称为a-01的计机开启telnet服务Q这里net start telnet即ؓ开启telnet服务的命令)?
七,ftp
大家对这个命令应该比较熟悉了吧?|络上开攄ftp的主机很多,其中很大一部分是匿名的Q也是说Q何h都可以登陆上厅R现在如果你扫到了一 台开?ftp服务的主机(一般都是开?1端口的机器)Q如果你q不会用ftp的命令怎么办?下面q出基本的ftp命o使用Ҏ?nbsp;
首先在命令行键入ftp回RQ出现ftp的提C符Q这时候可以键?help"来查看帮助(MDOS命o都可以用此Ҏ查看其帮??
大家可能看到了,q么多命令该怎么用?其实也用不到那么多,掌握几个基本的就够了?
首先是登陆过E,q就要用到open了,直接在ftp的提C符下输?open LIP ftp端口"回R卛_Q一般端口默认都?1Q可以不写。接着是输入合法的用户名和密码进行登陆了Q这里以匿名ftpZ介绍?
用户名和密码都是ftpQ密码是不显C的。当提示**** logged inӞp明登陆成功。这里因为是匿名登陆Q所以用hCZؓAnonymous?
接下来就要介l具体命令的使用Ҏ了?
dir 跟DOS命o一P用于查看服务器的文gQ直接敲上dir回RQ就可以看到此ftp服务器上的文件?nbsp;
cd q入某个文g夏V?nbsp;
get 下蝲文g到本地机器?nbsp;
put 上传文g到远E服务器。这p看远Eftp服务器是否给了你可写的权限了Q如果可以,呵呵Q该怎么 利用׃多说了,大家p由发挥去吧?nbsp;
delete 删除q程ftp服务器上的文件。这也必M证你有可写的权限?nbsp;
bye 退出当前连接?nbsp;
quit 同上?nbsp;
八,telnet
功能强大的远E登陆命令,几乎所有的入R者都喜欢用它Q屡试不爽。ؓ什么?它操作简单,如同使用自己的机器一P只要你熟悉DOS命oQ在成功 ? administratorw䆾q接了远E机器后Q就可以用它来干你想q的一切了。下面介l一下用方法,首先键入telnet回RQ再键入help查看 其帮助信息?
然后在提C符下键入open IP回RQ这时就出现了登陆窗口,让你输入合法的用户名和密码,q里输入M密码都是不显C的?
当输入用户名和密码都正确后就成功建立了telnetq接Q这时候你在q程L上具有了和此用户一L权限Q利用DOS命o可以实C惛_的事情了。这里我使用的超U管理员权限登陆的。
到这里ؓ止,|络DOS命o的介l就告一D落了,q里介绍的目的只是给菜鸟|管一个印象,让其知道熟悉和掌握网lDOS命o的重要性。其实和|? l有关的DOS命oq远不止q些Q这里只是抛砖引玉,希望能对q大菜鸟|管有所帮助。学好DOS对当好网有很大的帮助,特别的熟l掌握了一些网l的 DOS命o?nbsp;
另外大家应该清楚QQ何h要想q入pȝQ必d有一个合法的用户名和密码Q输入法漏洞差不多绝q了吧)Q哪怕你拿到帐户的只有一个很的权限Q你也可以利用它来达到最后的目的。所以坚x灭空口oQ给自己的帐户加上一个强壮的密码Q是最好的防M弱口令入늚Ҏ?nbsp;
最后,p的说一句,培养良好的安全意识才是最重要的?nbsp;
=========================================
开?#8594;q行→命o集锦
winver---------查Windows版本
wmimgmt.msc----打开windows理体系l构(WMI)
wupdmgr--------windows更新E序
wscript--------windows脚本宿主讄
write----------写字?nbsp;
winmsd---------pȝ信息
wiaacmgr-------扫描仪和照相机向?nbsp;
winchat--------XP自带局域网聊天
mem.exe--------昄内存使用情况
Msconfig.exe---pȝ配置实用E序
mplayer2-------易widnows media player
mspaint--------d?nbsp;
mstsc----------q程桌面q接
mplayer2-------媒体播放?nbsp;
magnify--------攑֤镜实用程?nbsp;
mmc------------打开控制?nbsp;
mobsync--------同步命o
dxdiag---------查DirectX信息
drwtsn32------ pȝȝ
devmgmt.msc--- 讑֤理?nbsp;
dfrg.msc-------盘片整理E序
diskmgmt.msc---盘理实用E序
dcomcnfg-------打开pȝlg服务
ddeshare-------打开DDE׃n讄
dvdplay--------DVD播放?nbsp;
net stop messenger-----停止信服务
net start messenger----开始信使服?nbsp;
notepad--------打开C?nbsp;
nslookup-------|络理的工具向?nbsp;
ntbackup-------pȝ备䆾和还?nbsp;
narrator-------屏幕"讲述?
ntmsmgr.msc----Ud存储理?nbsp;
ntmsoprq.msc---Ud存储理员操作请?nbsp;
netstat -an----(TC)命o查接?nbsp;
syncapp--------创徏一个公文包
sysedit--------pȝ配置~辑?nbsp;
sigverif-------文g{验证E序
sndrec32-------录音?nbsp;
shrpubw--------创徏׃n文g?nbsp;
secpol.msc-----本地安全{略
syskey---------pȝ加密Q一旦加密就不能解开Q保护windows xppȝ的双重密?nbsp;
services.msc---本地服务讄
Sndvol32-------音量控制E序
sfc.exe--------pȝ文g查器
sfc /scannow---windows文g保护
tsshutdn-------60U倒计时关机命?nbsp;
tourstart------xp介(安装完成后出现的漫游xpE序Q?nbsp;
taskmgr--------d理?nbsp;
eventvwr-------事g查看?nbsp;
eudcedit-------造字E序
explorer-------打开资源理?nbsp;
packager-------对象包装E序
perfmon.msc----计算机性能监测E序
progman--------E序理?nbsp;
regedit.exe----注册?nbsp;
rsop.msc-------l策略结果集
regedt32-------注册表编辑器
rononce -p ----15U关?nbsp;
regsvr32 /u *.dll----停止dll文gq行
regsvr32 /u zipfldr.dll------取消ZIP支持
cmd.exe--------CMD命o提示W?nbsp;
chkdsk.exe-----Chkdsk盘?nbsp;
certmgr.msc----证书理实用E序
calc-----------启动计算?nbsp;
charmap--------启动字符映射?nbsp;
cliconfg-------SQL SERVER 客户端网l实用程?nbsp;
Clipbrd--------剪脓板查看器
conf-----------启动netmeeting
compmgmt.msc---计算机管?nbsp;
cleanmgr-------垃圾整理
ciadv.msc------索引服务E序
osk------------打开屏幕键盘
odbcad32-------ODBC数据源管理器
oobe/msoobe /a----查XP是否Ȁz?nbsp;
lusrmgr.msc----本机用户和组
logoff---------注销命o
iexpress-------木马捆绑工具Q系l自?nbsp;
Nslookup-------IP地址侦测?nbsp;
fsmgmt.msc-----׃n文g夹管理器
utilman--------辅助工具理?nbsp;
gpedit.msc-----l策?/p>
转自 http://blog.csdn.net/ccsbb/archive/2010/01/27/5261954.aspx
1 echo ?@
回显命o
@ #关闭单行回显
echo off #从下一行开始关闭回?br />
@echo off #从本行开始关闭回显。一般批处理W一行都是这?br />
echo on #从下一行开始打开回显
echo #昄当前?echo off 状态还?echo on 状?br />
echo. #输出一?#8221;回R换行”Q空白行
#(同echo, echo; echo+ echo[ echo] echo/ echo)
2 errorlevel
echo %errorlevel%
每个命oq行l束Q可以用q个命o行格式查看返回码
默认gؓ0Q一般命令执行出错会?errorlevel ?
3 dir
昄文g夹内?/font>
dir #昄当前目录中的文g和子目录
dir /a #昄当前目录中的文g和子目录Q包括隐藏文件和pȝ文g
dir c: /a:d #昄 C 盘当前目录中的目?br />
dir c: /a:-d #昄 C 盘根目录中的文g
dir c: /b/p #/b只显C文件名Q?p分页昄
dir *.exe /s #昄当前目录和子目录里所有的.exe文g
4 cd
切换目录
cd #q入根目?br />
cd #昄当前目录
cd /d d:sdk #可以同时更改盘符和目?/font>
5 md
创徏目录
md d:abc #如果 d:a 不存在,会自动创徏中目录
#如果命o扩展名被停用Q则需要键?mkdir abc?br />
6 rd
删除目录
rd abc #删除当前目录里的 abc 子目录,要求为空目录
rd /s/q d:temp #删除 d:temp 文g夹及其子文g夹和文gQ?q安静模式
7 del
删除文g
del d:test.txt #删除指定文gQ不能是隐藏、系l、只L?br />
del /q/a/f d:temp*.*
删除 d:temp 文g多w面的所有文Ӟ包括隐藏、只诅R系l文Ӟ不包括子目录
del /q/a/f/s d:temp*.*
删除 d:temp 及子文g多w面的所有文Ӟ包括隐藏、只诅R系l文Ӟ不包括子目录
8 ren
重命名命?/font>
ren d:temp tmp #支持Ҏ件夹的重命名
9 cls
清屏
10 type
昄文g内容
type c:boot.ini #昄指定文g的内容,E序文g一般会昄q
type *.txt #昄当前目录里所?txt文g的内?/font>
11 copy
拯文g
copy c:test.txt d:test.bak
复制 c:test.txt 文g?d: Qƈ重命名ؓ test.bak
copy con test.txt
从屏q上{待输入Q按 Ctrl+Z l束输入Q输入内容存为test.txt文g
con代表屏幕Qprn代表打印机,nul代表I?br />
copy 1.txt + 2.txt 3.txt
合ƈ 1.txt ?2.txt 的内容,保存?3.txt 文g
如果不指?3.txt Q则保存?1.txt
copy test.txt +
复制文g到自己,实际上是修改了文件日?/font>
12 title
讄cmdH口的标?/strong>
title 新标?nbsp; #可以看到cmdH口的标题栏变了
13 ver
昄pȝ版本
14 label ?vol
讄h
vol #昄h
label #昄hQ同时提C入新h
label c:system #讄C盘的h?system
15 pause
暂停命o
16 rem ?::
注释命o
注释行不执行操作
17 date ?time
日期和时?/strong>
date #昄当前日期Qƈ提示输入新日期,?回R"略过输入
date/t #只显C当前日期,不提C入新日期
time #昄当前旉Qƈ提示输入新时_?回R"略过输入
time/t #只显C当前时_不提C入新旉
18 goto ?:
跌{命o
:label #行首?表示该行是标{行Q标{行不执行操?br />
goto label #跌{到指定的标签那一?/font>
19 find (外部命o)
查找命o
find "abc" c:test.txt
?c:test.txt 文g里查扑 abc 字符串的?br />
如果找不刎ͼ设 errorlevel q回码ؓ1
find /i “abc” c:test.txt
查找?abc 的行Q忽略大写
find /c "abc" c:test.txt
昄?abc 的行的行?/font>
20 more (外部命o)
逐屏昄
more c:test.txt #逐屏昄 c:test.txt 的文件内?/font>
21 tree
昄目录l构
tree d: #昄D盘的文g目录l构
22 &
序执行多条命oQ而不命令是否执行成?br />
23 && ?||
&&序执行多条命oQ当到执行出错的命令后不执行后面的命?br />
| | 序执行多条命oQ当到执行正确的命令后不执行后面的命?/font>
find "ok" c:test.txt && echo 成功
如果扑ֈ?ok"字样Q就昄"成功"Q找不到׃昄
find "ok" c:test.txt || echo 不成?br />
如果找不?ok"字样Q就昄"不成?Q找C׃昄
24 |
道命o
dir *.* /s/a | find /c ".exe"
道命o表示先执?dir 命oQ对其输出的l果执行后面?find 命o
该命令行l果Q输出当前文件夹及所有子文g多w?exe文g的个?br />
type c:test.txt|more
q个?more c:test.txt 的效果是一L
25 > ?>> ?^
输出重定向命?br />
> 清除文g中原有的内容后再写入
>> q加内容到文件末,而不会清除原有的内容
主要本来显C在屏幕上的内容输出到指定文件中
指定文g如果不存在,则自动生成该文g
type c:test.txt >prn
屏幕上不昄文g内容Q{向输出到打印?br />
echo hello world>con
在屏q上昄hello worldQ实际上所有输出都是默?>con ?br />
copy c:test.txt f: >nul
拯文gQƈ且不昄"文g复制成功"的提CZ息,但如果f盘不存在Q还是会昄出错信息
copy c:test.txt f: >nul 2>nul
不显C?#8221;文g复制成功”的提CZ息,q且f盘不存在的话Q也不显C错误提CZ?br />
^的作用是把命令符可{意成文本W号Q它也可以{意自己,如:
echo ^^W ^> ^W>c:test.txt
生成的文件内容ؓ ^W > W
^ ?> 是控制命令,要把它们输出到文Ӟ必须在前面加?^ W号
set /p=^|
|是管道命令,要显C|Q就要加^
26 '' ?""
单引L作用是,多个命令组成的复合语句当成一条语?br />
双引L表示其内部内容ؓ文本W号Q它也可以连接两个或多个以空格间隔的文本W号
for /f "tokens=15" %%i in ('ipconfig ^| find /i "ip address"') do set ip=%%i
ipconfig句一Qfind /i "ip address"句二Q用单引号合Z条语?/font>
IF /I "%c%"=="1" ECHO %c%
set p="I Love You!!"
find if set
27 <
从文件中获得输入信息Q而不是从屏幕?/strong>
一般用?date time label {需要等待输入的命o
@echo off
echo 2005-05-01>temp.txt
date <temp.txt
del temp.txt
q样可以不{待输入直接修改当前日期
28 %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*
命o行传递给批处理的参数
%0 批处理文件本w?br />
%1 W一个参?br />
%9 W九个参?br />
%* 从第一个参数开始的所有参?br />
批参?%n)的替代已被增强。您可以使用以下语法:
%~1 - 删除引号(")Q扩?%1
%~f1 - ?%1 扩充C个完全合格的路径?br />
%~d1 - 仅将 %1 扩充C个驱动器?br />
%~p1 - 仅将 %1 扩充C个\?br />
%~n1 - 仅将 %1 扩充C个文件名
%~x1 - 仅将 %1 扩充C个文件扩展名
%~s1 - 扩充的\径指含有短名
%~a1 - ?%1 扩充到文件属?br />
%~t1 - ?%1 扩充到文件的日期/旉
%~z1 - ?%1 扩充到文件的大小
%~$PATH : 1 - 查找列在 PATH 环境变量的目录,q将 %1
扩充到找到的W一个完全合格的名称。如果环?br />
变量名未被定义,或者没有找到文Ӟ此组合键?br />
扩充到空字符?br />
可以l合修定W来取得多重l果:
%~dp1 - 只将 %1 扩展到驱动器号和路径
%~nx1 - 只将 %1 扩展到文件名和扩展名
%~dp$PATH:1 - 在列?PATH 环境变量中的目录里查?%1Q?br />
q扩展到扑ֈ的第一个文件的驱动器号和\径?br />
%~ftza1 - ?%1 扩展到类?DIR 的输?br />
可以参照 call/? ?for/? 看出每个参数的含?br />
echo load "%%1" "%%2">c:test.txt
生成的文件内容ؓ load "%1" "%2"
批处理文仉Q用q个格式把命令行参数输出到文?br />
29 if
判断命o
if "%1"=="/a" echo W一个参数是/a
if /i "%1" equ "/a" echo W一个参数是/a
/i 表示不区分大写Qequ ?== 是一LQ其它运符参见:
EQU - {于
NEQ - 不等?br />
LSS - 于
LEQ - 于或等?br />
GTR - 大于
GEQ - 大于或等?br />
if exist c:test.bat echo 存在c:test.bat文g
if not exist c:windows (
echo 不存在c:windows文g?br />
)
if exist c:test.bat (
echo 存在c:test.bat
) else (
echo 不存在c:test.bat
)
30 setlocal ?endlocal
讄”命o扩展?#8221;?#8221;延缓环境变量扩充”
SETLOCAL ENABLEEXTENSIONS #启用"命o扩展?
SETLOCAL DISABLEEXTENSIONS #停用"命o扩展?
SETLOCAL ENABLEDELAYEDEXPANSION #启用"延缓环境变量扩充"
SETLOCAL DISABLEDELAYEDEXPANSION #停用"延缓环境变量扩充"
ENDLOCAL #恢复C用SETLOCAL语句以前的状?br />
“命o扩展?#8221;默认为启?br />
“延缓环境变量扩充”默认为停?br />
批处理结束系l会自动恢复默认?br />
可以修改注册表以用"命o扩展?Q详?cmd /? 。所以用?命o扩展?的程
序,在开头和l尾加上 SETLOCAL ENABLEEXTENSIONS ?ENDLOCAL 语句Q以?br />
保程序能在其它系l上正确q行
"延缓环境变量扩充"主要用于 if ?for 的符合语句,?set 的说明里有其实用例程
31 set
讄变量
引用变量可在变量名前后加 % Q即 %变量?
set #昄目前所有可用的变量Q包括系l变量和自定义的变量
echo %SystemDrive% #昄pȝ盘盘W。系l变量可以直接引?br />
set p #昄所有以p开头的变量Q要是一个也没有perrorlevel=1
set p=aa1bb1aa2bb2 #讄变量pQƈ赋gؓ = 后面的字W串Q即aa1bb1aa2bb2
echo %p% #昄变量p代表的字W串Q即aa1bb1aa2bb2
echo %p:~6% #昄变量p中第6个字W以后的所有字W,即aa2bb2
echo %p:~6,3% #昄W?个字W以后的3个字W,即aa2
echo %p:~0,3% #昄?个字W,即aa1
echo %p:~-2% #昄最后面?个字W,即b2
echo %p:~0,-2% #昄除了最?个字W以外的其它字符Q即aa1bb1aa2b
echo %p:aa=c% #用c替换变量p中所有的aaQ即昄c1bb1c2bb2
echo %p:aa=% #变量p中的所有aa字符串置换ؓI,xC?bb12bb2
echo %p:*bb=c% #W一个bb及其之前的所有字W被替换为cQ即昄c1aa2bb2
set p=%p:*bb=c% #讄变量pQ赋gؓ %p:*bb=c% Q即c1aa2bb2
set /a p=39 #讄p为数值型变量Qgؓ39
set /a p=39/10 #支持q算W,有小数时用去法Q?9/10=3.9Q去־3Qp=3
set /a p=p/10 #?/a 参数Ӟ?= 后面的变量可以不?直接引用
set /a p=”1&0″ #”?#8221;q算Q要加引受其它支持的q算W参见set/?
set p= #取消p变量
set /p p=误?br />
屏幕上显C?#8221;误?#8221;Qƈ会将输入的字W串赋值给变量p
注意q条可以用来取代 choice 命o
注意变量?if ?for 的复合语句里是一ơ性全部替换的Q如
@echo off
set p=aaa
if %p%==aaa (
echo %p%
set p=bbb
echo %p%
)
l果显C?br />
aaa
aaa
因ؓ在读?if 语句时已l将所?%p% 替换为aaa
q里?替换"Q在 /? 帮助里就是指"扩充"?环境变量扩充"
可以启用”延缓环境变量扩充”Q用 ! 来引用变量,?!变量?
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set p=aaa
if %p%==aaa (
echo %p%
set p=bbb
echo !p!
)
ENDLOCAL
l果显C?br />
aaa
bbb
q有几个动态变量,q行 set 看不?br />
%CD% #代表当前目录的字W串
%DATE% #当前日期
%TIME% #当前旉
%RANDOM% #随机整数Q介?~32767
%ERRORLEVEL% #当前 ERRORLEVEL ?br />
%CMDEXTVERSION% #当前命o处理器扩展名版本?br />
%CMDCMDLINE% #调用命o处理器的原始命o?br />
可以用echo命o查看每个变量|?echo %time%
注意 %time% _到毫U,在批处理需要g时处理时可以用到
32 start
批处理中调用外部E序的命令,否则{外部程序完成后才l执行剩下的指o
33 call
批处理中调用另外一个批处理的命令,否则剩下的批处理指o不会被执行
有时有的应用E序用start调用出错的,也可以call调用
34 choice (外部命o)
选择命o
让用戯入一个字W,从而选择q行不同的命令,q回码errorlevel?234……
win98里是choice.com
win2000pro里没有,可以从win98里拷q来
win2003里是choice.exe
choice /N /C y /T 5 /D y>nul
延时5U?/font>
35 assoc ?ftype
文g兌
assoc 讄'文g扩展?兌Q关联到'文gcd'
ftype 讄'文gcd'兌Q关联到'执行E序和参?
当你双击一?txt文gӞwindowsq不是根?txt直接判断?notepad.exe 打开
而是先判?txt属于 txtfile '文gcd'
再调?txtfile 兌的命令行 txtfile=%SystemRoot%system32NOTEPAD.EXE %1
可以?文g多w项"→"文gcd"里修改这2U关?br />
assoc #昄所?文g扩展?兌
assoc .txt #昄.txt代表?文gcd'Q结果显C?.txt=txtfile
assoc .doc #昄.doc代表?文gcd'Q结果显C?.doc=Word.Document.8
assoc .exe #昄.exe代表?文gcd'Q结果显C?.exe=exefile
ftype #昄所?文gcd'兌
ftype exefile #昄exefilecd兌的命令行Q结果显C?exefile="%1" %*
assoc .txt=Word.Document.8
讄.txt为wordcd的文档,可以看到.txt文g的图标都变了
assoc .txt=txtfile
恢复.txt的正关?br />
ftype exefile="%1" %*
恢复 exefile 的正关?br />
如果该关联已l被破坏Q可以运?command.com Q再输入q条命o
36 pushd ?popd
切换当前目录
@echo off
c: & cd & md mp3 #?C: 建立 mp3 文g?br />
md d:mp4 #?D: 建立 mp4 文g?br />
cd /d d:mp4 #更改当前目录?d:mp4
pushd c:mp3 #保存当前目录Qƈ切换当前目录?c:mp3
popd #恢复当前目录为刚才保存的 d:mp4
37 for
循环命o
q个比较复杂Q请对照 for/? 来看
for %%i in (c: d: e: f:) do echo %%i
依次调用括号里的每个字W串Q执?do 后面的命?br />
注意%%iQ在批处理中 for 语句调用参数??
默认的字W串分隔W是"I格?Q?Tab?Q?回R?
for %%i in (*.txt) do find "abc" %%i
对当前目录里所有的txt文g执行 find 命o
for /r . %%i in (*.txt) do find "abc" %%i
在当前目录和子目录里所有的.txt文g中搜索包?abc 字符串的?br />
for /r . %%i in (.) do echo %%~pni
昄当前目录名和所有子目录名,包括路径Q不包括盘符
for /r d:mp3 %%i in (*.mp3) do echo %%i>>d:mp3.txt
?d:mp3 及其子目录里的mp3文g的文件名都存?d:mp3.txt 里去
for /l %%i in (2,1,8) do echo %%i
生成2345678的一串数字,2是数字序列的开_8是结,1表示每次?
for /f %%i in ('set') do echo %%i
?set 命o的输出结果@环调用,每行一?br />
for /f "eol=P" %%i in ('set') do echo %%i
?set 命o的输出结果,忽略?P 开头的那几?br />
for /f %%i in (d:mp3.txt) do echo %%i
昄 d:mp3.txt 里的每个文g名,每行一个,不支持带I格的名U?br />
for /f "delims=" %%i in (d:mp3.txt) do echo %%i
昄 d:mp3.txt 里的每个文g名,每行一个,支持带空格的名称
for /f "skip=5 tokens=4" %%a in ('dir') do echo %%a
?dir 命o的结果,跌前面5行,余下的每行取W??br />
每列之间的分隔符为默认的"I格"
可以注意?dir 命o输出的前5行是没有文g名的
for /f "tokens=1,2,3 delims=- " %%a in ('date /t') do (
echo %%a
echo %%b
echo %%c
)
?date /t 的输出结果,每行????br />
W一列对应指定的 %%a Q后面的 %%b ?%%c 是派生出来的Q对应其它列
分隔W指定ؓ - ?I格"Q注?delims=- 后面有个"I格"
其中 tokens=1,2,3 若用 tokens=1-3 替换Q效果是一L
for /f "tokens=2* delims=- " %%a in ('date /t') do echo %%b
取第2列给 %%a Q其后的列都l?%%b
38 subst (外部命o)
映射盘?/font>
subst z: serverd #q样输入z:可以访问serverd?br />
subst z: /d #取消该映?br />
subst #昄目前所有的映时
39 xcopy (外部命o)
文g拯
xcopy d:mp3 e:mp3 /s/e/i/y
复制 d:mp3 文g夏V所有子文g夹和文g?e: Q覆盖已有文?br />
?/i 表示如果 e: 没有 mp3 文g夹就自动新徏一个,否则会有询问
转自http://blog.csdn.net/mydriverc/archive/2008/01/16/2047152.aspx