[知识库]实用的10条WinXP命令

[夜晚 2005/08/28 19:39 | by 雨炫 ]
一、Assoc
Assoc命令用于显示或修改文件名扩展关联。如果在没有参数的情况下使用,则 assoc 命令将显示所有当前文件名扩展关联的列表。

语法
assoc [.ext[=[filetype]]]

参数
.ext
指定文件名扩展。
filetype
指定要与指定的文件名扩展相关联的文件类型。

在命令提示符显示帮助。
注释
如果在等号后使用空格,则将删除某个文件名扩展的文件类型关联。
使用 ftype 命令可查看已定义了打开命令字符串的当前文件类型。
使用 重定向操作符可重定向 assoc 输出到文本文件。
范例
要查看文件名扩展 .txt 的当前文件类型关联,可键入:

assoc .txt

要删除文件名扩展 .txt 的文件类型关联,可键入:

assoc .txt=

要一次查看当前文件类型关联的一个画面,可键入:

assoc more

要将 assoc 输出发送到 Assoc.cfg 文件,可键入:

assocassoc.cfg

二、ATTRIB
显示或更改文件属性。

ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [[drive:] [path] filename] [/S [/D]]

+ 设置属性。
- 清除属性。
R 只读文件属性。
A 存档文件属性。
S 系统文件属性。
H 隐藏文件属性。
[drive:][path][filename]
指定要处理的文件属性。
/S 处理当前文件夹及其子文件夹中的匹配文件。
/D 也处理文件夹。

三、Convert
Convert将 FAT 和 FAT32 卷转换为 NTFS。

语法
convert [volume] /fs:ntfs [/v] [/cvtarea:FileName] [/nosecurity] [/x]

