批处理学习教程(2)------set的用法

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 。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一章 批处理基础 第一节 常用批处理内部命令简介 1、REM 和 :: 2、ECHO 和 @ 3、PAUSE 4、ERRORLEVEL 5、TITLE 6、COLOR 7、mode 配置系统设备 8、GOTO 和 : 9、FIND 10、START 11、assoc 和 f type 12、pushd 和 popd 13、CALL 14、shift 15、IF 16、setlocal 与 变量延迟 17、ATTRIB 显示或更改文件属性 第二节 常用特殊符号 1、@ 命令行回显屏蔽符 2、% 批处理变量引导符 3、> 重定向符 4、>> 重定向符 5、<、>&、<& 重定向符 6、| 命令管道符 7、^ 转义字符 8、& 组合命令 9、&& 组合命令 10、|| 组合命令 11、"" 字符串界定符 12、, 逗号 13、; 分号 14、() 括号 15、! 感叹号 第二章 FOR命令详解 一、基本格式 二、参数 /d 三、参数 /R 四、参数 /L 五、参数 /F 第三章 FOR命令中的变量 一、 ~I - 删除任何引号("),扩展 %I 二、 %~fI - 将 %I 扩展到一个完全合格的路径名 三、 %~dI - 仅将 %I 扩展到一个驱动器号 四、 %~pI - 仅将 %I 扩展到一个路径 五、 %~nI - 仅将 %I 扩展到一个文件名 六、 %~xI - 仅将 %I 扩展到一个文件扩展名 七、 %~sI - 扩展的路径只含有短名 八、 %~aI - 将 %I 扩展到文件的文件属性 九、 %~tI - 将 %I 扩展到文件的日期/时间 十、 %~zI - 将 %I 扩展到文件的大小 十一、 %~$PATH:I 第四章 批处理中的变量 一、系统变量 二、自定义变量 第五章 set命令详解 一、用set命令设置自定义变量 二、用set命令进行简单计算 三、用set命令进行字符串处理 1、字符串替换 2、字符串截取 第六章 if命令讲解 第一种用法:IF [NOT] ERRORLEVEL number command 第二种用法:IF [NOT] string1==string2 command 第三种用法:IF [NOT] EXIST filename command 第四种用法:IF增强的用法 第七章 DOS编程高级技巧 一、界面设计 二、if…else…条件语句 三、循环语句 四、子程序 五、用ftp命令实现自动下载 六、用7-ZIP实现命令行压缩和解压功能 七、调用VBScript程序 八、将批处理转化为可执行文件 九、时间延迟 1、利用ping命令延时 2、利用for命令延时 3、利用vbs延迟函数,精确度毫秒,误差1000毫秒内 4、仅用批处理命令实现任意时间延迟,精确度10毫秒,误差50毫秒内 十、模拟进度条 十一、特殊字符的输入及应用 十二、随机数(%random%)的应用技巧 十三、变量嵌套 与 命令嵌套 全文:http://xiangkg.blog.163.com 1、更正了所有的错别字,适当排版,增加条理性。 2、运行改善所有例子,并纠正了一些语法错误。 3、补充了一些不完全的地方。 4、第一章参考了网上许多教程汇编而成。 5、20080229补充了变量延迟的问题。 6、20080305修改了参数usebackq的说明 7、20080310增加了特殊字符的输入及应用 8、20080311修改了子程序部分 9、20080313修改了echo说明,归纳了9个应用方法 10、20080320增加任意时间延迟方法 11、20080321增加了set计算中十进制与八进制混淆问题的说明 12、20080325修正dos数值计算范围:-2147483648至2147483647,即-2^31~2^31-1 13、20080326增加随机数的应用 14、20080327修改了“if增强用法”中的defined语句说明 15、20080402增加变量嵌套与命令嵌套,重要技巧之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值