Jun 24, 2011

DOS 命令,batch file

Command line parameters

Batch files can only handle parameters %0 to %9

%0 is the program name as it was called,
%1 is the first command line parameter,
%2 is the second command line parameter,
and so on till %9.

OK, tell me something new.
Since %0 is the program name as it was called, in DOS %0 will be empty for AUTOEXEC.BAT if started at boot time.
This means that, in AUTOEXEC.BAT, you can check if it is being started at boot time or from the command line, for example to prevent loading TSR's twice.

DOS常用命令-DIR 参数
显示目录文件和子目录列表。如果在不带参数的情况下使用,则 dir 显示磁盘的卷标和序列号,后接磁盘上目录和文件的列表,包括它们的名称和最近修改的日期及时间。dir 可以显示文件的扩展名以及文件的大小(以字节为单位)。Dir 也显示列出的文件及目录的总数、累计大小和磁盘上剩余的可用空间(以字节为单位)。

语法
dir [Drive:][Path][FileName] [...] [/p] [/q] [/w] [/d] [/a[[:]Attributes]][/o[[:]SortOrder]] [/t[[:]TimeField]] [/s] [/b] [/l] [/n] [/x] [/c] [/4]

参数
[Drive:][Path]

指定要以列表方式查看的驱动器和目录。

[FileName]

指定要以列表方式查看的特定文件或一组文件。

/p

每次以一个屏幕大小显示列表的一部分。要查看下一屏,请按键盘上的任意键。

/q

显示文件所有权信息。

/w

以宽格式显示列表,在每一行上显示多达 5 个文件名或目录名。

/d

与 /w 相同,但是文件按列排序。

/a [[:] Attributes]

只 显示那些指定属性的目录名和文件名。如果省略 /a,dir 将显示除隐藏文件和系统文件之外的所有文件名。如果在没有指定 Attributes 的情况下使用 /a,dir 将显示所有文件(包括隐藏文件和系统文件)的名称。以下列表描述了每个可用于 Attributes 的值。冒号 (:) 是可选的。使用这些值的组合,并且不得用空格分隔这些值。


值 描述
h
隐藏文件

s
系统文件

d
目录

a
可以存档的文件

r
只读文件

-h
非隐藏的文件

-s
系统文件以外的文件

-d
只是文件(而非目录)

-a
自上次备份后没有更改过的文件

-r
非只读的文件


/o[[:]SortOrder]

控 制 dir 排序和显示目录名和文件名的顺序。如果省略 /o,dir 将按名称在目录中出现的顺序显示名称。如果在没有指定 SortOrder 的情况下使用 /o,dir 先显示按字母顺序排列的目录名,然后显示按字母顺序排列的文件名。冒号 (:) 是可选的。以下列表描述了每个可用于 SortOrder 的值。使用这些值的任意组合,并且不要用空格分隔这些值。


值 描述
n
按名称的字母顺序

e
按扩展名的字母顺序

d
按日期和时间,最早的优先

s
按大小,最小的优先

g
在文件之前分组的目录

-n
按名称的逆序字母(从 Z 到 A)顺序

-e
按扩展名的逆序字母(从 .ZZZ 到 .AAA)顺序

-d
按日期和时间,最晚的优先

-s
按大小,最大的优先

-g
在文件之后分组的目录


/t[[:]TimeField]

指定显示或用于排序的时间字段。以下列表描述了每个可用于 TimeField 的值。


值 描述
c
创建

a
上次访问

w
上次写入


/s

列出指定目录及所有子目录中出现的每个指定的文件名。

/b

列出每个目录名或文件名,每行一个(包含文件扩展名)。/b 不显示标题信息或摘要。/b 替代 /w。

/l

以小写字母显示未排序的目录名和文件名。/l 不会将扩展字符转换为小写字符。

/n

在屏幕最右边显示带有文件名的长列表格式。

/x

显示为 NTFS 和 FAT 卷上文件生成的短名称。该显示与 /n 的显示相同,但是短名称显示在长名称之后。

/c

按文件大小显示多个分隔符。

/4

显示四位数字的年份格式。

/?

在命令提示符下显示帮助。

注释
? 使用多个 FileName 参数

可以使用多个 FileName 参数。用空格、逗号或分号隔开文件名。可以在 FileName 中使用通配符(? 和 *)来显示一组文件。

? 使用通配符

可以使用通配符,如星号 (*) 或问号 (?),来代表文件名的一个或多个字符,以显示文件的子集或子目录。

星号 (*): 可使用星号代替任何字符串。例如,键入:

? dir *.txt 列出当前目录中所有具有以 .txt 开头(如 .txt、.txt1、.txt_old)的扩展名的文件。

? dir read*.txt 列出当前目录中所有以“read”开头而且扩展名以 .txt 开头(如 .txt、.txt1、.txt_old)的文件。

? dir read*.* 列出当前目录中带有任意扩展名的以“read”开头的所有文件。


切记,星号通配符总是使用短文件名映射,因此,您可能会得到意外的结果。例如,下面的目录包含 2 个文件,t.txt2 和 t97.txt:


