Board logo

标题: 批处理常用命令帮助新译 [打印本页]

作者: wxcute    时间: 2009-1-22 13:11     标题: 批处理常用命令帮助新译

常用内部命令新译

因为原命令行中文帮助有许多错误,为方便大家理解而进行重新翻译。
主要通过原命令行中英文帮助加上个人理解进行重新整理。本人英文差,因此只能利用字典网站查询单词进行翻译,疏漏在所难免,欢迎指正。

◎表示补充说明或示例

———ECHO-——————————————————————————
显示信息,或将命令回显打开或关上。

 ECHO [ON | OFF]
 ECHO [message]

要显示当前回显设置,键入不带参数的 ECHO。
  ◎批处理中命令回显包括控制台提示和键入的命令及其参数。
━━━━━━━━━━━━━━━━━━━━━━━━━━-ECHO━━━

———PAUSE——————————————————————————
中断批处理程序,并显示如下消息:
  请按任意键继续. . .
━━━━━━━━━━━━━━━━━━━━━━━━━━PAUSE━━━

———REM———————————————————————————
用于在批处理文件或 CONFIG.SYS 里添加注解。

REM [comment]
━━━━━━━━━━━━━━━━━━━━━━━━━━━REM━━━

———SET———————————————————————————
显示、设置或删除 cmd.exe 环境变量。

SET [variable=[string]]

 variable 指定环境变量名称。
 string  赋给变量的值(字符串)。

  不带参数的 SET 用来显示当前已经设定的环境变量。

如果命令扩展被启用,SET 会有如下变化:

◎命令扩展指命令扩展功能,CMD 中默认是开启的。

开启:CMD.EXE /E:ON

关闭:CMD.EXE /E:OFF

  SET 命令后面可以只跟一个变量名,而没有等号与值。
  将显示所有类似变量及其值;这些变量的头几个字符与指定的变量一致。
如:

  SET P

会显示所有以字母 P 打头的变量

  SET PA

◎将显示所有以字串 PA 打头的变量

  如果在当前环境中找不到某变量名称,SET 命令将把 ERRORLEVEL 设置成 1。
  不允许变量名中含有等号(◎变量值可以)。

CMD 环境下的 SET 命令添加了两个新的参数:

 SET /A expression
 SET /P variable=[promptString]

  /A 参数表示等号右边的字符串被当做数值计算表达式。
  该表达式支持如下运算:(优先级依次递减)

  ()          - 分组运算
  ! ~ -        - 一元运算符(非反负)
    * / %        - 算数运算符(乘除取余)
    + -         - 算数运算符(加减)
    << >>        - 逻辑运算符之移位(左移右移)
    &          - 位运算符之与
    ^          - 位运算符之异或
    |          - 位运算符之或
    = *= /= %= += -=   - 赋值运算符
      &= ^= |= <<= >>=
    ,          - 表达式分隔符

  如果您使用了逻辑或取余运算,请用引号将表达式括起来。
  表达式中任何非数字字符串会被看成变量,且使用前会转化为变量的数值。
  如果变量不存在,将取值为 0。
  这样你就可以在表达式中直接使用变量名,而不用给变量名加 % 百分号来得到值了。

  在 CMD 下执行 SET /A 将显示表达式结果。
  赋值运算符左边必须有一个变量。

  数字一般用十进制,加 0x 前缀表示十六进制,加 0 前缀表示八进制。
  因此 0x12、18 和 022 表示的数是相同的。
  八进制写法容易混淆出错,如 08 和 09 都是无效的,因为 8 和 9 都不是八进制的数码。

◎八进制中 8 为基数,0 到 7 为数码。

  /P 参数表示可以将用户输入内容赋值给变量。
  这个参数还可以显示指定的提示信息,写在等号右边。
  当然也可以不写提示信息。

◎示例:SET /P STR=ENTER HERE:
  其中 STR 为变量名,"ENTER HERE:" 为提示信息。

变量替换已作如下增强:

    %PATH:str1=str2%

  此用法能扩展环境变量,示例里变量中所有 "str1" 字符串将被替换为 "str2" 字符串。当然 "str2" 也可以是空字符串,作用就是删除变量中的 "str1" 字符串。
  "str1" 可以以星号打头,这时 "*str1" 代表了第一个出现的 "str1" 字符串及其前面的所有字符。

◎示例:%VAR:*WIN=%,表示将变量 VAR 中第一个 WIN 字符串及其前面的字符替换为空。

此扩展(功能)使我们可以截取变量中的部分字符串:

    %PATH:~10,5%

    此扩展将截取变量中从第 11 个(偏移量 10)字符开始的五个字符。
    如果没有指定长度,将默认截取剩余的字符。

◎示例:%PATH:~10%,截取从第 11 个字符开始到结束的所有字符。

如果偏移量或长度是负数,则实际的偏移量或长度是变量长度加上指定数字。

◎示例:SET STR=0123456789
  
  %STR:~-5,-3%

  
  等同于:%STR:~5,2%
  
  STR 变量长度是 10,10+(-5)=10-5=5,10-5-3=5-3=2

示例:

  %PATH:~-10%

截取变量 PATH 最后十个字符。

  %PATH:~0,-2%

  截取除最后两个字符之外的所有字符,即去掉最后两个字符。
  当偏移是 0 的时候可以省略不写。

◎示例:%PATH:~,-2%

  最后讲解一下延迟环境变量扩展的功能,即变量延迟解析功能。
  此功能默认是停用的,可以通过 CMD.EXE 的 /V 参数来设置开启或关闭。参阅 CMD /?
  当然也可以通过 SETLOCAL ENABLEDELAYEDEXPANSION 来开启。

