批处理

来源:互联网 发布:王珮瑜 冯蕴 知乎 编辑:程序博客网 时间:2024/04/30 09:57

2010-11-22 星期一

批处理知识小结:

 

批处理参考网站:

   http://www.bathome.net/

 

set命令的使用:

  set //显示所有的环境变量

  set /aexpression

  set /pstring1=[string2] //string2是提示字符,用户可以输入字符赋值给string1,注意,string1并不是接受string2这些提示字符。

  例如:set/p userName=pls input user name // pls input user name”这段文字信息可以在dos窗口中看到,”但是userName的内部不是这个,

                                           //  而是用户输入的信息。

如何给变量赋值方法:

  1: setvariable=abc

  2: setvar1=abc

     setvar2=%var1%

  3: set /p=

 

字符截取方法:

  %variable:~[+/-]M[,N]% //表示截取变量从前或后从第M个位置开始截取,截取长度为N

  

   例如:

   setvar=123456

   echo%var:~0,2%  //从第一个位置开始截取,截取长度12

 

变量使用:

  变量的使用方式有两种 %var%, !var!.

  !var!是变量延迟扩展,要开启延迟变量扩展要使用如下命令,否则将不能解析!var!

    setlocalenabledelayedexpansion //具体参见setlocal命令

 

  %var%总是显示进入语句块前的值。

  !var%显示的是每次更新后的值。

 

  例如:遍历parameters.txt文件每一行,并将其信息输出。

  parameters.txt文件内容:

    -n doom #

    -t 7 #

    -pd:/android/game #

    -kandroid.game #

    -adoomActivity #

 

  @echo off

  rem setlocalenabledelayedexpansion

  rem set y=abc

  for /f"tokens=1,2,* delims=#" %%i in (parameters.txt) do (set y=%%i) &echo %y%

 

  如果没有开启 “延迟变量扩展”,我们也不在进入语句块前给 y 变量赋值,y 变量默认是为空。

  这时候,我们第一次运行,就会打印出 “echo处于关闭状态” 信息。

 

  这是如果我们在进入语句块之前,我们给 y 变量赋值一个随机值,而不是默认的空值。如 set y=abc.

  这时候我们再次运行,会发现打印出来的信息就是五行 abc. 也就是我们进入语句块的前的值,但是这个

  值其实是改变了得,我们可以通过 set 命令看到,y 的值其实是我们w文本文件的最后一行去掉#的信息。

  y=-adoomActivity

 

  所以从默认到人为给变量添加值两者情况可以看出。%var%显示的就是进入语句块前的值。接下来我们再来看看

  !var!的使用。

  首先启动 “延迟变量扩展”,然后使用 !y!,会发现打印的信息是每次读取到的行信息。

 

打印空行的方法:

   echo.

 

 

dos窗口出现 “echo处于关闭状态” 信息,如何关闭。

  如果echo %var% 语句中,var是一个空值,那么就会出现这个信息。关闭很简单就是在echo后加上一个“.”即可。

  即:echo.%var%

 

管道:

  管道使用 & 符号。

原创粉丝点击