1、赋值

(1)给变量赋予一个文字字符串的值

使用 set 跟上变量,再用等号 = 跟上字符串就能简单地给该变量赋值了。例如 set var=Hello world! 。为了确认一下变量 var 的值是否是 Hello world! ,可以用 set var 来查看变量 var 的值。用 set v 可以查看所有以字母 v 开头变量的值。直接输入 set 可以查看所有变量的值。另外,变量两侧加上百分符号 % 用来表示该变量的值(内容)。这样做可以将该变量的值赋给其他变量或是用做计算显示等处理。

(2) 给变量赋予一个数值型的值

在 set 后面加上 /a 的参数可以给变量赋予一个数值型的值,例如 set /a var=48 表示将数字48赋给变量var。该数值型的变量是一个32位的整数型数值,即占用4个字节,能表示的数值个数为2的32次方,含正负号,范围为:-2147483648~2147483647。

(3)从外部获得输入的赋值方式

在 set 后面加上 /p 的参数,可以将变量设成用户输入的一行输入。读取输入行之前,显示指定的 提示文字。当然,提示文字也可以是空的。比如 set /p var=请输入一些文字: ,可以显示出一段提示文字"请输入一些文字:"并能将用户输入的信息存到变量var里。/p 的参数还有很多诸如对字符串的替代、提取、增减等功能,具体可以参考 set 的相关帮助信息。

(4)变量的值的赋予、显示、变换、计算等功能

可能此时有些朋友对百分号 % 的理解还处于迷茫状态,对此我们可以做一些实验。首先,就像前文所说的那样,给一个叫做 var 的变量赋值Hello world! (在命令行里输入 set var=Hello world! )。然后我们的打算把变量 var 里的值赋给另一个变量 var1 ,做法是:set var1=%var% ,此时 var1 里的值也是 Hello world! 了。假如不使用百分号 % 仅仅是 set var1=var 的话,那么此时变量 var1 所得到的值仅仅是 var 这3个字母而已。再回顾一下 echo 的用法,分别尝试输入 echo var1 和 echo %var1% ,所得到的返回输出分别为:var1 和 Hello world! 。

 

此外,百分号可以对变量中的字符串有效地进行编辑或变换。

值得一提的是替换功能,其格式为:原始变量的名称后面跟上冒号 : ,再加上想要被代替的内容,紧接着一个等号 = ,然后再加上用来代替的新内容,最后用两个百分号把以上这些包括起来即可。虽然此时原始变量的值并没有改变,但百分号里的内容可以赋给一个变量,这个变量可以是原始变量。例:echo %var:o=z% ,效果为把 Hello world! 里所有的字母 o 都用字母 z 代替,并显示出来,然而变量 var 的值却没有变化。

当然,我们并不会满足于仅仅是代替一个字母——有时候我们需要代替两个。set var2=%var:ld=ms and bugs% ,这条命令可以在把 Hello world! 里的 ld 替换成 ms and bugs 并将新的结果赋给变量 var2 ,变量 var 仍然不会变化。输入 echo %var2% 确认一下结果是否为我们所期待的 Hello worms and bugs! 。

 

对变量中的字符串在特定位置上的删减将用到这样的格式:%var:~m% 和 %var:~m,n% 。m 和 n 为整数参数。数字 m 为正数表示取变量 var 中从左侧数第 m 个字符(单字节字符)以后的内容;m 为负数则表示取变量 var 从右侧数第 -m 个字符以及其右侧的所有的字符,这就是第一条命令所产生的新字符串。如果数字 n 为正数,表示在上述新字符串中,从其左侧取 n 个字符的内容;若 n 为负数,则从其左侧取字符直到还剩下 -n 个字符为止的内容。

 

如果您坚持认为这种抽象的表达方式是根本无法解释清楚这该死的 m 和无耻的 n 究竟是怎么回事的话,不如实验一下下面的例子。为了方便查看效果,我们假定变量 var 中的内容为 1234567890 (set var=1234567890),然后依次输入以下命令并查看相应的结果。

输入的命令    结果    效果                   

echo %var%    1234567890 显示所有                 

echo %var:~4%   567890   从第4个字符以后开始显示         

echo %var:~4,3%  567     从第4个字符以后开始显示,并只显示前3个  

echo %var:~-4%  7890    从倒数第4个字符开始显示         

echo %var:~-4,3% 789     从倒数第4个字符开始显示,并只显示前3个  

echo %var:~4,-2% 5678    从第4个字符以后开始显示,显示到还剩2个为止

echo %var:~0,3%  123     从头开始显示,并只显示前3个字符     

echo %var:~0,-3% 1234567   从头开始显示,显示到还剩3个字符为止   

 

此外,set 也可以对数值型的变量进行常见的运算操作。

set /a num=48

set /a result=%num%+12

echo %result%

上面的命令表示先给数值 48 赋给变量 num ,然后再把变量 num 的数值与数值 12 相加后的结果赋给变量 result 。第3行可以显示变量 result 的值,结果很明显,是 60 。