◎注:一条复合语句被看作是一行。
   批处理是一行一行读取并运行的。
   因此一条复合语句无论写成多少行,也是一次性读取的。

  在一行(复合语句)中用 % 引用变量会有限制,启用变量延迟可以打破这种限制。下面这个例子可以说明直接用 % 引用变量的问题:

  set VAR=before
  if "%VAR%" == "before" (
    set VAR=after
    if "%VAR%" == "after" @echo If you see this, it worked.
  )

  将不显示消息,因为两个 IF 语句中的 %VAR% 在读取第一个 IF 语句时就会被变量 VAR 的值替代;因为 IF 语句是是一个复合语句。
  因此,复合语句中的 IF 实际上是在比较 "before" 和 "after",这两者永远不会相等。
  同样,以下这个例子也达不到预期效果:

  set LIST=
  for %i in (*) do set LIST=%LIST% %i
  echo %LIST%

  因为它无法将目录下所有文件赋值给变量 LIST,取而代之的是将找到的最后一个文件赋值给变量 LIST。
  再次说明,在读取 FOR 语句时 %LIST% 已经被变量值替代,而这时 LIST 变量是空值。
  因此上面的 FOR 循环相当于:

  for %i in (*) do set LIST= %i

  这条语句两样是将变量 LIST 设置成找到的最后一个文件。

  变量延迟功能允许你使用另一个字符(感叹号)来引用变量。
  当变量延迟被开启时,上面的俩例子写成如下形式就可以达到预期效果了:

  set VAR=before
  if "%VAR%" == "before" (
    set VAR=after
    if "!VAR!" == "after" @echo If you see this, it worked.
  )

  set LIST=
  for %i in (*) do set LIST=!LIST! %i
  echo %LIST%

  当命令扩展被启用,还有以下几个动态环境变量可以这样引用。
  这几个变量不会出现在 SET 显示的变量列表中,它们的值可能会随时变动。
  如果用户用这些变量名称来定义变量,则会替代原有的值,从而失去了变化的可能。

◎示例:
  SET CD=GOOD,%CD% 就等同于 "GOOD" 字符串了。
  SET CD=
  用不带值的 SET 语句可以还原动态环境变量。

%CD%        - 扩充为当前目录。
%DATE%       - 扩充为当前日期。
%TIME%       - 扩充为当前时间。
%RANDOM%      - 扩充为 0 到 32767 的随机数。
%ERRORLEVEL%    - 扩充为当前的错误返回码。
%CMDEXTVERSION%   - 扩充为当前命令处理器命令扩展版本号。
%CMDCMDLINE%    - 扩充为调用命令处理器的原始命令行,即控制台路径。
━━━━━━━━━━━━━━━━━━━━━━━━━━━SET━━━

———FOR———————————————————————————
对一组文件中的每一个文件执行指定命令。

FOR %variable IN (set) DO command [command-parameters]

 %variable      指定一个字母(字符)作为参数。
 (set)        指定一个或一组文件。可以使用通配符。
 command       指定对每个文件执行的命令。
 command-parameters  为命令指定参数或命令行开关。

在批处理程序中使用时,要用 %%variable 来代替 %variable。
且这个变量区分大小写,所以 %i 与 %I 是不同的。

若命令扩展被启用,我们还可以使用下列这些扩展的 FOR 命令格式:

FOR /D %variable IN (set) DO command [command-parameters]

  ◎(set) 意为集合、序列
  若序列中包含通配符,则与目录名匹配,而不与文件名匹配。

FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]

  ◎枚举也称遍历,默认为列出该目录及子目录下所有文件。
  /R 参数默认只列出文件而不列目录,且不含隐藏文件。
  遍历以 [drive:]path 为根的目录树,对目录树中所有文件执行 FOR 中的命令。
  如果在 /R 参数后没有指定目录,则使用当前目录。
  如果集合仅为一个单点(.)字符,则枚举目录。

FOR /L %variable IN (start,step,end) DO command [command-parameters]

  ◎步长又叫增量
  用 /L 参数时集合是一个数字序列,格式为:初值,步长,终值。
  因此 (1,1,5) 将生成 1 2 3 4 5 序列供变量使用,
  同理 (5,-1,1) 将产生 5 4 3 2 1 序列。

FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]

  如果使用了 usebackq 选项,则格式如下:

FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ('string') DO command [command-parameters]
FOR /F ["options"] %variable IN (`command`) DO command [command-parameters]

  ◎file-set 表示一个或多个文件。这些文件将被依次打开、读取并处理。
  处理过程包括将文件分成一行一行,再分解成若干列。
  再将各列的字符串赋值给 FOR 循环体中的变量。
  如果分隔符隔开的第一列是空的,/F 参数会跳过它;即从第二列开始算。
  另外,/F 参数还会跳过空行。
  您可通过指定 "options" 选项参数来替代默认的解析操作。
  选项参数必须用引号括起来,包含以下选项关键字:

 eol=c           - 指定注释行的第一个字符
 skip=n          - 读取文件时忽略的行数。
          ◎忽略即跳过
 delims=xxx      - 指定分隔字符集。默认分隔符为空格与制表符
          ◎制表符即跳格键 TAB
 tokens=x,y,m-n  - ◎其中 x、y、m 和 n 都是数字
          指定哪些列要传递给 FOR 循环体处理。
          若不止一列,FOR 将按数字大小依次分配新变量。
          m-n 指的是一个范围,即从第 m 到第 n 列。
          如果最后一个字符是 * 星号,将分配一个新变量来表示最大列序号之后的所有字符串。
 usebackq        - 指定在 file-set 序列中使用一种新语法,
          使用反单引号引用的是命令,单引号引用的是字符串,双引号则引用文件名。

以下示例可帮助理解:

FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k

  此 FOR 语句会分析 myfile.txt 文件的每一行,其中跳过以 ; 分号开头的行,以 , 逗号和/或空格作为分隔符,传送第二列和第三列给 FOR 循环体使用。
  这样,在这个 FOR 语句中我们可以引用 %i 来表示第二列,%j 来表示第三列,还有用 %k 来表示第三列之后的所有内容。
  对于带有空格的文件名,要用双引号将文件名括起来;
  要这样使用文件,usebackq 选项也必不可少。
  直接使用双引号时,引号中的内容将被分析成文本字符串。

  变量 %i 直接在 FOR 语句中声明,而变量 %j 和 %k 是通过 tokens 选项得到声明的。
  tokens 选项最多可以将一行分成 26 列,因为用小写字母作变量名是不能超出 "z",用大写字母时不能超出 "Z"。
  注意:FOR 语句中的变量是单一字母,且区分大小写。
  最多同时使用 52 个,再多就不行了。

  ◎实际上除了字母,数字、部分符号和汉字等也可以用作变量名,当然一个变量对应一个字符。
  ◎tokens 选项最多可分 31 列,同时使用 52 个以上变量也没有问题。

  FOR /F 可以用来直接分析字符串,方法是用引号将文本内容括起来。相当于文件中的一行。

  ◎示例:FOR /F %i IN ("How do you do.") DO @echo %i

      FOR /F "usebackq" %i IN ('Good morning.') DO @echo %i

  ◎用了 usebackq 选项时则用单引号。


  最后一点,FOR /F 可以用来分析命令的输出内容。
  使用方法是用反单引号将 file-set 序列内容括起来。

  ◎这时反单引号作用同单引号
  ◎这时的 file-set 序列是一条命令或复合语句

  file-set 内容会被解析成一条命令,此命令会传递给一子 CMD.EXE 进程执行,执行的输出结果放进内存供 FOR 语句使用,与 FOR 语句分析文件别无二致。
  所以,下面这个例子:

  FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i

  会列出当前所有环境变量名称。