参数
volume
指定驱动器号(其后要紧跟冒号)、装入点或要转换为 NIFS 的卷名。
/fs:ntfs
必需将卷转换为 NTFS。
/v
指定详细模式,即在转换期间将显示所有的消息。
/cvtarea:FileName
仅适用于高级用户。指定将主控文件表 (MFT) 以及其他 NTFS 元数据文件写入相邻的现存占位符文件中。该文件必须位于要转换的文件系统的根目录下。如果使用 /CVTAREA 参数,可以使转换后的文件系统具有较少的碎片。为了得到最佳结果,该文件的大小最好为 1 KB 与文件系统中文件和目录数量的乘积,但是,该转换工具也接受任意大小的文件。
有关使用 /cvtarea 参数的详细信息,请参阅 Microsoft Windows XP 资源工具包网站中的“文件系统”。(http://www.microsoft.com/)

要点

在运行 convert 之前,首先必须使用 fsutil file createnew 命令创建占位符文件。Convert 并不创建此文件。Convert 使用 NTFS 元数据覆盖此文件。完成转换后,会释放此文件中所有未被使用的空间。有关 fsutil file 命令的详细信息,请参阅“相关主题”。
/nosecurity
对于转换后的文件和目录的安全性设置,将其指定为每个人都可访问。
/x
如果需要,使用该参数可在转换之前将该卷卸载。对该卷任何打开的句柄不再有效。
注释
必须指定重新启动计算机时应该转换的驱动器。否则,将无法转换当前驱动器。
如果 convert 无法锁定驱动器(系统卷、当前驱动器等),它会主动在下次重新启动计算机时转换该驱动器。
在从早期版本的 NIFS 转换得到的卷上,MFT 位置是不同的。因此,卷的性能可能不如从 Windows NT 转换得到的卷优异。
与最初就使用 NIFS 进行格式化的卷相比,从 FAT 转换为 NTFS 的卷会缺少部分性能。在转换后的卷上,MFT 可能会变得破碎。另外,转换后的启动卷上的 NTFS 权限不再适用。
范例
要将驱动器 E 上的卷转换为 NTFS 并且显示所有消息,请键入:

convert e:/fs:ntfs /v


四、FC
Fc比较两个文件并显示它们之间的差异。

语法
fc [/a] [/b] [/c] [/l] [/lbn] [/n] [/t] [/u] [/w] [/nnnn] [drive1:][path1]filename1 [drive2:][path2]filename2

参数
/a
压缩 ASCII 比较的输出结果。fc 只显示每组差异中的第一行和最后一行,而不是显示所有不同的行。
/b
以二进制模式比较文件。fc 逐字节比较两个文件,并且在找到不匹配后将不尝试重新同步文件。这是包含如下文件扩展名的比较文件的默认模式:.exe, .com, .sys, .obj, .lib,或 .bin.
/c
忽略字母大小写。
/l
以 ASCII 码模式比较文件。Fc 逐行比较两个文件,并且在找到不匹配时将尝试使重新同步。这是比较文件的默认模式,除了具有如下文件扩展名的文件之外:.exe, .com, .sys, .obj, .lib,或 .bin.
/lbn
为内部行缓冲区设置行的 n 数量。默认的行缓冲区长度为 100 行。如果比较的文件包含超过此数目的相邻不同行,fc 将取消比较。
/n
显示 ASCII 比较过程中的行号。
/t
防止 fc 将制表符转换为空格。默认的操作是将制表符当作空格处理,在每八个字符位置停顿一下。
/u
将文件作为 Unicode 文本文件进行比较。
/w
比较过程中压缩空白空间(制表位和空格)。如果行包含许多连续的空格和制表符,/w 将把这些字符作为一个空格处理。在与 /w 命令行选项一起使用时,fc 忽略(并且不比较)行首和行尾处的空格。
/nnnn
指定在 fc 考虑要重新同步的文件之前必须匹配的连续行数。如果文件中匹配的行数少于 nnnn,fc 将匹配行显示为不同。默认值为 2。
[drive1:][path1]filename1
指定要比较的第一个文件的位置和名称。Filename1 为必需。
[drvie2:][path2]filename2
指定要比较的第二个文件的位置和名称。Filename2 为必需。
/?
在命令提示符显示帮助。
注释
报告 ASCII 比较的文件之间的差异
用 fc 进行 ASCII 比较时,fc 按如下顺序显示两个文件之间的差异:

第一个文件的名称
文件之间存在差异的 filename1 的行。
两个文件中匹配的第一个行。
第二个文件的名称
filename2 的不同的行
匹配的第一个行
使用 /b 进行二进制比较
/b 显示二进制比较期间找到的不匹配项,如下所示:

xxxxxxxx:yy zz

xxxxxxxx 的值为每对字节指定相对的十六进制地址,从文件的开头度量。地址起始于 00000000。十六进制值 yy 和 zz 分别代表了 filename1 和 filename2 中不匹配的字节。

使用通配符
可以在 filename1 和 filename2 中使用通配符(* 和 ?)。如果在 filename1 中使用通配符,fc 将比较所有指定的文件和由 FileName 指定的文件。如果在 filename2 中使用通配符,fc 将从 filename1 中使用相应的值。

使用内存
在比较 ASCII 文件时,fc 使用内部缓冲区(足够容纳 100 行)作为存储区。如果文件比缓冲区大,fc 将比较可以载入缓冲区的内容。如果 fc 在文件已加载的部分没有找到匹配,则停止并显示下列消息:

Resynch failed.Files are too different.

在比较大于可用内存的二进制文件时,fc 完整比较两个文件,使用磁盘的下一部分覆盖内存中的部分。输出和完全装入内存的文件内容相同。

范例
要对两个名为 Monthly.rpt 和 Sales.rpt 的文本文件进行 ASCII 比较并以缩略格式显示结果,请键入:

fc /a monthly.rpt sales.rpt

要对两个批处理文件 Profits.bat 和 Earnings.bat 进行二进制比较,请键入:

fc /b profits.bat earnings.bat

出现类似于如下内容的结果:

00000002: 72 43
00000004: 653A
0000000E: 56 92
00000012: 6D 5C
00000013: 0D 7C
00000014: 0D 0A
00000015: 0A 0D
0000001E:437A
0000001F:09 0A
00000022: 72 44
...
...
...
000005E0: 00 61
000005E1: 00 73
000005E2: 00 73
000005E3: 00 69
000005E4: 00 67
000005E5:00 6E
000005E6:00 6D
000005E7: 00 65
000005E8:00 6E
FC:Earnings.bat longer than Profits.bat
如果 Profits.bat 和 Earnings.bat 文件相同,fc 将显示下列消息:

FC:no differences encountered

要将当前目录中的每个 .bat 文件与文件 New.bat 进行比较,请键入:

fc *.bat new.bat

要将驱动器 C 上的文件 New.bat 与驱动器 D 上的文件 New.bat 比较,请键入:

fc c:new.bat d:*.bat

要将驱动器 C 根目录中的每个批处理文件与驱动器 D 根目录中名称相同的文件进行比较,请键入:

fc c:*.bat d:*.bat


五、ipconfig
Ipconfig显示所有当前的 TCP/IP 网络配置值、刷新动态主机配置协议 (DHCP) 和域名系统 (DNS) 设置。使用不带参数的 ipconfig 可以显示所有适配器的 IP 地址、子网掩码、默认网关。

语法
ipconfig [/all] [/renew [Adapter]] [/release [Adapter]] [/flushdns] [/displaydns] [/registerdns] [/showclassid Adapter] [/setclassid Adapter [ClassID]]

参数
/all
显示所有适配器的完整 TCP/IP 配置信息。在没有该参数的情况下 ipconfig 只显示 IP 地址、子网掩码和各个适配器的默认网关值。适配器可以代表物理接口(例如安装的网络适配器)或逻辑接口(例如拨号连接)。
/renew [adapter]
更新所有适配器(如果未指定适配器),或特定适配器(如果包含了 Adapter 参数)的 DHCP 配置。该参数仅在具有配置为自动获取 IP 地址的网卡的计算机上可用。要指定适配器名称,请键入使用不带参数的 ipconfig 命令显示的适配器名称。
/release [adapter]
发送 DHCPRELEASE 消息到 DHCP 服务器,以释放所有适配器(如果未指定适配器)或特定适配器(如果包含了 Adapter 参数)的当前 DHCP 配置并丢弃 IP 地址配置。该参数可以禁用配置为自动获取 IP 地址的适配器的 TCP/IP。要指定适配器名称,请键入使用不带参数的 ipconfig 命令显示的适配器名称。
/flushdns
清理并重设 DNS 客户解析器缓存的内容。如有必要,在 DNS 疑难解答期间,可以使用本过程从缓存中丢弃否定性缓存记录和任何其他动态添加的记录。
/displaydns
显示 DNS 客户解析器缓存的内容,包括从本地主机文件预装载的记录以及由计算机解析的名称查询而最近获得的任何资源记录。DNS 客户服务在查询配置的 DNS 服务器之前使用这些信息快速解析被频繁查询的名称。
/registerdns
初始化计算机上配置的 DNS 名称和 IP 地址的手工动态注册。可以使用该参数对失败的 DNS 名称注册进行疑难解答或解决客户和 DNS 服务器之间的动态更新问题,而不必重新启动客户计算机。TCP/IP 协议高级属性中的 DNS 设置可以确定 DNS 中注册了哪些名称。
/showclassid adapter
显示指定适配器的 DHCP 类别 ID。要查看所有适配器的 DHCP 类别 ID,可以使用星号 (*) 通配符代替 Adapter。该参数仅在具有配置为自动获取 IP 地址的网卡的计算机上可用。
/setclassid Adapter [ClassID]
配置特定适配器的 DHCP 类别 ID。要设置所有适配器的 DHCP 类别 ID,可以使用星号 (*) 通配符代替 Adapter。该参数仅在具有配置为自动获取 IP 地址的网卡的计算机上可用。如果未指定 DHCP 类别 ID,则会删除当前类别 ID。
/?
在命令提示符显示帮助。
注释
ipconfig 等价于 winipcfg,后者在 Windows Millennium Edition、Windows 98 和 Windows 95 上可用。尽管 Windows XP 没有提供象 winipcfg 命令一样的图形化界面,但可以使用“网络连接”查看和更新 IP 地址。要做到这一点,请打开 网络连接,右键单击某一网络连接,单击“状态”,然后单击“支持”选项卡。
该命令最适用于配置为自动获取 IP 地址的计算机。它使用户可以确定哪些 TCP/IP 配置值是由 DHCP、自动专用 IP 地址 (APIPA) 和其他配置配置的。
如果 Adapter 名称包含空格,请在该适配器名称两边使用引号(即 "Adapter Name")。
对于适配器名称,ipconfig 可以使用星号 (*) 通配符字符指定名称为指定字符串开头的适配器,或名称包含有指定串的适配器。例如,Local* 可以匹配所有以字符串 Local 开头的适配器,而 *Con* 可以匹配所有包含字符串 Con 的适配器。
只有当网际协议 (TCP/IP) 协议在 网络连接中安装为网络适配器属性的组件时,该命令才可用。
范例
要显示所有适配器的基本 TCP/IP 配置,请键入:

ipconfig

要显示所有适配器的完整 TCP/IP 配置,请键入:

ipconfig /all

仅更新“本地连接”适配器的由 DHCP 分配 IP 地址的配置,请键入:

ipconfig /renew "Local Area Connection"

要在排除 DNS 的名称解析故障期间清理 DNS 解析器缓存,请键入:

ipconfig /flushdns

要显示名称以 Local 开头的所有适配器的 DHCP 类别 ID,请键入:

ipconfig /showclassid Local*

要将“本地连接”适配器的 DHCP 类别 ID 设置为 TEST,请键入:

ipconfig /setclassid "Local Area Connection" TEST


六、PING
Ping通过发送“网际消息控制协议 (ICMP)”回响请求消息来验证与另一台 TCP/IP 计算机的 IP 级连接。回响应答消息的接收情况将和往返过程的次数一起显示出来。Ping 是用于检测网络连接性、可到达性和名称解析的疑难问题的主要 TCP/IP 命令。如果不带参数,ping 将显示帮助。

语法
ping [-t] [-a] [-n Count] [-l Size] [-f] [-i TTL] [-v TOS] [-r Count] [-s Count] [{-j HostList | -k HostList}] [-w Timeout] [TargetName]

参数
-t
指定在中断前 ping 可以持续发送回响请求信息到目的地。要中断并显示统计信息,请按 CTRL-BREAK。要中断并退出 ping,请按 CTRL-C。
-a
指定对目的地 IP 地址进行反向名称解析。如果解析成功,ping 将显示相应的主机名。
-n Count
指定发送回响请求消息的次数。默认值为 4。
-lSize
指定发送的回响请求消息中“数据”字段的长度(以字节表示)。默认值为 32。size 的最大值是 65,527。
-f
指定发送的回响请求消息带有“不要拆分”标志(所在的 IP 标题设为 1)。回响请求消息不能由目的地路径上的路由器进行拆分。该参数可用于检测并解决“路径最大传输单位 (PMTU)”的故障。
-i TTL
指定发送回响请求消息的 IP 标题中的 TTL 字段值。其默认值是是主机的默认 TTL 值。对于 Windows XP 主机,该值一般是 128。TTL 的最大值是 255。
-v TOS
指定发送回响请求消息的 IP 标题中的“服务类型 (TOS)”字段值。默认值是 0。TOS 被指定为 0 到 255 的十进制数。
-r Count
指定 IP 标题中的“记录路由”选项用于记录由回响请求消息和相应的回响应答消息使用的路径。路径中的每个跃点都使用“记录路由”选项中的一个值。如果可能,可以指定一个等于或大于来源和目的地之间跃点数的 Count。Count 的最小值必须为 1,最大值为 9。
-s Count
指定 IP 标题中的“Internet 时间戳”选项用于记录每个跃点的回响请求消息和相应的回响应答消息的到达时间。Count 的最小值必须为 1,最大值为 4。
-jPath
指定回响请求消息使用带有 HostList 指定的中间目的地集的 IP 标题中的“稀疏资源路由”选项。可以由一个或多个具有松散源路由的路由器分隔连续中间的目的地。主机列表中的地址或名称的最大数为 9,主机列表是一系列由空格分开的 IP 地址(带点的十进制符号)。
-k HostList
指定回响请求消息使用带有 HostList 指定的中间目的地集的 IP 标题中的“严格来源路由”选项。使用严格来源路由,下一个中间目的地必须是直接可达的(必须是路由器接口上的邻居)。主机列表中的地址或名称的最大数为 9,主机列表是一系列由空格分开的 IP 地址(带点的十进制符号)。
-w Timeout
指定等待回响应答消息响应的时间(以微妙计),该回响应答消息响应接收到的指定回响请求消息。如果在超时时间内未接收到回响应答消息,将会显示“请求超时”的错误消息。默认的超时时间为 4000(4 秒 )。
TargetName
指定目的端,它既可以是 IP 地址,也可以是主机名。
/?
在命令提示符显示帮助。
注释
可以使用 ping 测试计算机名和计算机的 IP 地址。如果已成功验证 IP 地址但未成功验证计算机名,这可能是由于名称解析问题所致。在这种情况下,要确保指定的计算机名可以通过本地主机文件进行解析,其方法是通过域名系统 (DNS) 查询或 NetBIOS 名称解析技术进行解析。
只有当网际协议 (TCP/IP) 协议在 网络连接中安装为网络适配器属性的组件时,该命令才可用。
范例
以下范例显示 ping 的输出:

C:>ping example.microsoft.com

Pinging example.microsoft.com [192.168.239.132] with 32 bytes of data:

Reply from 192.168.239.132: bytes=32 time=101ms TTL=124

Reply from 192.168.239.132: bytes=32 time=100ms TTL=124

Reply from 192.168.239.132: bytes=32 time=120ms TTL=124

Reply from 192.168.239.132: bytes=32 time=120ms TTL=124

要验证目的地 10.0.99.221 并解析 10.0.99.221 的主机名,请键入:

ping -a 10.0.99.221

要验证带有 10 个回响请求消息的 10.0.99.221,且每个消息的“数据”字段值为 1000 字节,请键入:

ping -n 10 -l 1000 10.0.99.221

要验证目的地 10.0.99.221 并记录 4 个跃点的路由,请键入:

ping -r 4 10.0.99.221

要验证目的地 10.0.99.221 并指定稀疏来源路由为 10.12.0.1-10.29.3.1-10.1.44.1,请键入:

ping -j 10.12.0.1 10.29.3.1 10.1.44.1 10.0.99.221


七、Shutdown
Shutdown允许您关闭或重新启动本地或远程计算机。如果没有使用参数,shutdown 将注销当前用户。


用法: shutdown [-i | -l | -s | -r | -a] [-f] [-m \computername] [-t xx] [-c "comment"] [-d up:xx:yy]

没有参数 显示此消息(与 ? 相同)
-i 显示 GUI 界面,必须是第一个选项
-l 注销(不能与选项 -m 一起使用)
-s 关闭此计算机
-r 关闭并重启动此计算机
-a 放弃系统关机
-m \computername 远程计算机关机/重启动/放弃
-t xx 设置关闭的超时为 xx 秒
-c "comment" 关闭注释(最大 127 个字符)
-f 强制运行的应用程序关闭而没有警告
-d [u][p]:xx:yy 关闭原因代码
u 是用户代码
p 是一个计划的关闭代码
xx 是一个主要原因代码(小于 256 的正整数)
yy 是一个次要原因代码(小于 65536 的正整数)

注释
一旦指定了主要和次要原因代码,您必须首先为计划使用某种特定原因的每个计算机定义那些原因代码。如果目标机器上没有定义原因代码,则事件查看器无法记录正确的原因文本。
范例
要在 60 秒内关闭 \MyServer,强制运行要关闭的应用程序,在关机后重新启动系统,指定一个用户代码,指定计划关闭系统,然后记录主要原因代码 125 和次要原因代码 1,请键入:

shutdown -r -f -m \MyServer -t 60 -d up:125:1


八、TASKLIST

TASKLIST [/S system [/U username [/P [password]]]]
[/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH]

描述:
这个命令行工具显示应用程序和本地或远程系统上运行的相关任务/进程的列表。

参数列表:
/S system 指定连接到的远程系统。

/U [domain]user 指定应该在哪个用户上下文
执行这个命令。

/P [password] 为提供的用户上下文指定
密码。如果忽略,提示输入。

/M [module] 列出所有其中符合指定模式名
的 DLL 模块的所有任务。
如果没有指定模块名,则
显示每个任务加载的所有模块。

/SVC 显示每个进程中的服务。

/V 指定要显示详述
信息。

/FI filter 显示一系列符合筛选器指定的标准
的任务。

/FO format 指定输出格式。
有效值: "TABLE"、"LIST"、"CSV"。

/NH 指定栏标头不应该在
输出中显示。
只对 "TABLE" 和 "CSV" 格式有效。

/? 显示帮助/用法。


筛选器:
筛选器名 有效操作符 有效值
----------- --------------- --------------
STATUS eq, ne 正在运行 | 没有响应
IMAGENAME eq, ne 图像名
PID eq, ne, gt, lt, ge, le PID 值
SESSION eq, ne, gt, lt, ge, le 会话编号
SESSIONNAME eq, ne 会话名
CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为
hh:mm:ss。
hh - 时,
mm - 分,ss - 秒
MEMUSAGE eq, ne, gt, lt, ge, le 内存使用量(KB)
USERNAME eq, ne 用户名,格式为 [domain]user

SERVICES eq, ne 服务名
WINDOWTITLE eq, ne 窗口标题
MODULES eq, ne DLL 名

例如:
TASKLIST
TASKLIST /M
TASKLIST /V
TASKLIST /SVC
TASKLIST /M wbem*
TASKLIST /S system /FO LIST
TASKLIST /S system /U domainusername /FO CSV /NH
TASKLIST /S system /U username /P password /FO TABLE /NH
TASKLIST /FI "USERNAME ne NT AUTHORITYSYSTEM" /FI "STATUS eq running"

九、TASKKILL

TASKKILL [/S system [/U username [/P [password]]]]
{ [/FI filter] [/PID processid | /IM imagename] } [/F] [/T]

描述:
这个命令行工具可用来结束至少一个进程。
可以根据进程 id 或图像名来结束进程。

参数列表:
/S system 指定要连接到的远程系统。

/U [domain]user 指定应该在哪个用户上下文
执行这个命令。

/P [password] 为提供的用户上下文指定
密码。如果忽略,提示输入。

/F 指定要强行终止
进程。

/FI filter 指定筛选进或筛选出查询的
的任务。

/PID process id 指定要终止的进程的
PID。

/IM image name 指定要终止的进程的
图像名。通配符 '*'
可用来指定所有图像名。

/T Tree kill: 终止指定的进程
和任何由此启动的子进程。

/? 显示帮助/用法。

筛选器:
筛选器名 有效运算符 有效值
----------- --------------- --------------
STATUS eq, ne 运行 | 没有响应
IMAGENAME eq, ne 图像名
PID eq, ne, gt, lt, ge, le PID 值
SESSION eq, ne, gt, lt, ge, le 会话编号
CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为
hh:mm:ss。
hh - 时,
mm - 钟,ss - 秒
MEMUSAGE eq, ne, gt, lt, ge, le 内存使用,单位为 KB
USERNAME eq, ne 用户名,格式为
[domain]user
MODULES eq, ne DLL 名
SERVICES eq, ne 服务名
WINDOWTITLE eq, ne 窗口标题

注意: 只有带有筛选器的情况下,才能跟 /IM 切换使用通配符 '*'。

注意: 远程进程总是要强行终止,
不管是否指定了 /F 选项。

例如:
TASKKILL /S system /F /IM notepad.exe /T
TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
TASKKILL /F /IM notepad.exe /IM mspaint.exe
TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"
TASKKILL /F /FI "USERNAME eq NT AUTHORITYSYSTEM" /IM notepad.exe
TASKKILL /S system /U domainusername /FI "USERNAME ne NT*" /IM *
TASKKILL /S system /U username /P password /FI "IMAGENAME eq note*"

十、Help
Help提供关于系统命令的联机信息(即非网络命令)。使用不带参数的 help 列举并简要描述每个系统命令。

语法
{help [command]|[command]/?}

参数
command
指定需要有关信息的命令的名称。
注释
有两种方法可以获得命令的联机帮助。可以键入 help command,或键入 command /?。/? 的键入要稍微快一些。
有关网络命令的详细信息,请单击“相关主题”中的 net help。
范例
要查看有关 xcopy 命令的详细信息,请键入以下任何一个命令:

help xcopy
xcopy /?

外传:重定向
使用命令重定向操作符 (Redirection Operators)可以使用重定向操作符将命令输入和输出数据流从默认位置重定向到不同的位置。输入或输出数据流的位置即为句柄。

下表列出了可用于将命令输入和输出数据流进行重定向的操作符。

重定向操作符 说明
> 将命令输出写入到文件或设备(例如打印机)中,而不是写在命令提示符窗口中。
< 从文件中而不是从键盘中读入命令输入。
>> 将命令输出添加到文件末尾而不删除文件中的信息。
>& 将一个句柄的输出写入到另一个句柄的输入中。
<& 从一个句柄读取输入并将其写入到另一个句柄输出中。
| 从一个命令中读取输出并将其写入另一个命令的输入中。也称作管道。

默认情况下,可以从键盘将命令输入(即 STDIN 句柄)发送到 Cmd.exe,然后由 Cmd.exe 将命令输出(即 STDOUT 句柄)发送到命令提示符窗口。

下表将列出可用的句柄。

句柄 句柄的数字代号 说明
STDIN 0 键盘输入
STDOUT 1 输出到命令提示符窗口
STDERR 2 错误输出到命令提示符窗口
UNDEFINED 3-9 这些句柄由应用程序和各个具体工具单独定义。

数字 0 到 9 代表前 10 个句柄。可以使用命令 Cmd.exe 运行程序并将前 10 个句柄中的任何一个重定向到该程序。要指定想使用的句柄,可在重定向操作符前面键入该句柄的数字。如果未定义句柄,则默认的 < 重定向输入操作符是 0,而默认的 > 重定向输出操作符是 1。键入 > 或 < 操作符之后,必须指定要读取或写入数据的位置。可以指定文件名或另一个现有的句柄。

要指定重定向到现有句柄,请使用与 (&) 字符,后面接要重定向的句柄号(例如 &句柄#)。例如,下面的命令可以将句柄 2(即 STDERR)重定向到句柄 1(即 STDOUT):

1<&2

复制句柄
重定向操作符 & 可以将输出或输入从一个句柄复制到另一个指定的句柄。例如,要将 dir 输出发送到 File.txt 并将错误输出发送到 File.txt,请键入:

dir>c:file.txt 2>&1

复制句柄时,可以复制该句柄原状态的所有特性。例如,如果一个句柄具有只读访问的属性,则该句柄的所有副本都具有只读访问属性。不能将一个具有只读访问属性的句柄复制为另一个具有只写访问属性的句柄。

重定向命令输出 (<)
要从键盘或设备重定向命令输出,请使用 < 操作符。例如,要从 File.txt 得到 sort 命令的命令输入,请键入:

sort
File.txt 的内容将以字母顺序列表的方式显示在命令提示符窗口中。

< 操作符可以打开具有只读访问的指定文件名。所以,不能使用该操作符向文件中写入信息。例如,如果以 <&2 启动程序,则所有试图读取句柄 0 的操作都将失败,因为句柄 2 最初是以只读访问打开的。

注意

0 是 < 重定向输入操作符 > 的默认句柄。
重定向命令输出 (>)
几乎所有的命令都将输出发送到命令提示符窗口。即使将输出发送到驱动器或打印机的命令也会在命令提示符窗口显示消息和提示。

要将命令输出从命令提示符窗口重定向到文件或设备,请使用 > 操作符。可以在许多命令中使用该操作符。例如,要将 dir 输出重定向到 Dirlist.txt,请键入:

dir>dirlist.txt

如果 Dirlist.txt 不存在,Cmd.exe 将创建该文件。如果 Dirlist.txt 存在,Cmd.exe 将使用 dir 命令的输出替换文件中的信息。

要运行 netsh routing dump 命令,然后将命令输出发送到 Route.cfg,请键入:

netsh routing dump>c:route.cfg

> 操作符可以打开具有只写访问属性的指定文件。所以,不能使用该操作符读取文件。例如,如果使用重定向 >&0 启动程序,则所有试图写入句柄 1 的操作都将失败,因为句柄 0 最初是以只读访问大开的。

注意

1 是 > 重定向输出操作符的默认句柄。
使用 <& 操作符重定向输入和复制
要使用重定向输入操作符 <&,指定的文件必须已经存在。如果输入文件存在,Cmd.exe 将以只读方式打开该文件,然后将文件中作为输入的字符发送到此命令(如同从键盘输入一样)。如果指定了句柄,Cmd.exe 将指定的句柄复制到系统现有的句柄中。

例如,要以句柄 0 输入读取(即 STDIN)的方式打开 File.txt,请键入:


要打开 File.txt,并在内容分类后将输出发送到命令提示符窗口(即 STDOUT),请键入:

sort
要查找 File.txt,然后将句柄 1(即 STDOUT)和句柄 2(即 STDERR)重定向到 Search.txt,请键入:

findfile file.txt>search.txt 2<&1

要以句柄 0 输入读取(即 STDIN)的方式复制用户定义句柄 3,请键入:

<&3

使用 >& 操作符重定向输出和复制
如果将输出重定向到文件且指定了现有的文件名,Cmd.exe 将以只写方式打开文件并覆盖该文件内容。如果指定了句柄,Cmd.exe 将文件复制到现有句柄中。

要将用户定义句柄 3 复制到句柄 1,请键入:

>&3

要将包括句柄 2(即 STDERR)的所有输出从 ipconfig 命令重定向到句柄 1(即 STDOUT),然后将输出重定向到 Output.log,请键入:

ipconfig.exe>>output.log 2>&1

使用 >> 重定向操作符追加输出
要从命令中将输出添加到文件末尾而不丢失文件中已存在的任何信息,请使用两个连续的大于号(即 >>)。例如,下面的命令可以将由 dir 命令生成的目录列表追加到 Dirlist.txt 文件:

dir>>dirlist.txt

要将 netstat 命令的输出追加到 Tcpinfo.txt 的末尾,请键入:

netstat>>tcpinfo.txt

使用管道操作符 (|)
管道操作符 (|) 可以提取一个命令的输出(默认情况下是 STDOUT),然后将其导入另一个命令的输入中(默认情况下是 STDIN)。例如,下面的命令将对目录分类:

dir | sort

在本例中,将同时启动两个命令,但随后 sort 命令会暂停,直到它接收到 dir 命令的输出为止。sort 命令使用 dir 命令的输出作为输入,然后将输出发送到句柄 1(即 STDOUT)。

合并带重定向操作符的命令
可以通过合并带有其它命令和文件名的筛选器命令创建自定义命令。例如,可以使用以下命令存储包含“LOG”字符串的文件名:

dir /b | find "LOG" > loglist.txt

dir 命令的输出通过 find 筛选器命令发送。包含字符串 "LOG" 的文件名作为文件名列表(例如,NetshConfig.log、Logdat.svd 和 Mylog.bat)存储在文件 Loglist.txt 中。

要在相同命令中使用多个筛选器,请使用管道 (|) 分隔筛选器。例如,下面的命令将搜索 C 盘上的每个目录以查找包含 "LOG" 字符串的文件名,并且在命令提示符窗口中每次显示一屏:

dir c: /s /b | find "LOG" | more

利用管道 (|) 可以将 Cmd.exe 导向为通过 find 筛选器命令发送 dir 命令输出。find 命令只选择包含字符串 "LOG" 的文件名。more 命令可以显示由 find 命令选择的文件名(在命令提示符窗口中每次显示一屏)。



以上内容摘自MS XP帮助(鸣谢MS帮助撰写者),由CAMUS整理~
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]