[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

批处理常用命令帮助新译

常用内部命令新译

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

◎表示补充说明或示例

———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 编辑 ]
2

评分人数

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

TOP

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

TOP

( ^_^ )不错嘛,支持楼主,爱惜劳动成果

TOP

好东西  本人将好好学习

TOP

回复 13楼 的帖子

新手练功区有很多题目,去看看吧。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

LZ 辛苦了。5楼的建议不错,可以考虑增加点题目,帮助新手学习··

TOP

兄弟有心了,也令我为之惭愧,本人将会和兄弟一起为众多新手提供力所能及的帮助。
***共同提高***

TOP

谢谢wxcute,为我们做的每一点工作,辛苦了
目的,学习批处理

TOP

篇幅较长,应该加入目录区分,可以的话,对目录内容细分到范例以及用途说明

TOP

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

有道理的,所以我才说我是找茬的。写教程可不容易……

TOP

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

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

   再找个茬儿,关于截取字符串的,
  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 编辑 ]
1

评分人数

    • wxcute: 谢谢指正,原文少翻译了一句,这个例子是用 ...PB + 2

TOP

for的帮助翻译得一塌糊涂,根本看不懂。。。
1

评分人数

    • wxcute: 谢谢批评,是很烂。还漏掉不少,PB + 2

TOP

回复 4楼 的帖子

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

回 5 楼:新手练功区 有很多题目阿。^_^

TOP

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

谢谢

TOP

返回列表