另外,FOR 中的变量已被增强,我们可以使用下列句法来引用变量:

  %~I     - 扩充 %I 为删除外围 " 引号(有就删)
  %~fI    - 扩充 %I 为一个完整的路径
  %~dI    - 仅扩充 %I 为一个驱动器号
  %~pI    - 仅扩充 %I 为一个路径
  %~nI    - 仅扩充 %I 为一个文件名
  %~xI    - 仅扩充 %I 为一个文件扩展名
  %~sI    - 扩充 %I 为完整的短名路径
  %~aI    - 扩充 %I 为文件的属性(ARSH)
  %~tI    - 扩充 %I 为文件的日期时间(修改时间)
  %~zI    - 扩充 %I 为文件的大小(字节计)
  %~$PATH:I  -
变量可以是其他的,如:WinDIR、ProgramFiles 等
         在环境变量 PATH 指定的路径中搜索文件,
         扩充 %I 为找到的第一个文件的完整路径;
         若未找到文件,则扩充 %I 为空。

组合扩展参数效果:

    %~dpI    - 仅扩充 %I 为驱动器号和路径
    %~nxI    - 仅扩充 %I 为文件名加扩展名
    %~fsI    - 扩充 %I 为完整的短名路径(同 %~sI)
    %~dp$PATH:I - 搜索变量 PATH 中的路径,
          仅扩充 %I 为找到的第一个文件驱动器号和路径。
    %~ftzaI   - 扩充 %I 为类似 DIR 命令的输出格式

以上例子中,%I 和 PATH 可用其他有效的变量替代。
%~ 百分号加波浪线用法是后面必须跟有效的 FOR 变量名。
推荐使用诸如 %I 的大写变量名,这样不仅易读且可避免混淆。
◎当然这是因人而异的。
━━━━━━━━━━━━━━━━━━━━━━━━━━━FOR━━━

———IF-———————————————————————————
批处理程序中的条件处理。

IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command

 NOT         指定条件为“假”的时候 XP 系统才执行后面的命令

 ERRORLEVEL number  当返回码大于等于指定数字时条件为“真”。

 string1==string2  匹配即完全相同
           如果前后两个字符串完全相同,则条件为“真”。

 EXIST filename   如果指定文件存在,则条件为“真”。

 command       条件为“真”时执行指定的命令。
           后跟一个 ELSE command,作为条件为“假”时执行的命令。

复合语句可以通过使用括号 () 写成多行,但解析时被当作一行。
ELSE 分句必须与 IF 在同一行上,例如:

  IF EXIST filename (
    del filename
  ) ELSE (
    echo filename missing.
  )

下面这句不会起效,因为 DEL 命令执行的输出结果会分行:

  IF EXIST filename del filename ELSE echo filename missing

  ◎正确写法:IF EXIST file (del file) ELSE echo file missing

下面这个同样不起效,◎因为写成了两行:

  IF EXIST filename del filename
  ELSE echo filename missing

假如放在同一行上就有效了,如下:

  IF EXIST filename (del filename) ELSE echo filename missing

如果命令扩展被启用,IF 会有如下变化:

  IF  string1 compare-op string2 command
  IF CMDEXTVERSION number command
  IF DEFINED variable command

比较运算符有:

  EQU - equal         等于
  NEQ - not equal       不等于
  LSS - less than       小于
  LEQ - less than or equal   小于等于
  GTR - greater than      大于
  GEQ - greater than or equal 大于等于

  如果指定了 /I 参数,则比较字符串时不分大小写。
  这个参数同样适用于 string1==string2 形式的 IF 语句。
  一般情况下 string1 和 string2 都是数字,
  如果其中一个或两个都是字符串,字符串会被转换成数字进行比较。

  CMDEXTVERSION 的工作原理同 ERRORLEVEL,区别在于是用命令扩展的内部版本号来与数字进行比较。
  其第一版本是 1。当对命令扩展功能做重大调整时版本号会增加 1。
  而当命令扩展被停用时,CMDEXTVERSION 条件永远是“假”。

  DEFINED 的工作原理与 EXIST 一样,后面跟一个变量名,如果环境变量存在,则返回的结果是“真”。

  使用 %ERRORLEVEL% 来引用错误返回码的值,如果你定义了 ERRORLEVEL 这个变量则引用变量值。
  执行了一个程序或命令后,就会有返回码,示例如下:
  ◎部分命令没有返回码

  goto answer%ERRORLEVEL%
  :answer0
  echo Program had return code 0
  :answer1
  echo Program had return code 1

当然也可以将 %ERRORLEVEL% 当作数字比较:

    IF %ERRORLEVEL% LEQ 1 goto okay

我们用 %CMDCMDLINE% 表示 CMD.EXE 的原始命令行的完整路径,
如果已经定义了 CMDCMDLINE 变量,则引用变量值。

引用 %CMDEXTVERSION% 来返回命令扩展的版本号,
如果已经定义了变量 CMDEXTVERSION,则返回定义的变量值。

  ◎当我们定义变量时使用了一个已有的环境变量名,原值将会被覆盖。
  可用定义空值的方法来还原,示例:

  SET CMDEXTVERSION=OK  用字符串 OK 替代了命令扩展版本号
  SET CMDEXTVERSION=   定义空值,还原其版本号
━━━━━━━━━━━━━━━━━━━━━━━━━━
-IF━━━

———SHIFT——————————————————————————
更改批处理文件中可替换型参数的位置。

SHIFT [/n]

  ◎单独的 SHIFT 与 SHIFT /1 等同
  ◎开关即开关参数,有时也表述为参数

如果命令扩展被启用,SHIFT 命令支持 /n 开关。
该开关表示从某命令的第 n 个可替换型参数开始移位。
其中 n 的值为 0 到 8。例如:

  SHIFT /2

会将 %3 移位到 %2,%4 移位到 %3,如此类推。不影响 %0 和 %1。
━━━━━━━━━━━━━━━━━━━━━━━━━━SHIFT━━━

———GOTO-——————————————————————————
跳转到批处理程序中的指定标签行处。
  ◎CMD.EXE 将从指定标签行处逐行运行

