17 12
发新话题
打印

怀旧:DOS命令集

本帖已经被作者加入个人空间

怀旧:DOS命令集

FTP命令使用大全

FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX操 作系统下使用FTP,都会遇到大量的FTP内部命令。 熟悉并灵活应用FTP的内部 命令,可以大大方便使用者,并收到事半功倍之效。c FTP的命令行格式为: ftp -v -d -i -n -g [主机名] ,其中
-v 显示远程服务器的所有响应信息;
-n 限制ftp的自动登录,即不使用;
.n etrc文件;
-d 使用调试方式;
-g 取消全局文件名。

ftp使用的内部命令如下(中括号表示可选项):

1.![cmd[args]]:在本地机中执行交互shell,exit回到ftp环境,如: !ls*.zip.
2.$ macro-ame[args]:执行宏定义macro-name.
3.account[password]:提供登录远程系统成功后访问系统资源所需的补 充口令。
4.append local-file[remote-file]:将本地文件追加到远程系统主机, 若未指定远程系统文件名,则使用本地文件名。
5.ascii:使用ascii类型传输方式。
6.bell:每个命令执行完毕后计算机响铃一次。
7.bin:使用二进制文件传输方式。
8.bye:退出ftp会话过程。
9.case:在使用mget时,将远程主机文件名中的大写转为小写字母。
10.cd remote-dir:进入远程主机目录。
11.cdup:进入远程主机目录的父目录。
12.chmod mode file-name:将远程主机文件file-name的存取方式设置为 mode,如:chmod 777
a.out 。
13.close:中断与远程服务器的ftp会话(与open对应)。
14.cr:使用asscii方式传输文件时,将回车换行转换为回行。
15.delete remote-file:删除远程主机文件。
16.debug[debug-value]:设置调试方式, 显示发送至远程主机的每条命 令,如: deb up 3,若设为0,表示取消debug。
17.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本 地文件local-file。
18.disconnection:同close。
19.form format:将文件传输方式设置为format,缺省为file方式。
20.get remote-file[local-file]: 将远程主机的文件remote-file传至 本地硬盘的local-file。
21.glob:设置mdelete,mget,mput的文件名扩展,缺省时不扩展文件名, 同命令行的-g参数。
22.hash:每传输1024字节,显示一个hash符号(#)。
23.help[cmd]:显示ftp内部命令cmd的帮助信息,如:help get。
24.idle[seconds]:将远程服务器的休眠计时器设为[seconds]秒。
25.image:设置二进制传输方式(同binary)。
26.lcd[dir]:将本地工作目录切换至dir。
27.ls[remote-dir][local-file]:显示远程目录remote-dir, 并存入本 地文件local-file。
28.macdef macro-name:定义一个宏,遇到macdef下的空行时,宏定义结 束。
29.mdelete[remote-file]:删除远程主机文件。
30.mdir remote-files local-file:与dir类似,但可指定多个远程文件, 如: mdir *.o.*.zipoutfile 。
31.mget remote-files:传输多个远程文件。
32.mkdir dir-name:在远程主机中建一目录。
33.mls remote-file local-file:同nlist,但可指定多个文件名。
34.mode[modename]:将文件传输方式设置为modename, 缺省为stream方 式。
35.modtime file-name:显示远程主机文件的最后修改时间。
36.mput local-file:将多个文件传输至远程主机。
37.newer file-name: 如果远程机中file-name的修改时间比本地硬盘同 名文件的时间更近,则重传该文件。
38.nlist[remote-dir][local-file]:显示远程主机目录的文件清单,并 存入本地硬盘的local-file。
39.nmap[inpattern outpattern]:设置文件名映射机制, 使得文件传输 时,文件中的某些字符相互转换,如:nmap $1.$2.$3[$1,$2].[$2,$3],则 传输文件a1.a2.a3时,文件名变为a1,a2。该命令特别适用于远程主机为非UNIX 机的情况。
40.ntrans[inchars[outchars]]:设置文件名字符的翻译机制,如ntrans 1R,则文件名LLL将变为RRR。
41.open host[port]:建立指定ftp服务器连接,可指定连接端口。
42.passive:进入被动传输方式。
43.prompt:设置多个文件传输时的交互提示。
44.proxy ftp-cmd:在次要控制连接中,执行一条ftp命令, 该命令允许 连接两个ftp服务器,以在两个服务器间传输文件。第一条ftp命令必须为open, 以首先建立两个服务器间的连接。
45.put local-file[remote-file]:将本地文件local-file传送至远程主 机。
46.pwd:显示远程主机的当前工作目录。
47.quit:同bye,退出ftp会话。
48.quote arg1,arg2...:将参数逐字发至远程ftp服务器,如: quote syst.
49.recv remote-file[local-file]:同get。
50.reget remote-file[local-file]:类似于get,但若local-file存在, 则从上次传输中断处续传。
51.rhelp[cmd-name]:请求获得远程主机的帮助。
52.rstatus[file-name]:若未指定文件名,则显示远程主机的状态,否 则显示文件状态。
53.rename文章出处:bbs.nju.edu.cn[to]:更改远程主机文件名。
54.reset:清除回答队列。
55.restart marker:从指定的标志marker处,重新开始get或put,如: restart 130。
56.rmdir dir-name:删除远程主机目录。
57.runique:设置文件名唯一性存储,若文件存在,则在原文件后加后缀 .1,.2等。
58.send local-file[remote-file]:同put。
59.sendport:设置PORT命令的使用。
60.site arg1,arg2...:将参数作为SITE命令逐字发送至远程ftp主机。
61.size file-name:显示远程主机文件大小,如:site idle 7200。
62.status:显示当前ftp状态。
63.struct[struct-name]:将文件传输结构设置为struct-name, 缺省时 使用stream结构。
64.sunique:将远程主机文件名存储设置为唯一(与runique对应)。
65.system:显示远程主机的操作系统类型。
66.tenex:将文件传输类型设置为TENEX机的所需的类型。
67.tick:设置传输时的字节计数器。
68.trace:设置包跟踪。
69.type[type-name]:设置文件传输类型为type-name,缺省为ascii,如: type binary,设置二进制传输方式。
70.umask[newmask]:将远程服务器的缺省umask设置为newmask,如: umask 3。
71.user user-name[password][account]:向远程主机表明自己的身份, 需要口令时,必须输入口令,如:user anonymous my@email。
72.verbose:同命令行的-v参数,即设置详尽报告方式,ftp服务器的所有 响应都将显示给用户,缺省为on.
73.?[cmd]:同help.

TOP

COPY命令的用法

1.这个是操作系统提供的帮助,都说这是个简单的命令

E:>copy /?
将一份或多份文件复制到另一个位置。

COPY [/V] [/N] [/Y | /-Y] [/Z] [/A | /B ] source [/A | /B]
[+ source [/A | /B] [+ ...]] [destination [/A | /B]]

source 指定要复制的文件。
/A 表示一个 ASCII 文本文件。
/B 表示一个二进位文件。
destination 为新文件指定目录和/或文件名称。
/V 验证新文件写得正确。
/N 当复制一份带有非 8dot3 名称的文件,
如果可能的话,使用短文件名。
/Y 取消提示以确认您希望改写
一份现存目录文件。
/-Y 引起提示确认您想改写一份
现存目标文件。
/Z 用可重新启动模式复制已联网的文件。

命令选项 /Y 可以在 COPYCMD 环境变量中预先设定。
这可能会被命令行上的 /-Y 替代。除非 COPY
命令是在一个批文件脚本中执行的,默认应为
在改写时提示。

要附加文件,请为目标指定一个文件,为源指定
数个文件(用通配符或 file1+file2+file3 格式)。

2. COPY /B 选项

一旦文件保存以后,文件的日期和时间就写到文件中,可以用dir /t来查看这个日期和时间。
我们可以通过copy命令来更改这个日期和时间,命令格式如下:
C:>COPY /B filename+,,
如果要将当前的时间和日期指派给文件而不修改文件,你就可以使用这个命令。

顺便说一下,如果你不想将时间日期更改为今天的日期时间,你可以用DATE和TIME命令将日期和时间修改成必要的时刻。
然后用"C:>COPY /B+,,"修改,然后别忘了把时间改回来。

3.合并选项

  一般情况下,它主要用于合并相同类型的文件,比如将两个文本文件合并为一个文本文件、将两个独立的MPEG视频文件合并为一个连续的视频文件等。那么,如果用它合并两个不同类型的文件,结果会怎样呢?

 比如你有一段私人信息要隐藏起来,请先录入并保存为文本文件,假设保存为001.txt。另找一个非文本文件,最好为图片文件或可执行文件。以图片文件为例,假设它的文件名为002.jpg。如果把它们都放到D盘根目录下,那么在Windows的MS-DOS方式

下执行以下命令:

  d:Copy 002.jpg/b + 001.txt/a 003.jpg

  其中参数/b指定以二进制格式复制、合并文件;参数/a指定以ASCII格式复制、合并文件。
这里要注意文件的顺序,二进制格式的文件应放在加号前,文本格式的文件放在加号后。

  执行该命令后,生成了一个新文件003.jpg。回到Windows中用图片浏览软件打开这个它,你会发现它与002.jpg的显示结果一模一样。然后用记事本打开003.jpg,你看到什么了?一堆乱码吗?没错!但如果你按下Ctrl+End键将光标移至文件的尾部,你再看看!是不是001.txt文件中的内容?

  按照这种方法,你可以轻松地把一些重要信息隐藏起来,比如用户ID、密码、重要私人信息等。

  有一点要提醒大家:就是这个文本文件的前面最好空上3行以上,这样它头部的内容就不会丢失。这主要是由于WINDOWS的文件保留块处理的问题,类似的UNIX命令是DD.

记不记得有的光盘打开看都是图片,可是用指定的浏览器就可以看到其他的东西,其实没有什么神秘的,我们也可以试试看。

4.COPY CON
COPY CON,拷贝一个DOS设备。
COPY CON filename
这个命令将保存接下来的输入到文件中。
DOS有很多设备,CON指屏幕和键盘.

同样,你可以用COPY命令把文件输出到屏幕上
COPY filename CON
这个命令类似于UNIX上VI的部分功能

5.COPY时在文件名上附加时间

有人问过COPY时怎么附加时间到文件上,可以这样实现
C:>COPY filename filename%date:~4,10%
类似的你可以试试
C:>MD %date%
C:>MD %date:~4,10%
C:>MD %date:~0,3%
看看你需要什么。

这里面用到了DATE命令和一点其他的知识,如果有人感兴趣,改天再仔细说说。

TOP

1. ping:这是TCP/IP协议中最有用的命令之一

它给另一个系统发送一系列的数据包,该系统本身又发回一个响应,这条实用程序对查找远程主机很有用,它返回的结果表示是否能到达主机,宿主机发送一个返回数据包需要多长时间。

Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
[-r count] [-s count] [[-j host-list] | [-k host-list]]
[-w timeout] destination-list

Options:
-t Ping the specifed host until interrupted.(除非人为中止,否则一直ping下去)
-a Resolve addresses to hostnames.(把IP转为主机名)
-n count Number of echo requests to send.(响应请求的数量)
-l size Send buffer size.(封包的大小)
-f Set Don't Fragment flag in packet.(信息包中无碎片)
-i TTL Time To Live.(时间)
-v TOS Type Of Service.(服务类型)
-r count Record route for count hops.
-s count Timestamp for count hops.
-j host-list Loose source route along host-list.
-k host-list Strict source route along host-list.
-w timeout Timeout in milliseconds to wait for each reply.(timeout的时间)

比如大家可能都知道的一个命令 # ping -f -s 65000 ***.***.***.***或者前阶段大家所谓ping死霉国佬时所用的命令(当然这样只会造成我方自己的网络阻塞)。
其实这个命令主要是用来看对方应答的速度,如果怎么ping 得到的结果都是request time out。那恐怕你根本就不用你去找这台主机了,它不在你的射程之内。
2. winipcfg:

这是用来看自己IP位址的小工具,win98自带,NT里则网络监视器里就能看到IP了,还有个小实用程序叫……好象是叫IPCONFIG吧,没怎么用,都快忘了……这种东东网上其实相当之多,但既然“自带”,又何须外求,何况网上下载的黑客的东东里有没有特洛伊犹未可知,再说了,如果你不是在自己的“爱姬”上运行,岂不是就没法干活?——哈,不好意思,跑题了,但——接着跑两句:可以把一些常用的、经典的工具上传到网上,当作一个备份,什么时候在网吧、某家公司要干活的话,直接下载就是一个完整无缺的工具包了。
这个东东相当简单,直接在DOS下键入命令就是了,没有什么参数。
3. tracert:是验证通往远程主机路径的实用程序

用法: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name

参数:
-d Do not resolve addresses to hostnames.(不将IP转为主机名)
-h maximum_hops Maximum number of hops to search for target.(最大跟踪数量)
-j host-list Loose source route along host-list.
-w timeout Wait timeout milliseconds for each reply.(time out 的时间)

最简单的用法就是 tracert hostname 其中hostname是计算机名或你想跟踪其路径的计算机的IP地址。
4.netstat 这是一个观察网络连接状态的实用工具。

它能检验IP的当前连接状态,在断定你的基本级通信正在进行后,就要验证系统上的服务。这个服务包括检查正在收听输入的通信量和/或验证你正在创建一个与远程站点的会话,它可以很轻松地做到这一点。网上也可以看到很多如X-netstat之类的工具,是WIN界面的,更加直观而已,并没有多什么功能,这个命令的具体用法如下:

Displays protocol statistics and current TCP/IP network connections.(显示协议与当前网络连接)

NETSTAT [-a] [-e] [-n] [-s] [-p proto] [-r] [interval]

-a Displays all connections and listening ports.(显示所有连接和监听端口)
-e Displays Ethernet statistics. This may be combined with the -s
option.(显示以太连接,可以与-s连用)
-n Displays addresses and port numbers in numerical form.(显示地址和端口)
-p proto Shows connections for the protocol specified by proto; proto
may be TCP or UDP. If used with the -s option to display
per-protocol statistics, proto may be TCP, UDP, or IP.
-r Displays the routing table.
-s Displays per-protocol statistics. By default, statistics are
shown for TCP, UDP and IP; the -p option may be used to specify
a subset of the default.
interval Redisplays selected statistics, pausing interval seconds
between each display. Press CTRL+C to stop redisplaying
statistics. If omitted, netstat will print the current
configuration information once.(interval是设定一个刷新时间,在间隔时间内暂停,按CTRL+C停止……)

这是我在本机未连接网络时运行的,第一列为协议,第二列为本地地址,第三列是与你进行连接的主机或用户的IP位址(IP后冒号之后的数字是端口号),最后一列是状态。这个命令以-n和-a的参数较常使用。

注:net和at的详解eygle在以前的精华帖里以说明在此不再鳌述。

TOP

Nslookup 命令使用浅析

Nslookup 是一个监测网络中DNS服务器是否能正确实现域名解析的命令行工具。它在 Windows NT/2000/XP 中均可使用,但在Windows 98中却没有集成这一个工具。
  Nslookup 必须要安装了TCP/IP 协议的网络环境之后才能使用。下面笔者就举一个实例来介绍Nslookup的具体操作过程。
  现在网络中已经架设好了一台 DNS 服务器,主机名称为 linlin ,它可以把域名 www.company.com 解析为 192.168.0.1 的IP地址,这是我们平时用得比较多的正向解析功能。
检测步骤如下:
在 Windows 2000 中单击“开始”->“程序”->“附件”->“命令提示符”,在 C:> 的后面键入 Nslookup www.company.com ,“回车”之后即可看到如下结果:
  Server: linlin
  Address: 192.168.0.5
  Name: www.company.com
  Address: 192.168.0.1
  以上结果显示,正在工作的 DNS 服务器的主机名为 linlin ,它的 IP 地址是192.168.0.5 ,而域名www.company.com 所对应的 IP 地址为 192.168.0.1 。那么,在检测到 DNS 服务器 linlin 已经能顺利实现正向解析的情况下,它的反向解析是否正常呢? 也就是说,能否把IP地址192.168.0.1反向解析为域名www.company.com ?我们在命令提示符C:>的后面键入 Nslookup 192.168.0.1 ,得到结果如下:
  Server: linlin
  Address: 192.168.0.5
  Name: www.company.com
  Address: 192.168.0.1
这说明,DNS 服务器 linlin 的反向解析功能也正常。

然而,有的时候,我们键入Nslookup www.company.com ,却出现如下结果:
Server: linlin
Address: 192.168.0.5
*** linlin can't find www.company.com: Non-existent domain

这种情况说明网络中DNS服务器 linlin 在工作,却不能实现域名 www.company.com的正确解析。此时,要...渲们榭觯�词欠�/a> www.company.com 这一条域名对应的 IP 地址记录已经添加到了DNS的数据库中。

还有的时候,我们键入Nslookup www.company.com ,会出现如下结果:
*** Can't find server name for domain: No response from server
*** Can't find www.company.com : Non-existent domain
这时,说明测试主机在目前的网络中,根本没有找到可以使用的 DNS 服务器。此时,我们要对整个网络的连通性作全面的检测,并检查DNS服务器是否处于正常工作状态,采用逐步排错的方法,找出 DNS 服务不能启动的根源。

TOP

除了可以在命令行下直接进行基本的DNS查询之外,直接启动nslookup将进入一个交互模式,在这里能查询各种类型的DNS数据。
  DNS的名字解析数据可以有各种不同的类型,有设置这个zone的参数的SOA类型数据,有设置名字对应的IP地址的A类型数据,有设置邮件交换的MX类型数据。这些不同类型的数据均可以通过nslookup的交互模式来查询,在查询过程中可以使用 set type命令设置相应的查询类型。

如:
C:>nslookup
Default Server: ns.hazzptt.net.cn
Address: 202.102.224.68

> set type=mx
> yahoo.com
Server: ns3.bta.net.cn
Address: 202.106.196.115

Non-authoritative answer:
yahoo.com       MX preference = 5, mail exchanger = mx4.mail.yahoo.com
yahoo.com       MX preference = 10, mail exchanger = mta-v18.mail.yahoo.com
yahoo.com       MX preference = 1, mail exchanger = mx1.mail.yahoo.com
yahoo.com       MX preference = 1, mail exchanger = mx2.mail.yahoo.com
yahoo.com       MX preference = 1, mail exchanger = mx3.mail.yahoo.com

yahoo.com         nameserver = ns1.yahoo.com
yahoo.com         nameserver = ns3.europe.yahoo.com
yahoo.com         nameserver = ns5.dcx.yahoo.com
mx4.mail.yahoo.com    internet address = 216.136.129.11
mx4.mail.yahoo.com    internet address = 216.136.129.13
mx4.mail.yahoo.com    internet address = 216.136.129.12
mx4.mail.yahoo.com    internet address = 216.136.129.4
mx4.mail.yahoo.com    internet address = 216.136.129.17
mx4.mail.yahoo.com    internet address = 216.136.129.18
mx4.mail.yahoo.com    internet address = 216.136.129.15
mx4.mail.yahoo.com    internet address = 216.136.129.14
mx4.mail.yahoo.com    internet address = 216.136.129.16
mta-v18.mail.yahoo.com  internet address = 216.136.129.11
mx1.mail.yahoo.com    internet address = 64.157.4.87
mx1.mail.yahoo.com    internet address = 64.157.4.89
mx1.mail.yahoo.com    internet address = 64.157.4.86
mx2.mail.yahoo.com    internet address = 64.157.4.83
mx2.mail.yahoo.com    internet address = 64.157.4.84
mx2.mail.yahoo.com    internet address = 64.157.4.85
mx3.mail.yahoo.com    internet address = 64.157.4.81
mx3.mail.yahoo.com    internet address = 64.157.4.82
ns1.yahoo.com       internet address = 204.71.200.33
>

这个例子使用nslookup来查询yahoo.com这个zone的邮件服务器,需要将类型设置为mx来执行查询。

如果所要查的某域名的MX记录不存在,则出现与以下类似的提示:
C:>nslookup
Default Server: ns3.bta.net.cn
Address: 202.106.196.115

> set type=mx
> 5555555.com.cn
Server: ns3.bta.net.cn
Address: 202.106.196.115

DNS request timed out.
timeout was 2 seconds.
*** ns3.bta.net.cn can't find 5555555.com.cn: Non-existent domain
>

TOP

NBTSTAT和NETSTAT这两个命令有什么区别?

--------------------------------------------------------------------------------

icech搜集 2002-8-12 20:44:58 pchome.net

netstat和nbtstat可以说都是Windows下的网络检测工具,他们的输入形式很相似而且都是需要在安装了TCP/IP协议以后才可以使用的,但两者的功能却不同。首先我们来看看netstat这个命令:
C:\>netstat -h

Displays protocol statistics and current TCP/IP network connections.
显示协议统计和当前的 TCP/IP 网络连接。

NETSTAT [-a] [-e] [-n] [-s] [-p proto] [-r] [interval]

-a Displays all connections and listening ports.
显示所有连接和侦听端口。
此命令可以显示出你的计算机当前所开放的所有端口,其中包括TCP端口和UDP端口。有经验的管理员会经常的使用它,以此来查看计算机的系统服务是否正常,是否被“黑客”留下后门,木马等。比如说我就有一个习惯,在刚刚装了系统配置好服务器以后我就会运行一下netstat -a看看系统开放了什么端口,并记录下来,以便以后作为参考使用,当发现有不明的端口时就可以及时的做出对策。由于这个参数同时还会显示出当前计算机有什么人的IP正连接着你的服务器,所以也是一种实时入侵检测工具,如发现有个IP连接着不正常的端口,你也可以及时做出有效对策。示例:
C:\>netstat -a

Active Connections

Proto Local Address Foreign Address State
TCP iceblood:ftp iceblood.yofor.com:0 LISTENING
TCP iceblood:telnet iceblood.yofor.com:0 LISTENING
TCP iceblood:smtp iceblood.yofor.com:0 LISTENING
TCP iceblood:http iceblood.yofor.com:0 LISTENING
TCP iceblood:https iceblood.yofor.com:0 LISTENING
………………
TCP iceblood:1171 iceblood.yofor.com:3306 ESTABLISHED
TCP iceblood:ms-sql-s iceblood.yofor.com:0 LISTENING
TCP iceblood:3306 iceblood.yofor.com:1171 ESTABLISHED
………………
UDP iceblood:ms-sql-m *:*
UDP iceblood:4000 *:*
UDP iceblood:4001 *:*
UDP iceblood:4002 *:*
从上面的情况就可以知道我的计算机现在开放的TCP端口有ftp(21),telnet(23),smtp(25),http(80),https(443),1171连接着自己的mysql(3306),ms-sql-s(1433),UDP端口有ms-sql-m(1433),4000-4002都是我的OICQ。:P

-e Displays Ethernet statistics. This may be combined with the -s option.
显示以太网统计。该参数可以与 -s 选项结合使用。
这个参数正如所说的,将在下面再跟大家说。

-n Displays addresses and port numbers in numerical form.
以数字格式显示地址和端口号(而不是尝试查找名称)。
大家如果只输入netstat的话就会看见如下类似的结果:
C:\>netstat

Active Connections

Proto Local Address Foreign Address State
TCP iceblood:1171 iceblood.yofor.com:3306 ESTABLISHED
TCP iceblood:3306 iceblood.yofor.com:1171 ESTABLISHED
TCP iceblood:1219 202.109.72.40:6667 ESTABLISHED
TCP iceblood:3566 SERVER-2:microsoft-ds ESTABLISHED
你会发现这些和netstat -a有相同的地方,只不过netstat可以很清楚的列举出来当前和你连接的所有计算机,在Local Address和Foreign Address里你也发现大多数给出的只是计算机NetBios名,却还是不知道当前和你连接的IP,但如果你加上-n参数就不同了,示例如下:
C:\>netstat -n

Active Connections

Proto Local Address Foreign Address State
TCP 127.0.0.1:1171 127.0.0.1:3306 ESTABLISHED
TCP 127.0.0.1:3306 127.0.0.1:1171 ESTABLISHED
TCP 192.168.1.21:1219 202.109.72.40:6667 ESTABLISHED
TCP 192.168.1.21:3566 192.168.1.3:445 ESTABLISHED
TCP 192.168.1.21:3577 202.107.208.187:110 TIME_WAIT
TCP 192.168.1.21:3578 192.168.1.24:445 ESTABLISHED
看!是不是很明了了?对方的IP全部都出来了。其实-n参数其实也就是告诉netstat不解析对方计算机的NetBios名。

-p proto Shows connections for the protocol specified by proto; proto may be TCP or UDP. If used with the -s option to display
per-protocol statistics, proto may be TCP, UDP, or IP.
显示由 protocol 指定的协议的连接;protocol 可以是 tcp 或 udp。如果与 -s 选项一同使用显示每个协议的统计,protocol 可以是 tcp udp、icmp 或 ip。
这个参数你可以指定查看什么协议的连接状态,比如我想查看当前计算机正在连接的所有TCP端口,示例如下:
C:\>netstat -p tcp

Active Connections

Proto Local Address Foreign Address State
TCP iceblood:1171 iceblood.yofor.com:3306 ESTABLISHED
TCP iceblood:3306 iceblood.yofor.com:1171 ESTABLISHED
TCP iceblood:1219 202.109.72.40:6667 ESTABLISHED
…………

-r Displays the routing table.
显示路由表的内容。
这个没有特别的,可以输入netstat -r以后自己研究。

-s Displays per-protocol statistics. By default, statistics are shown for TCP, UDP and IP; the -p option may be used to specify a subset of the default.
显示每个协议的统计。默认情况下,显示 TCP、UDP、ICMP 和 IP 的统计。-p 选项可以用来指定默认的子集。
这个参数让我们来配合-e来使用。
C:\>netstat -s -e
Interface Statistics

Received Sent

Bytes 505385542 41745793
Unicast packets 150106 150547
Non-unicast packets 313008 807
Discards 0 0
Errors 0 0
Unknown protocols 327149

IP Statistics

Packets Received = 379906
Received Header Errors = 0
Received Address Errors = 215043
Datagrams Forwarded = 0
Unknown Protocols Received = 0
Received Packets Discarded = 0
Received Packets Delivered = 166002
Output Requests = 151620
Routing Discards = 0
Discarded Output Packets = 0
Output Packet No Route = 0
Reassembly Required = 0
Reassembly Successful = 0
Reassembly Failures = 0
Datagrams Successfully Fragmented = 0
Datagrams Failing Fragmentation = 0
Fragments Created = 0

TCP Statistics

Active Opens = 1556
Passive Opens = 1
Failed Connection Attempts = 4
Reset Connections = 143
Current Connections = 4
Segments Received = 141243
Segments Sent = 140462
Segments Retransmitted = 477

UDP Statistics

Datagrams Received = 15125
No Ports = 9634
Receive Errors = 0
Datagrams Sent = 10628
看!嘿嘿!你的网络基本状态都在这里面,比如你接受了多少数据包,多少字节,有多少TCP端口打开,有多少UDP端口打开,太丰富了……这些就留给各位高手自己慢慢琢磨去了。

interval Redisplays selected statistics, pausing interval seconds between each display. Press CTRL+C to stop redisplaying statistics. If omitted, netstat will print the current configuration information once.
重新显示所选的统计,在每次显示之间暂停 interval 秒。按 CTRL+B 停止重新显示统计。如果省略该参数,netstat 将打印一次当前的配置信息。
这个就是自己定义检查网络状况的时间的参数,比如我想每过10秒检查一次我的计算机当前TCP连接的状态你就输入netstat 10 -p tcp这样netstat就会每过10秒就把你所有的TCP端口检查一次。

--------------------

C:\>nbtstat
Displays protocol statistics and current TCP/IP connections using NBT (NetBIOS over TCP/IP).
该诊断命令使用 NBT(TCP/IP 上的 NetBIOS)显示协议统计和当前 TCP/IP 连接。

NBTSTAT [ [-a RemoteName] [-A IP address] [-c] [-n] [-r] [-R] [-RR] [-s] [-S] [interval] ]

-a (adapter status) Lists the remote machine''s name table given its name
使用远程计算机的名称列出其名称表。
此参数可以通过远程计算机的NetBios名来查看他的当前状态。示例
C:\>nbtstat -a iceblood

本地连接:
Node IpAddress: [192.168.1.2] Scope Id: []

NetBIOS Remote Machine Name Table

Name Type Status
---------------------------------------------
ICEBLOOD <00> UNIQUE Registered
WORK <00> GROUP Registered
ICEBLOOD <20> UNIQUE Registered
WORK <1E> GROUP Registered
ICEBLOOD <03> UNIQUE Registered
ICEBLOOD$ <03> UNIQUE Registered
LIU_ICEBLOOD <03> UNIQUE Registered

MAC Address = 00-D0-09-52-91-DC
看见了?从上面就可以知道我的计算机当前计算机的NetBios名为iceblood属于work组或域,当前有liu_iceblood登陆的该计算机,嘿嘿~全都出来了。当然你也可以把计算机名换为IP也就是netstat -a 192.168.1.21,效果和上面的一样。这就有点像UNIX/Linux的finger了,如果你经常去netstat -a一台NT主机,你也可以收集到一些对方计算机中的用户列表了。

-A (Adapter status) Lists the remote machine''s name table given its IP address.
使用远程计算机的 IP 地址并列出名称表。
这个和-a不同的是就是这个只能使用IP,其实-a就包括了-A的功能了,我也不再介绍。

-c (cache) Lists NBT''s cache of remote [machine] names and their IP addresses
给定每个名称的 IP 地址并列出 NetBIOS 名称缓存的内容。
这个参数表示的是在你的NetBIOS里缓存的你连接过的计算机的IP。示例:
C:\>nbtstat -c

本地连接:
Node IpAddress: [192.168.1.21] Scope Id: []

NetBIOS Remote Cache Name Table

Name Type Host Address Life [sec]
------------------------------------------------------------
WORK <20> UNIQUE 192.168.1.20 597
从上面就可以知道你刚刚和IP为192.168.1.20的计算机的NetBIOS连接过。而这个命令也提供给了“黑客”在入侵了对方的主机以后进而入侵到内部网的一个有利的线索。因为NetBIOS的Cache里储存的IP是对方已经信任你的计算机的IP。聪明的“黑客”当然也会从这个方便的地方入手了。

-n Lists local NetBIOS names.
列出本地 NetBIOS 名称。
此参数和netstat -a类似,只是这个是检查本地的,如果把netstat -a后面的IP换为自己的就和netstat -n的效果是一样的了。

-r Lists names resolved by broadcast and via WINS
列出 Windows 网络名称解析的名称解析统计。在配置使用 WINS 的 Windows 2000 计算机上,此选项返回要通过广播或 WINS 来解析和注册的名称数。
这个正如上面所说的,列出当前Windows 网络名称解析的名称解析统计。

-R Purges and reloads the remote cache name table
清除 NetBIOS 名称缓存中的所有名称后,重新装入 Lmhosts 文件。
这个参数就是清除netstat -c所能看见的Cache里的IP缓存的。

-S Lists sessions table with the destination IP addresses
显示客户端和服务器会话,只通过 IP 地址列出远程计算机。
此参数可以查看计算机当前正在会话的NetBIOS。示例:
C:\>nbtstat -S

本地连接:
Node IpAddress: [192.168.1.21] Scope Id: []

NetBIOS Connection Table

Local Name State In/Out Remote Host Input Output

----------------------------------------------------------------------------

ICEBLOOD <00> Connected Out 192.168.1.22 8MB 316KB
ICEBLOOD <03> Listening
ICEBLOOD$ <03> Listening
LIU_ICEBLOOD <03> Listening

从上面就可以知道我的计算机现在正在和192.168.1.22进行会话,看得出是在复制文件,而且是从对方往自己的计算机里复制。通过以上参数所看到的信息到了“黑客”的手中也是非常重要的线索了。

-s Lists sessions table converting destination IP
显示客户端和服务器会话。尝试将远程计算机 IP 地址转换成使用主机文件的名称。
此参数和-S差不多,只是这个会把对方的NetBIOS名给解析出来。

-RR (ReleaseRefresh) Sends Name Release packets to WINs and then, starts Refresh
释放在 WINS 服务器上注册的 NetBIOS 名称,然后刷新它们的注册。

interval Redisplays selected statistics, pausing interval seconds between each display. Press Ctrl+C to stop redisplaying statistics.
重新显示所选的统计,在每次显示之间暂停 interval 秒。按 CTRL+B 停止重新显示统计。如果省略该参数,netstat 将打印一次当前的配置信息。
此参数和netstat的一样,nbtstat的是配合-s和-S一起使用的。

TOP

DATE命令的用法粗解

DATE命令的用法

1.系统帮助
C:>date /?
显示或设置日期。

DATE [/T | date]

仅键入 DATE 而不加参数,可以显示当前日期设置,并且提示
您输入新的日期。按 ENTER 键即可保持原有日期。

如果命令扩展名被启用,DATE 命令会支持 /T 命令选项;该命令选项告诉
命令只输出当前日期,但不提示输出新日期。

2.DATA /T 参数说明

此参数输出当前日期,例如:

C:>DATE /T
2002-10-28 星期一

这个日期格式可能不同与环境变量中的日期格式,如

C:>echo %DATE%
星期一 2002-10-28

用for命令,可以组合出不同的表达,例如:

C:>for /f "tokens=1,2" %a in ('date/t') do set date=%a

C:>set date=2002-10-28
这条语句所做的的就是在date/t中取出不含星期的部分。

我们可以用更简单的命令得出相同的结果,如:

C:>echo %DATE%
星期一 2002-10-28

C:>echo %DATE:~4,10%
2002-10-28

如果想在批处理中以日期建立文件夹或者文件名都可以简单的做到了,如

C:>mkdir %DATE:~4,10%
C:>dir 2*
驱动器 C 中的卷是 本地磁盘
卷的序列号是 402A-3A7E

C: 的目录

2002-10-28 19:34 <DIR> 2002-10-28
0 个文件 0 字节
1 个目录 79,282,176 可用字节

C:>copy mylist mylist%DATE:~4,10%
已复制 1 个文件。

C:>dir my*
驱动器 C 中的卷是 本地磁盘
卷的序列号是 402A-3A7E

C: 的目录

2002-09-15 10:00 38 mylist
2002-09-15 10:00 38 mylist2002-10-28
3 个文件 446 字节
0 个目录 79,282,176 可用字节

这对于Oracle中的某些自动操作是很有用的。

可以看到,通过简单的DOS命令的组合,我们可以做到很多看似复杂的事情,只是我们的思维

并不总是能够到达那里。

3.关于%DATE:~4,10%的格式

这个命令的意思就是在DATE的输出中,取4-10中间的字符。
对于不同的机器,可能有不同的时间格式,这个可以在控制面板里设置。
可以通过ECHO命令察看当前设置,如:

C:>echo %DATE%
星期一 2002-10-28

当然,我们可以同样取到星期的值:

C:>echo %DATE:~0,3%
星期一

当然也可以从不同方向来:

C:>echo %DATE:~-10%
2002-10-28

C:>echo %DATE:~0,-10%
星期一

TOP

一.for命令格式
对一组文件中的每个文件运行指定的命令。
可以在批处理程序中或直接从命令提示符使用 for 命令。
要在批处理程序中使用 for 命令,请使用以下语法:

for %%variable in (set) docommand [command-parameters]

要在命令提示符下使用 for,请使用以下语法: (区别就是在于变量前的%)

for %variable in (set) do command [command-parameters]
参数
%%variable 或 %variable

代表可替换的参数。for 命令使用在 set 中指定的每个文本字符串替换 %%variable(或 %variable),直到此命令(在command-parameters 中指定)处理所有的文件为止。使用 %% variable 在批处理程序中执行 for 命令。使用 % variable

通过命令提示符执行 for 命令。变量名区分大小写。

(set)
指定要用指定的命令处理的一个或多个文件或文本字符串。需要括号。
command
指定要在指定的 set 所包含的每个文件上执行的命令。
command-parameters

指定要用于指定命令(如果指定的命令要使用任何参数或开关)的任何参数或开关。

二.for 命令的其他形式
如果启用了命令扩展,将支持如下 for 命令的其他格式:
只限于目录

for /d [%% | %]variable in (set) docommand [command-parameters]
如果 set 包含通配符(* 和 ?),则指定与目录名匹配,而不是文件名。

递归
for /r [[drive :]path] [%% | %]variable in (set) docommand [command-parameters]

进入根目录树[drive:]path,在树的每个目录中执行 for 语句。如果在 /r 后没有指定目录,则假定为当前目录。如果

set 只是一个句号 (.) 字符,则只列举目录树。

迭代
for /l [%% | %]variable in (start,step,end) do command [command-parameters]

集合是一系列按步长量划分的、从头到尾的数字。这样,(1,1,5) 将生成序列 1 2 3 4 5,而 (5,-1,1) 将生成序列 (5 4 3 2 1)。

文件解析
for /f ["options"] [%% | %]variable in (filenameset) do command [command-parameters]
for /f ["options"] [%% | %]variable in ("literal string") do command[command-parameters]
for /f ["options"] [%% | %]variable in (‘command‘) do command [command-parameters]

或者,如果出现 usebackq 选项:
for /f ["options"] [%% | %]variable in (filenameset) do command [command-parameters]
for /f ["options"] [%% | %]variable in (‘literal string‘) do command [command-parameters]
for /f ["options"] [%% | %]variable in (`command`) docommand [command-parameters]

三.for使用范例

显示目录中的文件
假定要使用 type 命令显示当前目录中扩展名为 .doc 或 .txt 的所有文件内容。为此,为了使用可替换变量 %f,请在命

令提示符后键入以下命令:

for %f in (*.doc *.txt) do type %f

在此范例中,当前目录中扩展名为 .doc 或 .txt 的每个文件都被替代为变量 %f ,直到每个文件的内容都显示为止。要在

批处理文件中使用该命令,只需使用 %%f 替换 %f 的事件。否则,windows 2000 将忽略变量并显示错误信息。

重定向输出到打印机

windows 2000 支持在指定命令中使用的命令开关、管道和重定向。例如,要将上例中的输出重定向到 prn(默认的打印机端口),可以键入下面的命令:
for %f in (*.doc *.txt) do type %f >; prn:

解析文件
要分析文件并忽略注释行,可以使用:
for /f "eol=; tokens=2,3* delims=," %i in (myfile.txt) do @echo %i %j %k
这将解析 myfile.txt 文件的每一行,忽略以分号开头的行,将第二和第三个令牌环传递到 for 正文中,令牌环通过逗号和/或空格分隔。注意:for 语句引用 %i 以获得第二个令牌,引用 %j 以获得第三个令牌,引用 %k 以获得第三个令牌之后其余的全部令牌。对于包含空格的文件名,必须在文件名两端加上双引号。为了以此方式使用双引号,还需要使用 usebackq 选项,否则双引号将被解释为定义了要解析的文字字符串。
%i 在 for 语句中明确声明,并且 %j 和 %k 使用 tokens= option 隐含声明。如果它不会导致尝试声明高于字母“z”或“z”的某个变量,使用 tokens= 行可以指定最多 26 个标记。
记住,for 变量名区分大小写、全局的,并且每次总体不超过 52 个是活动的。
解析字符串
也可以对相邻的字符串使用 for /f 分析逻辑,方法是使括号之间的 filenameset 为一个用单引号引起来的字符串。将它当作文件的单行输入并进行解析。
解析输出
最后,可以使用 for /f 命令来对命令的输出结果进行解析。通过使 filenameset 在反引字符串的括号之间来执行此操作

。将它作为命令行,此命令被传递给子 cmd.exe 并将输出捕获到内存并进行解析,就象它是一个文件一样。因此,下面的

范例:
for /f "usebackq delims==" %i in (`set`) do @echo %i
这将列举当前环境中的环境变量名。

四.针对网络探测时使用for命令
1. for /f “tokens=1,2*” %i in (filename.txt) do net use \targetipc$ %i /u:%j
呵呵,首先/f的参数的含意是解析文件的意思。这将解析 filename.txt 文件的每一行,将第一和第二个令牌环传递到 for 正文中,令牌环通过逗号和/或空格分隔。注意:for 语句引用 %i 以获得第一个令牌,引用 %j 以获得第二个令牌。(注:我也不大明白令牌在这具体意思,不过可以确定的就是第一个令牌就是每行的第一个字符窜,第二个令牌就是用空格分开的第二个字符窜。呵呵,至于*的意思是这样的,在令牌 = 字符串中最后一个字符是星号,则将分配附加的变量,并在解析最后一个令牌后在行上接收剩余的文本。当然如果txt文本的格式如下,只有每行只有两个字符窜的话就可以省去了。)
filename.txt的内容格式如下:
password username
password administrator
password administrator
password administrator
in ()里添写上需要解析的文本文件名。
do后面则添加需要执行的命令如net use 、net user等。
(是不是有点对administrator暴力跑ipc%,获得密码的味道啊?呵呵,就是字典做的有点累。)

2. for /l %i in(1,1,254) do net use \x.x.x.%iipc$ “” /user:“”
/l这个参数是用来控制迭代的。
in()里的集合是一系列按步长量划分的、从头到尾的数字。这样,(1,1,5) 将生成序列 1 2 3 4 5,而 (5,-1,1) 将生成序列 (5 4 3 2 1)。
do 后的用法同上。看看也能明白意思了吧。

TOP

tlist命令

这是Windows2000 ResourceKit中提供的工具,很有用,给大家简单介绍一下这个命令的用法
1.系统帮助
C:>tlist /?
Microsoft (R) Windows NT (TM) Version 5.1 TLIST
Copyright (C) Microsoft Corp. 1981-1999

usage: TLIST <<-m <pattern>> | <-t> | <pid> | <pattern> | <-p <processname>>>
[options]:
-t
Print Task Tree

<pid>
List module information for this task.

<pattern>
The pattern can be a complete task
name or a regular expression pattern
to use as a match. Tlist matches the
supplied pattern against the task names
and the window titles.

-m <pattern>
Lists all tasks that have DLL modules loaded
in them that match the given pattern name

-s
Show services active in each process.

-p <processname>
Returns the PID of the process specified or -1
if the specified process doesn't exist. If there
are multiple instances of the process running only
the instance with the first PID value is returned.

2. -t参数

-t参数以树的形式列出了进程结构包括进程号

C:>tlist -t
System Process (0)
System (8)
SMSS.EXE (160)
CSRSS.EXE (184)
WINLOGON.EXE (204) NetDDE Agent
SERVICES.EXE (232)
svchost.exe (400)
svchost.exe (444)
spoolsv.exe (488)
msdtc.exe (520)
inojobsv.exe (636)
LLSSRV.EXE (664)
mdm.exe (692)
mstask.exe (756) SYSTEM AGENT COM WINDOW
SkSockServer.ex (808)
stisvc.exe (912)
svchost.exe (940) ModemDeviceChange
ums.exe (960)
init.exe (980)
WinMgmt.exe (1012)
mspmspsv.exe (1028)
dfssvc.exe (1052)
svchost.exe (1088)
LSASS.EXE (244)
taskmgr.exe (1592) Windows 任务管理器
inetd.exe (1340)
at.svc (1444)
explorer.exe (640) Program Manager
rundll32.exe (1656) CnsMain
CTFMON.EXE (916)
msnmsgr.exe (524) Animated BMP Sequence
realmon.exe (888) KILL 实时管理器
Uedit32.exe (1736) UltraEdit-32 - [E:inittest.txt]
PLSQLDev.exe (1528) PL/SQL Developer - eqsp@hhtest
mstsc.exe (1892) CB Viewer Window
mstsc.exe (1908)
MyIE.exe (1700)
pyintau.exe (296) PYJJ210INTAU
CMD.EXE (1880) 命令提示符 - tlist -t
tlist.exe (1472)
conime.exe (1716)

然后我们Kill个进程试试看

C:>kill 1736
process Uedit32.exe (1736) - 'UltraEdit-32 - [E:inittest.txt]' killed

C:>tlist -t
System Process (0)
System (8)
SMSS.EXE (160)
CSRSS.EXE (184)
WINLOGON.EXE (204) NetDDE Agent
SERVICES.EXE (232)
svchost.exe (400)
svchost.exe (444)
spoolsv.exe (488)
msdtc.exe (520)
inojobsv.exe (636)
LLSSRV.EXE (664)
mdm.exe (692)
mstask.exe (756) SYSTEM AGENT COM WINDOW
SkSockServer.ex (808)
stisvc.exe (912)
svchost.exe (940) ModemDeviceChange
ums.exe (960)
init.exe (980)
WinMgmt.exe (1012)
mspmspsv.exe (1028)
dfssvc.exe (1052)
svchost.exe (1088)
LSASS.EXE (244)
taskmgr.exe (1592) Windows 任务管理器
inetd.exe (1340)
at.svc (1444)
explorer.exe (640) Program Manager
rundll32.exe (1656) CnsMain
CTFMON.EXE (916)
msnmsgr.exe (524) Animated BMP Sequence
realmon.exe (888) KILL 实时管理器
PLSQLDev.exe (1528) PL/SQL Developer - eqsp@hhtest
mstsc.exe (1892) CB Viewer Window
mstsc.exe (1908)
MyIE.exe (1700)
pyintau.exe (296) PYJJ210INTAU
CMD.EXE (1880) 命令提示符 - tlist -t
tlist.exe (1756)
conime.exe (1716)

看这和Unix下是不是差不多了,很多事情我们都可以在命令行下完成了.

3. -s参数

这个参数按进程显示.详细列出每个进程里包含的服务.

看看这个参数的输出

C:>tlist -s
0 System Process
8 System
160 SMSS.EXE
184 CSRSS.EXE Title:
204 WINLOGON.EXE Title: NetDDE Agent
232 SERVICES.EXE Svcs:

Alerter,AppMgmt,Browser,Dhcp,dmserver,Dnscache,Eventlog,lanmanserver,lanmanworkstation,LmHts,Messenger,PlugPlay,ProtectedStor

age,seclogon,TrkWks,Wmi
244 LSASS.EXE Svcs: SamSs
400 svchost.exe Svcs: RpcSs
444 svchost.exe Svcs: EventSystem,Irmon,Netman,NtmsSvc,RasMan,SENS,SharedAccess
488 spoolsv.exe Svcs: Spooler
520 msdtc.exe Svcs: MSDTC
636 inojobsv.exe Svcs: KILL Anti-Virus Server
664 LLSSRV.EXE Svcs: LicenseService
692 mdm.exe Svcs: MDM
756 mstask.exe Svcs: Schedule
808 SkSockServer.ex Svcs: SkServer
912 stisvc.exe Svcs: StiSvc
940 svchost.exe Svcs: TapiSrv
960 ums.exe Svcs: UWIN_MS
980 init.exe
1012 WinMgmt.exe Svcs: WinMgmt
1028 mspmspsv.exe Svcs: WMDM PMSP Service
1052 dfssvc.exe Svcs: Dfs
1088 svchost.exe Svcs: BITS
1340 inetd.exe
1444 at.svc
640 explorer.exe Title: Program Manager
1656 rundll32.exe Title: CnsMain
916 CTFMON.EXE Title:
524 msnmsgr.exe Title: Animated BMP Sequence
888 realmon.exe Title: KILL 实时管理器
1592 taskmgr.exe Title: Windows 任务管理器
1716 conime.exe Title:
1528 PLSQLDev.exe Title: PL/SQL Developer - eqsp@hhtest
1892 mstsc.exe Title: CB Viewer Window
1908 mstsc.exe
1700 MyIE.exe Title:
296 pyintau.exe Title: PYJJ210INTAU
1880 CMD.EXE Title: 命令提示符 - tlist -s
1756 notepad.exe Title: Tlist.txt - 记事本
1752 tlist.exe

C:>

典型的我们可以看到svhost.exe里面包含了不同的服务,多个svhost.exe管理不同的服务组.

引用一段关于svhost.exe的解释:
 Svchost.exe是一个很普通的利用dll动态链接库来运行服务的程序,它位于system32目录下。在计算机启动时,它将读取注册表中有关服务

的部分,然后建立需要启动的服务列表。在同一时刻,可能有多个Svchost.exe在同时运行,每个Svchost.exe中可能包含一个或一组服务,同

一组内的每个服务都可以在一个Svchost.exe开始运行时在同等的条件下同时启动。说白一点,之所以要把若干个服务作为一组放在同一个

Svchost.exe中来运行,目的就是使这些服务能够更好的被控制和调试。

  Svchost.exe组的确定是位于注册表以下这个键值之中,HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionSvchost

,这里的每一项就是一组服务,也就是大家在任务管理器中看到的一个“Svchost.exe”。每一个REG_MULTI_ SZ中的值就是一个服务组,一个

组中可能只有一个服务,也有可能有若干个服务。到底哪些服务是属于同一个组,那些服务是独立运行的?您可以在这个键值中找到答案,H

KEY_LOCAL_MACHINESystemCurrentControlSetServices。

TOP

Find命令的用法:

使用Oracle的时候常常想,在NT上类似于UNIX里的grep的命令是什么呢?
查了一下,其实find命令就可以实现这个类似的功能。



1.系统帮助

C:>find /?
在文件中搜索字符串。

FIND [/V] [/C] [/N] [/I] "string" [[drive:][path]filename[ ...]]

/V 显示所有未包含指定字符串的行。
/C 仅显示包含字符串的行数。
/N 显示行号。
/I 搜索字符串时忽略大小写。
"string" 指定要搜索的文字串,
[drive:][path]filename
指定要搜索的文件。

如果没有指定路径,FIND 将搜索键入的或者由另一命令产生的文字。

2.举例
/N 参数显示行号

CracleRDBMSADMIN>dir *.lis
驱动器 C 中的卷是 本地磁盘
卷的序列号是 402A-3A7E

CracleRDBMSADMIN 的目录

2002-11-07 22:41 2,578 spauto.lis
2002-11-07 22:29 204 spcpkg.lis
2002-11-07 22:29 2,276 spctab.lis
2002-11-07 22:28 2,630 spcusr.lis
2002-11-07 22:28 7,316 spdtab.lis
5 个文件 15,004 字节
0 个目录 484,114,432 可用字节

CracleRDBMSADMIN>find /N "error" spctab.lis

---------- SPCTAB.LIS
[336]SPCTAB complete. Please check spctab.lis for any errors.

C:oracleRDBMSADMIN>find /N "error" spcpkg.lis

---------- SPCPKG.LIS
[13]SPCPKG complete. Please check spcpkg.lis for any errors.

C:oracleRDBMSADMIN>find /N "ORA-" spdtab.lis

---------- SPDTAB.LIS
[3]ORA-00900: 无效 SQL 语句
[6]ORA-01432: 要删除的公用同义词不存在
[9]ORA-02289: 序列(号)不存在
[12]ORA-01432: 要删除的公用同义词不存在
[15]ORA-00942: 表或视图不存在
[18]ORA-01432: 要删除的公用同义词不存在
[21]ORA-00942: 表或视图不存在
[24]ORA-01432: 要删除的公用同义词不存在

在UNIX下,我们要用grep命令:

$ grep ORA- *.lis
spdtab.lis:ORA-00900: 无效 SQL 语句
spdtab.lis:ORA-01432: 要删除的公用同义词不存在
spdtab.lis:ORA-02289: 序列(号)不存在
spdtab.lis:ORA-01432: 要删除的公用同义词不存在
spdtab.lis:ORA-00942: 表或视图不存在
spdtab.lis:ORA-01432: 要删除的公用同义词不存在
spdtab.lis:ORA-00942: 表或视图不存在
spdtab.lis:ORA-01432: 要删除的公用同义词不存在

同样在NT下,find命令也支持多个文件输入

C:oracleRDBMSADMIN>find "ORA-" *.lis

---------- SPAUTO.LIS

---------- SPCPKG.LIS

---------- SPCTAB.LIS

---------- SPCUSR.LIS

---------- SPDTAB.LIS
ORA-00900: 无效 SQL 语句
ORA-01432: 要删除的公用同义词不存在
ORA-02289: 序列(号)不存在
ORA-01432: 要删除的公用同义词不存在
ORA-00942: 表或视图不存在
ORA-01432: 要删除的公用同义词不存在
ORA-00942: 表或视图不存在
ORA-01432: 要删除的公用同义词不存在

看,基本上达到了同样的效果。

2.管道和重定向

通过使用管道和重定向,find和其它命令结合可以得到其它你想要的效果。

假定需要 find 命令搜索硬盘,以查找并显示在驱动器 C 上包含字符串“CPU”的文件名要执行该操作,可以使用管道 (|) 将 dir 命令的结果定向到 find,如下例所示:

dir c: /s /b | find "CPU"

因为 find 搜索区分大小写并且 dir 产生的输出是大写的,所以必须用大写字母键入“CPU”或者使用带有/i 开关的 find。

随便说说,个人的一点心得,希望对大家有点用处!

TOP

 17 12
发新话题