C:\test>dir /x驱动器 C 中的卷没有标签。卷序列号是 B86A-EF32Directory of C:\Windows 11/30/2004 01:40 PM <DIR> . 11/30/2004 01:40 PM <DIR> .. 11/30/2004 11:05 AM 0 T97B4~1.TXT t.txt2 11/30/2004 01:16 PM 0 t97.txt

您可能以为键入 dir t97* 会返回文件 t97.txt。然而,键入 dir t97* 将返回两个文件,这是因为,星号通配符使用其短名称映射 T97B4~1.TXT 将文件 t.txt2 匹配到 t97.txt。类似地,键入 del t97* 将删除这两个文件。


问号 (?):使用问号代替名称中的单个字符。例如,键入:

? dir read???.txt 列出当前目录中所有带有 .txt 扩展名而且以“read”开头并且后面最多跟三个字符的文件,包括 Read.txt、Read1.txt、Read12.txt、Read123.txt 和 Readme1.txt,但是不包括 Readme12.txt。


? 指定文件显示属性

如果使用其 Attributes 中指定多个值的 /a,则 dir 只显示那些带有所有指定属性的文件的名称。例如,如果使用 /a:r-h 或 /ar-h 指定 /a,并以 r 和 -h 作为属性,则 dir 只显示非隐藏的只读文件的名称。

? 指定文件名排序

如 果指定了多个 SortOrder 值,dir 首先通过第一个标准对文件名进行排序,然后再通过第二个标准排序,以此类推。例如,如果使用 /o:e-s 或 /oe-s 指定 /o,并以 e 和 -s 作为 SortOrder 的值,则 dir 将根据扩展名对目录名和文件名从大到小进行排序,然后显示最终结果。按照扩展名字母顺序排序使得没有扩展名的文件名最先显示,目录名次之,然后是具有扩展 名的文件名。

? 使用重定向符号和管线

在使用重定向符号 (>) 将 dir 输出发送到文件,或者使用管线 (|) 将 dir 输出发送到其他命令时,请使用 /a:-d 和 /b 只列出文件名。可以使用 FileName 以及 /b 和 /s 来指定 dir 在当前目录及其子目录中搜索所有匹配 FileName 的文件名。Dir 对查找到的每个文件名只列出其驱动器号、目录名、文件名和文件扩展名、每行一个路径。在使用管线重定向之前,应该在 Autoexec.nt 文件中设置 TEMP 环境变量。

? 预置 dir 参数

通过将带有 DIRCMD 环境变量的 set 命令包含在 Autoexec.nt 文件中,可以预置 dir 参数。可以在 set dircmd 中使用 dir 参数的任意有效组合,其中包括文件的位置和名称。

例如,要使用 DIRCMD 环境变量将宽行显示格式(即 /w)设置为默认格式,请在 Autoexec.nt 文件中键入以下命令:

set dircmd=/w

对于 dir 命令的单次使用,您可以用 DIRCMD 环境变量来覆盖某个参数。为此,请在 dir 命令提示符下键入要覆盖的参数,并在参数前面加上减号。例如:

dir /-w

要更改 DIRCMD 默认设置,请键入:

set=NewParameter

新的默认设置对所有后接的 dir 命令有效,直到再次使用 set dircmd 或重新启动计算机时为止。

要清除所有默认设置,请键入:

set dircmd=

要查看 DIRCMD 环境变量的当前设置,请键入:

set

Set 显示环境变量及其设置的列表。有关设置环境变量的详细信息,请参阅“相关主题”。

? 从“恢复控制台”可以使用包含各种参数的 dir 命令。


示例
要按字母顺序以宽格式一个接一个地显示所有目录,并在显示出每个屏幕后暂停一下,请确保根目录是当前目录,然后键入:

dir /s/w/o/p

Dir 列出根目录的名称、根目录的子目录名称和根目录中文件的名称(包括扩展名)。然后,dir 列出该目录树中每个子目录包含的子目录名和文件名。

要更改前面的示例,使 dir 显示文件名和扩展名而省略目录名,请键入:

dir /s/w/o/p/a:-d

要打印目录列表,请键入:

ir > prn

指定 prn 时,目录列表发送到与 LPT1 端口相连接的打印机上。如果打印机连接在其他端口上,则必须使用正确端口的名称替换 prn。

也可以通过用文件名替换 prn,将 dir 命令的输出重定向到文件。还可以键入路径。例如,要将 dir 输出定向到 Records 目录的 Dir.doc 文件中,请键入:

dir > \records\dir.doc

如果 Dir.doc 不存在,dir 将创建该文件,除非 Records 目录也不存在。在这种情况下,会出现如下消息:

File creation error

要显示驱动器 C 上所有目录中带 .txt 扩展名的所有文件名的列表,请键入:

dir c:\*.txt /w/o/s/p

Dir 以宽格式按字母顺序显示每个目录中匹配文件名的列表,而且每次满屏时暂停,直到您按键继续。

0 comments: