批处理简汇

批处理简汇

基本命令


1.@

作用就是让脚本在执行时不显示后面的echo off部分


2.echo

用法一:可以用它来显示信息!

用法二:可以直接编辑文本文件。 


3.::

注释命令


4.pause

暂停


5.:和goto(不可分开使用)

goto是个跳转命令,跳转到标识的标签处

: 是一个标签


6.%

批处理中的参数


7.if

表示判断的命令


8.if exist

存在判断


9.if errorlevel

结果判断

形式1:IF [NOT] ERRORLEVEL number do command 

形式2:IF [NOT] string1==string2 do command 

形式3:IF [NOT] EXIST filename do command 


10.call

用来从一个批处理脚本中调用另一个批处理脚本


11.find

搜索命令


12.choice 

使用此命令可以让用户输入一个字符

CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]

/C choices 指定要创建的选项列表。默认列表是 "YN"。

/N         在提示符中隐藏选项列表。提示前面的消息得到显示,选项依旧处于启用状态。

/CS        允许选择分大小写的选项。在默认情况下,这个工具是不分大小写的。

/T timeout 做出默认选择之前,暂停的秒数。可接受的值是从 0到 9999。如果指定了 0,就不会有暂停,

           默认选项会得到选择。

/D choice  在 nnnn 秒之后指定默认选项。字符必须在用 /C 选项指定的一组选择中; 

           同时,必须用 /T 指定 nnnn。


/M text    指定提示之前要显示的消息。如果没有指定,工具只显示提示。



管道命令


13.|

让前一命令的输出当做后一命令的输入,可以打到一些附加效果(例如|more 分屏显示)


14.more

可以达到逐屏或逐行显示输出的效果


15.>和>>

输出重定向命令

>会清除掉原有文件中的内容后把新的内容写入原文件

>>只会另起一行追加新的内容到原文件中,而不会改动其中的原有内容


16.<、>&、<& 

<,输入重定向命令,从文件中读入命令输入,而不是从键盘中读入。 

>&,将一个句柄的输出写入到另一个句柄的输入中。 

<&,刚好和>&相反,从一个句柄读取输入并将其写入到另一个句柄输出中。 

组合命令


17.&

组合命令,它的作用是用来连接n个DOS命令,并把这些命令按顺序执行,而不管是否有命令执行失败


18.&&

可以把它前后两个命令组合起来当一个命令来用,与&命令不同之处在于,它在从前往后依次执行被它连接的几个命令时会自动判断是否有某个命令执行出错,一旦发现出错后将不继续执行后面剩下的命令


19.||

利用这种方法在执行多条命令时,当遇到一个执行正确的命令就退出此命令组合,不再继续执行下面的命令

循环命令


20.For 

对一组文件中的每个文件运行指定的命令

命令行:for %variable in (set) do command [command-parameters] 

批处理:for %%variable in (set) docommand [command-parameters] 


%%variable 或 %variable 代表可替换的参数