GOTO label

 label  指定批处理程序中的标签。

标签必须独占一行,并且以冒号打头。

◎示例:
ABLE
:END_BATCH

◎GOTO 常用写法示例:
 GOTO LABLE
 GOTO :LABLE
 GOTO :EOF
 GOTO:LABLE

如果命令扩展被启用,GOTO 会有如下变化:

◎特殊标签 :EOF 无需定义
GOTO 命令后面可跟 :EOF 这个特殊标签,表示跳转到当前批处理的结尾。方便我们结束批处理。

CALL 语句调用标签类子过程的情况比较特殊。
键入 CALL /? 查看 CALL 命令中 GOTO :EOF 的特殊用法。

◎特:如果定义了 :EOF 这样一个标签,
   则使用 GOTO EOF 来跳转到这个标签,
   仍使用 GOTO :EOF 来结束当前脚本。
━━━━━━━━━━━━━━━━━━━━━━━━━━-GOTO━━━

———CALL-——————————————————————————
调用另一个批处理程序
  ◎也可以是标签类子过程

CALL [drive:][path]filename [batch-parameters]

 batch-parameters  指定信息作为批处理的参数

如果命令扩展被启用,CALL 会有如下变化:

CALL 命令后面跟标签,表示调用子过程。语法如下:
  ◎其中 arguments 为传递给标签子过程的参数

  CALL :label arguments

  子过程相当于一个新批处理文件,控制台会跳转到指定标签处。
  因此结束时我们需要“退出”两次,首先是子过程,
  退出子过程时控制台将回到 CALL 语句的下一行;
  之后还要退出批处理脚本。
  ◎结束子过程使用 GOTO :EOF
  详情参见 GOTO /? 帮助中的 GOTO :EOF 这个扩展功能,看看它是怎么从一个脚本“返回”的。

另外,批处理脚本支持以下参数(%0、%1 等等),并且参数调用已做如下增强:

  脚本里的 %* 代表所有参数(如:%1 %2 %3 %4 %5……)
  ◎但不包括 %0