(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 变量引用的替换修改程序。现在可以使用下列可选的语法(对于任何变量 I): 

变量(使用修改程序) 说明 
%~I 展开删除了周围的任何引号 (") 的 %I 
%~fI 将 %I 展开到完全合格的路径名 
%~dI 只将 %I 展开到驱动器号 
%~pI 只将 %I 展开到路径 
%~nI 只将 %I 展开到文件名 
%~xI 只将 %I 展开到文件扩展名 
%~sI 展开路径以只包含短名称 
%~aI 将 %I 展开到文件的文件属性 
%~tI 将 %I 展开到文件的日期/时间 
%~zI 将 %I 展开到文件大小 
%~$PATH:I 搜索 PATH 环境变量所列出的目录,并将 %I 展开开到第一个找到结果的全部合格名称。如果没有定义环境变量名,或搜索后没有找到文件,则此修改程序将扩展为空字符串。 


修改程序可以合并以获得复杂的结果: 

变量(使用合并的修改程序) 说明 
%~dpI 只将 %I 展开到驱动器号和路径 
%~nxI 只将 %I 展开到文件名和扩展名 
%~fsI 将 %I 展开到只包含短名称的完整路径名 
%~dp$PATH:I 在 PATH 环境变量所列出的目录中搜索 %I,并展开到第一个找到结果的驱动器号和路径 
%~ftzaI 将 %I 扩展到与 dir 相似的输出行 

注意 

在上述范例中,%I 和 PATH 可被其他有效值替换。通过有效的 for 变量名终止 %~ 语法。 
使用大写变量名(例如 %I)可以使代码更具可读性,并且避免与不区分大小写的修改程序混淆。 


Shift 
更改批处理文件中可替换参数的位置。
启用命令扩展(Windows 2000 中的默认设置)后,shift 命令支持 /n 开关,该开关通知命令在第 n 个参数处开始更改,n 可以是从 0 到 8 的任何一个值

筛选器命令 

筛选器命令可以帮助您排序、查看和选择部分命令输出结果。 


more 命令每次显示一屏文件内容或命令输出。 
find 命令在文件和命令输出中搜索指定字符。 
sort 命令按字母顺序排列文件和命令输出。 


要将输入从文件发送到筛选器命令,请使用小于符号 (<)。如果要筛选器命令从其他命令获得输入,请使用管道 (|)。 

21.more详解

命令来控制屏幕显示 

more 命令每次一屏地显示文件的内容或命令输出。例如,下面的 more 命令每次显示一屏 List.txt 文件的内容: 

more < list.txt 

信息显示一屏后,会出现字“More”。要继续显示下一屏,请按键盘上任意键。要停止命令且不查看详细信息,请按CTRL+C 键。 

如果使用产生多屏输出的命令,more 将十分有用。例如,假设定要查看硬盘的目录树。如果 Windows 2000 不能将目录在一屏内全部显示出来,请使用带管道号 (|) 和 more 命令的 tree 命令,如下例所示: 

tree c:\ | more 

tree 命令的第一屏输出被显示,后跟词“More”。Windows 2000 暂停,直到用户按键盘上的任意键为止(PAUSE 键除外)。 

22.find详解

命令搜索文本 

find 命令在一个或多个文件中搜索指定文本。Windows 2000 显示每个包含该文本的行。find 命令可以用作筛选器命令或者标准的 Windows 2000 命令。有关将 find 用作标准的 Windows 2000 命令的信息,请单击“相关主题”列表中的 
find。 

要将 find 当作筛选器命令使用,请包含小于符号 (<) 和搜索的文件名。当输入文件名时,请记住搜索要区分大小写。 
例如,下面的命令查找文件 Trade.txt 中所有的“Pacific Rim”字符串: 

find "Pacific Rim" < trade.txt 

要保存 find 命令的输出而不是显示输出,请使用大于号 (>) 和要存储输出的文件名。例如,下面的命令查找文件 
Trade.txt 中所有的“Pacific Rim”字符串,并将结果保存在 Nwtrade.txt 文件中: 

find "Pacific Rim" < trade.txt > nwtrade.txt 

对文本文件排序 

23.sort详解 

命令按字母顺序排列文本文件或命令的输出。例如,可以使用以下命令对 List.txt 文件的内容进行排序,并在屏幕上显示结果: 

sort < list.txt 

在此范例中,sort 命令对 List.txt 文件的行进行排序并显示结果,但不更改文件。要保存 sort 命令的输出而不是显示输出,请在命令中包含大于号 (>) 和文件名。例如,可以使用以下命令对 List.txt 文件的行按字母顺序排序,并将结果存到 Alphlist.txt 文件中: 

sort < list.txt > alphlist.txt 

要排序命令的输出,请键入后面带有管道 (|) 和 sort 命令的命令。例如,下面的命令对 find 命令的输出结果进行排序: 

find "Jones" maillst.txt | sort 

在键入该命令时,Windows 2000 按字母顺序列出在其中出现“Jones”的行。 

带重定向符的合并命令 

可以将筛选器命令、其他命令和文件名合并以生成自定义命令。例如,可以使用以下命令存储包含“LOG”字符串的文件名: 

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

Windows 2000 通过 find 过滤器命令发送 dir 命令的输出并将包含字符串“Log”的文件名存储在 Loglist.txt 文件中。将结果存储为文件名列表(如,A.log、Logdat.svd 和 Mylog.bat)。 

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

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

因为使用管道 (|),Windows 2000 通过 find 命令发送 dir 命令的输出结果。find 命令只选择包含字符串“Log”的文件名。more 命令每次一屏地显示 find 命令选择的文件名。 
More 
每次显示一个输出屏幕。该命令通常用于查看长文件。可以单独使用此命令,或者使用它控制其他命令的输出,例如 
type 命令。当显示填充可用的查看区域时将出现 more 提示,用户可以输入许多命令来控制查看文件其余部分的方式。 

command name | more [/c] [/p] [/s] [/tn] [+n] 

more [[/c] [/p] [/s] [/tn] [+n]] < [drive:][path] filename 

more [/c] [/p] [/s] [/tn] [+n] [files] 

参数 

[drive:][path] filename 

指定要显示的文件。 

command name 

指定将显示其输出的命令。 

/c 

显示页面前清除屏幕。 

/p 

扩展换页符。 

/s 

将多个空白行更改为一个空白行。 

/tn 

将制表位更改为 n 个空格 

+n 

显示由 n 指定的行开始的第一个文件。 

files 

指定要显示的文件列表。用空格分隔文件名。 

More 子命令 

以下命令在 more 提示 (-- More --) 下接受。 

关键字 好啊作 
space 显示下一页。 
ENTER 显示下一行。 
F 显示下一个文件。 
q 退出。 
? 显示可用命令。 
= 显示行号。 
P n 显示以下 n 行。 
S n 跳过下面 n 行。 
Find 
在一个文件或多个文件中搜索指定的文本字符串。 

当搜索到指定的文件后,find 将显示出包含指定字符串的所有行。 

find [/v] [/c] [/n] "string" [[drive:][path]filename[...]] 

参数 

/v 

显示未包含指定字符串的所有行。 

/c 

只显示包含指定字符串的行数。 

/n 

将文件行号置于每行开头。 

/I 

指定搜索不区分大小写。 

"string" 

指定要搜索的字符组。必须将 string 的文本包括在引号中。 

[drive:][path] filename 

指定要在其中搜索指定字符串的文件的位置和名称。 

Sort命令参数说明
读取输入、排序数据并将结果写到屏幕、文件和其他设备上。 

sort [/r] [/+n] [/m kilobytes] [/l locale] [/rec characters] [[drive1:][path1]filename1] [/t [drive2:] 
[path2]] [/o [drive3:][path3]filename3] 

[command |] sort [/r] [/+n] [/m kilobytes] [/l locale] [/rec characters] [[drive1:][path1]filename1] [/t 
[drive2:][path2]] [/o [drive3:][path3]filename3] 

参数 

/r 

颠倒排序顺序,即从 Z 到 A 排序,然后从 9 到 0 排序。 

/+n 

指定字符位置号 n,sort 在此处开始每次比较。例如,/+3 表示每次比较在每行的第三个字符开始。少于 n 个字符的行在其他行之前排序。默认情况下,比较在每行的第一个字符开始。 

/m kilobytes 

指定用于排序的主内存数量,按千字节 (KB) 计。使用的内存最小值总是 160 KB。如果指定了内存大小,则无论有多少主内存可用,指定的确切数量(但至少 160 KB)的内存将用于排序。 

如果输入输出均为文件,在没有指定大小时,默认最大内存大小为可用主内存的 90%,否则为主内存的 45%。默认设置通常会产生最佳的性能。 

/l locale 

替代由系统默认区域设置定义的字符排序顺序;即在安装 Windows 2000 时选择的语言和“国家(地区)”。目前,默认区域设置唯一的备用选项就是“C”区域设置,该区域设置比自然语言排序快,根据二进制编码对字符排序。 

/rec characters 

指定记录或输入文件的行中的最多字符数(默认值为 4096,最大值为 65535)。 

[drive1:][path1]filename1 

指定要排序的文件。如果没有指定文件名,则对标准输入排序。指定输入文件比将同一文件作为标准输入重定向速度快。 

/t [drive2:][path2] 

指定保留 sort 命令工作存储的目录路径,防止数据不能装入主内存。默认为使用系统临时目录。 

/o [drive3:][path3]filename3 

指定要存储排序后的输入的文件。如果没有指定,数据将写入标准输出。指定输出文件比将同一文件作为标准输出重定向速度快!

你可能感兴趣的:(批处理简汇)