参数 %n 的增强语法如下,以 %1 为例:

  %~1     - 扩充 %1 时删除引号(")
  %~f1    - 扩充 %1 为完整路径
  %~d1        - 仅扩充 %1 为驱动器号
  %~p1    - 仅扩充 %1 为路径
  %~n1    - 仅扩充 %1 为文件名
  %~x1    - 仅扩充 %1 为文件扩展名
  %~s1    - 扩充 %1 为完整的短名路径
  %~a1    - 扩充 %1 为文件属性
  %~t1    - 扩充 %1 为文件日期/时间(修改时间)
  %~z1    - 扩充 %1 为文件大小
  %~$PATH:1  - 在环境变量 PATH 指定的路径中搜索文件,
         扩充 %1 为找到的第一个文件的完整路径;
         若未找到文件或未定义 PATH 变量,则扩充 %1 为空。

组合扩展参数效果:

  %~dp1    - 仅扩充 %1 为驱动器号和路径
  %~nx1    - 仅扩充 %1 为文件名加扩展名
  %~dp$PATH:1 - 搜索变量 PATH 中的路径,
          仅扩充 %1 为找到的第一个文件驱动器号和路径。
  %~ftza1   - 扩充 %1 为类似 DIR 命令的输出格式

以上例子中,%1 和 PATH 可用其他有效的变量替代。
%~ 百分号加波浪线的用法是后面必须跟有效的参数数字,此用法对 %* 不适用。
━━━━━━━━━━━━━━━━━━━━━━━━━━-CALL━━━


[ 本帖最后由 wxcute 于 2009-1-30 13:45 编辑 ]
作者: wxcute    时间: 2009-1-22 15:59

2009-02-05 完成。

———DIR————————————————————————
列出目录中的文件与子目录。

DIR [drive:][path][filename] [/A[[:]attributes]]  [/C] [/D] [/L] [/N]
  [/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]

  attributes  属性,可有多个
  sortorder  排列顺序,一个
  timefield  时间域,一个

 [drive:][path][filename]
        指定具体要列表显示的驱动器、目录或文件。
        

 /A      显示指定属性集的文件(可指定多个属性)
  attributes  D 目录           R 只读
        H 隐藏           A 存档
        S 系统           - 用在其他属性前面,“非”XX(属性)的前缀。
                        如:-D,非目录,即文件
                        -H,非隐藏
 /B      简明列表方式(只有文件名)
        与 /S 结合使用将显示文件完整路径的列表
 /C      在文件大小显示中有千位数分隔符,这是默认值。
        用 /-C 来停用分隔符显示。
 /D      跟 /W 类似,但文件是按栏分类列出的。
        即一列列排,一列排满排下一列
 /L      用小写字母来显示
 /N      新的长列表格式,文件名在最右边。默认值
        /-N 文件名在最左边,且显示为 8.3 文件名格式
        此为 DOS 遗留参数
 /O      按指定顺序显示文件
 sortorder  N 按文件名(字母顺序)    S 按大小(小在前)
               E 按扩展名(字母顺序)    D 按时间(旧在前)
               G 按类别(目录在前)     - 用在其他排列方式前面,颠倒顺序的前缀。
                         如:-S,按大小,大在前
                           -G,按类别,文件在前
 /P      满屏时暂停。
        用于一屏显示不下时,暂停后按任意键下一屏,直到显示完。
 /Q      显示文件所有者,即创建者。
 /S      显示指定目录及所有子目录文件。
 /T      用来显示或排列的时间域
        控制排列顺序时与 /O 结合使用
 timefield   C 创建时间
        A 访问时间,最后访问时间
        W 修改时间(默认),即上次写入时间
 /W      用宽列表格式。(只显示文件名)
        一行行排,一行排满排下一行
 /X      显示非 8.3 文件名产生的短名称。
        短名称插放在长名称前面一列。
        如果没有短名称,则该位置显示空白。
 /4      显示 4 位数字年份,默认

DIR 默认与之同:DIR /-A /C /N /T:W /4
        DIR /A:-S-H /C /N /T:W /4
参数归类:
/B /D /N /W   列表显示方式
/C /L /Q /X /4 显示细节
/A /B /S    最常用的参数

可以在 CMD 环境变量中预先设定参数。
我们通过添加前缀 -(破折号)又可以替代并取消预先设定的参数,如:/-W。

具体示例:SET DIR=DIR /W
取消参数:%DIR% /-W
━━━━━━━━━━━━━━━━━━━━━━━━━
DIR━━━

———CD-———————————————————————————
显示当前目录名或更改驱动器下当前目录。

CHDIR [/D] [drive:][path]
CHDIR [..]
CD [/D] [drive:][path]
CD [..]

 ..  回到父目录

键入 CD 驱动器: 显示指定驱动器中的当前目录。
如:CD D:,将显示驱动器 D: 中的当前目录。
只键入 CD 将显示当前驱动器与当前目录路径。

使用 /D 参数,除了更改驱动器下的当前目录还更改当前驱动器。
如:
  当前驱动器及目录为 C:\WINDOWS,要进入 D:\SOFT 可使用

  CD /D D:\SOFT

  效果等同于

  D:
  CD D:\SOFT

如果命令扩展被启用(默认是启用的),命令 CHDIR/CD 会有如下改变:

一、不区分大小写;
命令中代表目录的字符串会自动转化为磁盘上目录大小写样式。
如:CD C:\TEMP,是能够将当前目录设为 C:\Temp 的。

二、不拿空格当分隔符。

例如这个:cd \winnt\profiles\username\programs\start menu
与之等同:cd "\winnt\profiles\username\programs\start menu"

但如果命令扩展未启用就要使用后者,即有空格的路径要用双引号括起来。
━━━━━━━━━━━━━━━━━━━━━━━━━━━-CD━━━

———MD-———————————————————————————
创建目录

MKDIR [drive:]path
MD [drive:]path

如果命令扩展被启用,MKDIR/MD 会有如下改变:

此命令能创建中间目录,如果这些目录不存在。
如:假设不存在目录 \a,即根目录下无 a 这个目录。

则:md \a\b\c\d

等同于:
  md \a
  cd \a
  md b
  cd b
  md c
  cd c
  md d

但如果命令扩展被停用,则要使用后者,即麻烦的这种。
启用命令扩展:CMD /E:ON
停用命令扩展:CMD /E:OFF

启用命令扩展:SETLOCAL ENABLEEXTENSIONS
停用命令扩展:
SETLOCAL DISABLEEXTENSIONS
━━━━━━━━━━━━━━━━━━━━━━━━━━━-MD━━━

———RD-———————————————————————————
移除(删除)一个目录

RMDIR [/S] [/Q] [drive:]path
RD [/S] [/Q] [drive:]path

单独使用时是用于删除空目录。

 /S  除删除目录本身外,还删除指定目录下的所有子目录和文件。
    用于删除目录树。

 /Q  安静模式,用 /S 参数删除目录树时不要求确认。
━━━━━━━━━━━━━━━━━━━━━━━━━━━-RD━━━

———TYPE-——————————————————————————
显示一个或多个文本文件内容。

TYPE [drive:][path]filename

  可使用通配符

━━━━━━━━━━━━━━━━━━━━━━━━━━-TYPE━━━

———DEL———————————————————————————
删除一个或多个文件。

DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names

 names     指定一个或多个文件或者目录的列表。
        通配符可用来删除相同类型的一组文件。
        如果指定的是一个目录,则目录中的所有文件都会被删除。
        默认指非只读、非隐藏和非系统属性的文件。

 /P      删除每一个文件之前提示确认。
 /F      强制删除只读文件。
 /S      删除时也包括所有子目录的指定文件。
 /Q      安静模式,使用全局通配符时不要求确认。
 /A      根据属性选择要删除的文件。
 attributes  R 只读          S 系统
        H 隐藏          A 存档
        - 用在其他属性前面,“非”XX(属性)的前缀。
          如:-R,非只读
            -S,非系统

如果命令扩展被启用,DEL/ERASE 会有如下变化:

使用 /S 参数时,其显示语法是只显示已经删除的文件,而不显示找不到的文件。
条件是至少存在一个符合删除条件的文件。
即只要存在一个符合条件的文件,遍历到其他找不到文件的子目录时不会显示错误信息。
━━━━━━━━━━━━━━━━━━━━━━━━━━━DEL━━━

———REN———————————————————————————
重命名一个或多个文件。
[内部命令][支持通配符]

RENAME [drive:][path]filename1 filename2
REN [drive:][path]filename1 filename2

注意:新文件名不能包含驱动器或路径。
━━━━━━━━━━━━━━━━━━━━━━━━━━━REN━━━

———MOVE-——————————————————————————
移动文件或目录同时可对其进行重命名。

移动一个或多个文件:
MOVE [/Y | /-Y] [drive:][path]filename1[,...] destination

移动时重命名一个目录:
MOVE [/Y | /-Y] [drive:][path]dirname1 dirname2

 [drive:][path]filename1
           指定想移动的文件位置和名称(多个文件用逗号隔开)。
 destination     指定文件的新位置。新位置可以是一个完整的目录路径。
           如果只移动一个文件,并且想同时重命名文件,还可以加上新的文件名。

 [drive:][path]dirname1
           指定要重命名的目录。
 dirname2      指定目录的新名称。

 /Y         改写一个已存在目标时不要求确认。
 /-Y         覆盖一个现有目标时会发出提示。

参数 /Y 可以在 CMD 环境变量中设定。当然也可以加 /-Y 来代替这个设定。
默认情况下,即不带参数时 CMD 下都会发出提示;
而放在批处理脚本内执行则默认无提示。
━━━━━━━━━━━━━━━━━━━━━━━━━━-MOVE━━━

———COPY-——————————————————————————
将一个或多个文件复制到另一个位置。

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

 source    指定一个或多个要复制的文件。
 /A      表示复制的是一个 ASCII 文本文件。
 /B      表示复制的是一个二进制文件。
 /D      允许创建解译的目标文件。
  destination  设定目的地的目录和新文件名。
 /V      验证新文件的正确性。
 /N      复制非 8.3 名称的文件时,使用其短文件名。
 /Y      覆盖已有文件时不要求确认。
 /-Y      改写现有文件时提示确认。
 /Z      用重启模式复制网络文件。

参数 /Y 可以在 CMD 环境变量中预先设定。
预设定后可以用 /-Y 参数来取消。
默认在 CMD 环境中改写文件时会提示;而从批处理脚本执行时则不提示。

如要合并多个文件,则指定一个目标文件,而原文件使用通配符或如下格式:file1+file2+file3
━━━━━━━━━━━━━━━━━━━━━━━━━━-COPY━━━

———CLS———————————————————————————
清除屏幕内容。

CLS

◎是一种特殊的输出类型,控制输出。
━━━━━━━━━━━━━━━━━━━━━━━━━━━CLS━━━

———DATE-——————————————————————————
显示或设置日期。

DATE [/T | date]

键入不带参数的 DATE,用来显示当前日期和输入新日期。
提示输入时直接按回车将保留原有日期设置。

当命令扩展被启用,DATE 命令支持 /T 参数。
/T 参数表示只显示当前日期,而不提示输入新日期。
━━━━━━━━━━━━━━━━━━━━━━━━━━-DATE━━━

———TIME-——————————————————————————
显示或设置系统时间。

TIME [/T | time]

不带参数的 TIME 命令用来显示当前时间和输入新时间。
提示输入新时间时按回车将保留原时间。

若启用命令扩展,TIME 命令将支持 /T 参数。
/T 参数表示只显示当前时间,而不提示输入新时间。
  ECHO %TIME% 也可以用来显示时间,而且能精确到毫秒。
━━━━━━━━━━━━━━━━━━━━━━━━━━-TIME━━━


[ 本帖最后由 wxcute 于 2009-2-5 21:39 编辑 ]
作者: wxcute    时间: 2009-1-22 16:11

2009-02-28 周六完成。

———ASSOC——————————————————————————
显示或修改文件关联。

ASSOC [.ext[=[fileType]]]

 .ext   指定文件扩展名

 fileType 指定文件类型

举例:ASSOC .TXT=TXTFILE
   将 .TXT 扩展名的文件设定为 TXTFILE 类型;
   ASSOC TXTFILE=文本文件
   将 TXTFILE 文件
类型描述设为 “文本文件”。

键入不带参数的 ASSOC 命令将显示当前所有文件类型的关联。
如果 ASSOC 命令后面只跟一个扩展名,将显示该扩展名的文件类型。
如果不指定文件类型,将删除该扩展名的关联。(已经不起作用了)
━━━━━━━━━━━━━━━━━━━━━━━━━━ASSOC━━━

———COLOR——————————————————————————
设置控制台的前景色和背景色。

COLOR [attr]

 attr   指定控制台支持的颜色属性

颜色属性由两个十六进制数字表示 —— 第一个为背景,第二个为前景。
定义如下:

  0 = 黑色    8 = 灰色
  1 = 蓝色    9 = 亮蓝色
  2 = 绿色    A = 亮绿色
  3 = 青色    B = 亮青色
  4 = 红色    C = 亮红色
  5 = 紫色    D = 亮紫色
  6 = 黄色    E = 亮黄色
  7 = 白色      F = 亮白色

  其中 0 - 7 颜色较深、较暗,8 - F 较浅、较亮。
  若 COLOR 后只跟一个数字,该数字表示前景色。
  前景色即文字颜色

使用 COLOE 命令未指定参数表示将控制台颜色还原为 CMD.EXE 启动时的颜色。
此默认值由 CMD.EXE /T 或注册表的 DWORD 值 DefaultColor 来设定。

若设置的前景与背景色相同,COLOR 命令的错误返回码为 1。
且颜色不变。

示例:COLOR FC 表示设置亮白底、亮红字
   COLOR 70 表示设置白底黑字
━━━━━━━━━━━━━━━━━━━━━━━━━━COLOR━━━

———DPATH——————————————————————————
允许程序像在当前目录中那样打开指定目录的文件。
  即不需要写路径,直接输入文件名即可。
  只允许读取文件,不允许改写文件。
  与原文出入较大。

DPATH [[drive:]path[;...]]
DPATH ;

 [drive:]path 指定要附加的驱动器和目录。

键入 DPATH ; 用来清空附加目录列表。
键入不带参数的 DPATH 用来显示附加目录列表。
━━━━━━━━━━━━━━━━━━━━━━━━━━DPATH━━━

———ENDLOCAL-————————————————————————
结束批处理文件中局部变量的使用。
执行 ENDLOCAL 之后,设置的变量不再是局部变量而是全局变量;
而且批处理文件结束后,局部变量是无法还原的。
  最后一句是对于在 CMD 下运行批处理而言的。

ENDLOCAL


如果命令扩展被启用,ENDLOCAL 会有如下变化:

如果用 SETLOCAL 命令的 ENABLEEXTENSIONS / DISABLEEXTENSIONS 选项启用/停用了命令扩展,
那么在 ENDLOCAL 命令之后,命令扩展功能的启用/停用状态将恢复到其对应的 SETLOCAL 命令前的状态。
━━━━━━━━━━━━━━━━━━━━━━━━-ENDLOCAL━━━

———EXIT-——————————————————————————
退出 CMD.EXE 程序(命令解释程序)或当前批处理脚本。
  命令解释程序即控制台

EXIT  [exitCode]

 /B     指退出当前批处理脚本而不是 CMD.EXE。
       如果不是从批处理脚本执行则退出 CMD.EXE。

 exitCode  指定一个数字。
       如果使用了 /B 参数,则将 ERRORLEVEL 设成这个数。
       如果是退出 CMD.EXE,则设为过程退出码。
━━━━━━━━━━━━━━━━━━━━━━━━━━-EXIT━━━

———FTYPE——————————————————————————
显示或修改某一文件类型的打开方式。

FTYPE [fileType[=[openCommandString]]]

 fileType  指定要显示或修改的文件类型
  openCommandString
       为某种类型文件指定默认打开命令。(即指定打开方式)

输入不带参数的 FTYPE 用来显示当前所有已登记文件类型的打开方式。
如果 FTYPE 后面只跟一个文件类型,那么将显示此文件类型的打开方式。
如果不指定打开方式,将删除某类型文件的默认打开方式。
在打开方式中 %0、%1 将被替换成相应文件名后再处理。
%* 代表所有参数,其中 %2 代表第一个参数,%3 为第二个,依次类推。
%~n 代表第 n 个及 n 之后的所有参数,n 在 2 到 9 之间。
例如:

  ASSOC .pl=PerlScript
  FTYPE PerlScript=perl.exe %1 %*

允许您这样使用 Perl 脚本:
  Perl 是一种自由且功能强大的编程语言。

  script.pl 1 2 3

如果不想输入扩展名,则定义如下变量:

  set PATHEXT=.pl;%PATHEXT%

以上脚本就可以这样使用了:

  script 1 2 3
━━━━━━━━━━━━━━━━━━━━━━━━━━FTYPE━━━

———PATH-——————————————————————————
为可执行文件设置一个搜索路径或显示这个路径。
  搜索路径即不需要输入完整路径而只输入文件名就能执行程序的路径。
  例如在 %WINDIR% 目录下的程序在任意目录下都能执行。

PATH [[drive:]path[;...][;%PATH%]
PATH ;

输入 PATH ; 用于清除所有默认的搜索路径,让控制台只在当前目录下搜索。
输入不带参数的 PATH 用于显示当前的搜索路径。
在设置新路径时加上 %PATH% 会在原搜索路径基础上追加新路径。
  其中多个路径用 ; 分号隔开。
━━━━━━━━━━━━━━━━━━━━━━━━━━-PATH━━━

———POPD-——————————————————————————
跳转到 PUSHD 命令保存的目录里。
  命令 PUSHD 会保存一系列目录,参见其帮助。

POPD

如果命令扩展被启用,POPD 命令将会删除由 PUSHD 创建的临时驱动器,
条件是当 POPD 从 PUSHD 命令保存的目录堆栈中取走那个驱动器目录时。
━━━━━━━━━━━━━━━━━━━━━━━━━━-POPD━━━

———PROMPT-—————————————————————————
更改 CMD 控制台的提示信息。

PROMPT [text]

 text  指定新的命令提示信息。

提示信息可由普通字符和以下代码组成:

 $A  & —— AND 符号
 $B  | —— 管道符
 $C  ( —— 左括弧
 $D  当前日期
 $E  转义码(ASCII 码 27)
 $F  ) —— 右括弧
 $G  > —— 大于符号,即右尖括号
 $H  退格符(删除前一个字符)
 $L  < —— 小于符号,即左尖括号
 $N  当前驱动器
 $P  当前驱动器及路径
 $Q  = —— 等号
 $S    —— 空格
 $T  当前时间
 $V  XP 系统版本号
 $_  回车与换行(实际效果是换行)
 $$  $ —— 美元符号

如果命令扩展被启用,PROMPT 命令将支持如下几种新增的格式代码:

 $+  将命令 PUSHD 的目录堆栈深度用加号(+)代为表示,
    一层时为一个加号(+),两层时为两个(++),依次类推,没有则为空。

 $M  如果当前目录是在网络驱动器中,则显示网络路径;
    如果不是则显示为空。
━━━━━━━━━━━━━━━━━━━━━━━━━-PROMPT━━━

———PUSHD——————————————————————————
保存当前目录以供 POPD 命令使用,并跳转到指定的目录。
  相当于 CD 命令,但多了一项保存当前目录的功能;
  常与 POPD 结合使用。

PUSHD [path | ..]

 path    指定要成为当前目录的目录。

当命令扩展被启用时,除了普通驱动器号和路径外,PUSHD 命令还接受网络路径。
如果指定的是网络路径,PUSHD 将创建一个指向该网络资源的临时驱动器;
并跳转到新定义的驱动器使之成为当前目录。
原则是从 Z: 往下分配临时驱动器,即 Z - A 的第一个未使用的驱动器号。
━━━━━━━━━━━━━━━━━━━━━━━━━━PUSHD━━━

———SETLOCAL-————————————————————————
开始设置局部变量,对应于 ENDLOCAL 命令。
这时环境变量的改变只限于在 SETLOCAL 和 ENDLOCAL 之间;
执行 ENDLOCAL 命令之后变量将还原到 SETLOCAL 之前的状态。
当批处理结束时,如果缺少对应的 ENDLOCAL;
控制台会为 SETLOCAL 命令自动执行对应的 ENDLOCAL 命令来结束这个局部环境。
  即批处理结尾处有一一对应于 SETLOCAL 的隐含 ENDLOCAL。
  不必担心只写了 SETLOCAL 而没有用 ENDLOCAL 结束。

SETLOCAL

如果命令扩展被启用,SETLOCAL 会有如下变化:

SETLOCAL 命令支持以下参数:
     ENABLEEXTENSIONS / DISABLEEXTENSIONS
       启用或停用命令扩展功能。详情参阅 CMD /? 帮助。

     ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION
       启用或停用环境变量延迟解析之扩展功能。详情参阅 SET /? 帮助。
         变量延迟 —— 环境变量延迟解析扩展功能

SETLOCAL 命令的作用会一直持续,直到对应的 ENDLOCAL 命令出现时才结束。
且不受 SETLOCAL 命令之前的设置影响。

如果命令 SETLOCAL 带了参数,它将会有返回码 ERRORLEVEL。
如果 SETLOCAL 命令带的是有效参数则返回码为 0,不然就是 1。
你可以在批处理中用以下方法来检验命令扩展功能是否开启。如下:

    VERIFY OTHER 2>nul
    SETLOCAL ENABLEEXTENSIONS
    IF ERRORLEVEL 1 echo Unable to enable extensions
无法开启命令扩展功能

会有显示是因为在旧版本的 CMD 控制台中,SETLOCAL 是没有返回码的。
在这里 ERRORLEVEL 指代的就是命令 VERIFY 的返回码,
又因为 VERIFY 使用了一个无效的参数,所以返回码就是必定是个非 0 且大于 1 的数

了。
━━━━━━━━━━━━━━━━━━━━━━━━-SETLOCAL━━━

———START——————————————————————————
打开一个单独的窗口来执行指定的程序或命令。

START ["title"] [/Dpath]  [/MIN] [/MAX] [/SEPARATE | /SHARED]
   [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
   [/WAIT]  [command/program]
   [parameters]

  "title"    显示在窗口标题栏的标题。
  path     程序或命令所在目录
  B       在不创建新窗口的情况下执行应用程序。
         并且会忽略 ^C 中断处理,只能用 ^Break 来中断程序;
         除非应用程序本身支持 ^C 处理。
  I      新的环境是一个原始的控制台环境,而不继承当前环境设置。
         即当前环境所有的变量设置等在新环境中失效。
  MIN      窗口最小化打开
  MAX      窗口最大化打开
  SEPARATE      在单独的内存空间执行 16 位窗口程序
  SHARED    在共享的内存空间执行 16 位窗口程序
  LOW    以低优先级方式执行程序
  NORMAL  以标准优先级方式执行程序
  HIGH  以高优先级方式执行程序
  REALTIME  以实时(优先级)方式执行程序
  ABOVENORMAL  以标准偏上优先级方式执行程序
  BELOWNORMAL  以标准偏下优先级方式执行程序
  WAIT    启动应用程序并等待它结束
  command/program
        如果是控制台内部命令或批处理程序,则命令解释器将以 /K 参数来执行。
        即 CMD.EXE /K command/program 方式。
        这意味着命令执行完后 CMD 窗口仍然还在,不会关闭。

        如果不是内部命令或批处理程序,
        这个程序的执行方式不是窗口式就是控制台式。
        这里的控制台式是不带参数的执行方式。


  命令或程序的参数,可有多个。

如果命令扩展被启用,通过命令行调用或 START 命令执行的外部命令会有如下变化:

若命令后跟的是非可执行文件,将会调用该文件类型关联的应用程序来打开。
(例如:WORD.DOC 将会调用 .DOC 扩展名关联的字处理程序来打开)
关于如何用脚本来创建文件关联,请参阅 ASSOC 与 FTYPE 命令帮助。

如果要执行应用程序的是 32 位图形界面程序时,
CMD.EXE 不等应用程序终止就返回命令提示输入状态。
在脚本内执行则不会出现这种情况。

如果执行一个命令时第一个参数为 “CMD”,即既没有扩展名也没有路径,
这时系统会用 COMSPEC 变量的值来代替。即系统会补充为完整路径。
目的是防止从当前目录引用 CMD.EXE 。

如果第一个参数没有扩展名,控制台将以 PATHEXT 变量值的顺序来逐个匹配扩展名。
  全部比对完也没有匹配到就会提示出错。
默认的 PATHEXT 值顺序如下:

    .COM;.EXE;.BAT;.CMD

  实际为:.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH

  注意此变量写法与 PATH 变量一样,是用分号来隔开不同的元素的。

如果第一个参数找不到匹配的可执行文件,而与目录名匹配;
则 START 命令将调用 Explorer 来打开这个目录。
以上是从脚本执行的,如果从命令行执行则相当于使用 CD /D 进入了那个目录。

补充:如果路径中有空格,请使用其短名或用引号闭合。
   如果使用了引号将程序或路径闭合,则“标题”这个参数变成必选,
   否则会将引号中的内容当作标题。
━━━━━━━━━━━━━━━━━━━━━━━━━━START━━━

———TITLE——————————————————————————
设置命令提示符的窗口标题。

TITLE [string]

 string   指定命令提示符窗口的标题。
━━━━━━━━━━━━━━━━━━━━━━━━━━TITLE━━━

———VER———————————————————————————
显示 Windows XP 系统的版本。

VER
━━━━━━━━━━━━━━━━━━━━━━━━━━━VER━━━

———VERIFY-—————————————————————————
验证文件是否已正确地写入磁盘。
  参数 ON 表示要验证,OFF 表示不验证。

VERIFY [ON | OFF]

当 VERIFY 命令不带参数时,是用来显示当前的验证设置是开启还是关闭的。
━━━━━━━━━━━━━━━━━━━━━━━━━-VERIFY━━━

———VOL———————————————————————————
显示磁盘的卷标和序列号,只要有就显示。
  序列号是一定有,可能没有卷标。

VOL [drive:]
━━━━━━━━━━━━━━━━━━━━━━━━━━━VOL━━━

2009-02-28 周六完结。


[ 本帖最后由 wxcute 于 2009-2-28 12:37 编辑 ]
作者: defanive    时间: 2009-1-22 17:15

最好是按照Command里面的原版帮助重新翻译
作者: fs999    时间: 2009-1-22 17:38

有解析,最好出点题目帮助我们新手消化消化,o(∩_∩)o...  

谢谢
作者: wxcute    时间: 2009-1-22 18:56     标题: 回复 4楼 的帖子

就是按英文原版翻译的,直译问题太多,原版中文帮助应该就是直译的,会整段整段的让人看不懂,只能采取意译。

回 5 楼:新手练功区 有很多题目阿。^_^
作者: defanive    时间: 2009-1-30 11:43

for的帮助翻译得一塌糊涂,根本看不懂。。。
作者: 523066680    时间: 2009-1-30 12:43

嘿嘿 教程这种东西,光作者有热情是不够滴……
来点练习可以减少枯燥,不过作者也挺不容易,应该给分的。

  另外,有些教程别人已经写好了,俺觉得谁能做个整理也相当不错。

   再找个茬儿,关于截取字符串的,
  SET STR=0123456789
  %STR:~-5,-3%

  等同于:%STR:~5,2%
  STR 变量长度是 10,10+(-5)=10-5=5,10-5-3=5-3=2

        我也有写截取字符串解释,从读者方向想了一下:
单独的说明,看起来是很没感觉的,最好能用一些问题阐述它的
功能,用不同的问题衬出不同方法的优缺点。

另外,

  %STR:~-5,-3% 等同于:%STR:~5,2%
显然是不能突出 -符号的特殊用途。
比如%str:~-3%可以得到未知长度字符串的后3个字符
“未知长度”是关键字。

利用这个性质,有时可以省去一些计算字符串长度的过程。

---------------------------------------------------------------------------------
最后:

    这是在挑骨头,我觉得写教程的难点之一是要提起读者的兴趣并维持下去。

[ 本帖最后由 523066680 于 2009-1-30 12:55 编辑 ]
作者: 523066680    时间: 2009-1-30 14:09

找了好久才找到  评分说明的剩下部分……

有道理的,所以我才说我是找茬的。写教程可不容易……
作者: hkmhd    时间: 2009-2-6 01:24

篇幅较长,应该加入目录区分,可以的话,对目录内容细分到范例以及用途说明
作者: hlzj88    时间: 2009-2-6 06:37

谢谢wxcute,为我们做的每一点工作,辛苦了
作者: batman    时间: 2009-2-10 19:34

兄弟有心了,也令我为之惭愧,本人将会和兄弟一起为众多新手提供力所能及的帮助。
作者: qq381234916    时间: 2009-2-18 10:49

LZ 辛苦了。5楼的建议不错,可以考虑增加点题目,帮助新手学习··
作者: Batcher    时间: 2009-2-24 20:41     标题: 回复 13楼 的帖子

新手练功区有很多题目,去看看吧。
作者: fsh6666    时间: 2009-3-9 14:43

好东西  本人将好好学习
作者: jackelijie135    时间: 2009-3-15 22:28

( ^_^ )不错嘛,支持楼主,爱惜劳动成果
作者: zxy33zlj    时间: 2009-6-4 17:59

真的  如果加上习题实战  
那将会大大有利于理解  更快速的入门深入
一道好的习题  弄明白后懂的不止是一条代码了  
而是2条 3条  5条  甚至更多条  
管理员的这篇FOR真的很棒  http://bbs.bathome.net/thread-2189-1-1.html
受益匪浅   呵呵   一起学习 一起进步!
作者: aaboy    时间: 2014-2-21 17:29

很好的教程,谢谢有心人!




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2