前言
在使用批处理脚本的时候我们常常会有这类需求,比如需要设置一个变量来存储数据,简化程序书写;拼接现有的内容得到新的变量;截取变量的一部分来满足我们的要求,这些需求都是我们经常需要的,接下来我们设计一个情景来实现这些需求。
内容
- 情景设计
假设我们的批处理脚本要实现这样一个功能:从控制台接收参数,前两个参数为信息发送者,第三个参数为信息接收者,最后一个参数为信息内容,请输出所有发送者、接收者和信息内容。
- 代码实现,新建一个文件命名为test_set.bat然后编写如下代码:
@echo off
::设置变量
SET Sender1=%1
SET Sender2=%2
SET Receiver=%3
SET Content=%4
::字符串拼接(等号前面不能有空格)
SET Sender=%Sender1%, %Sender2%
::字符串截取
SET RealContent=%Content:~1,-1%
echo Sender = %Sender%
echo ---------------------------------/
echo Receiver = %Receiver%
echo ---------------------------------/
echo Content = %Content%
echo ---------------------------------/
echo RealContent = %RealContent%
echo ---------------------------------/
pause
- 运行结果如下:
F:\batTool>
test_set.bat tom jerry xiaoming "I miss you"
Sender = tom, jerry
---------------------------------/
Receiver = xiaoming
---------------------------------/
Content = “I miss you”
---------------------------------/
RealContent = I miss you
---------------------------------/
请按任意键继续. . .
总结
- 这其中有几个点需要注意,首先变量设置只需要使用
SET 任意变量名=所要表达的内容
; - 变量的拼接只要把变量依次写在一起就可以,形如
SET 变量=变量1变量2 内容3,字符串4
,不同部分之间可以没有连接符,直接相连或者用空格。 - 变量的截取需要使用固定的格式
%变量:~a,b%
,这就表示把变量从第a个字符截取到第b个字符,b可以为负数,表示从字符串后面计数,-1表示最后一个字符。 - 关于例子中信息内容这最后一个参数,其中的双引号使我故意加的,也是非常必要的,这样可以把这句包含空格的话作为一个变量传递到批处理脚本中,如果不加双引号的话,变量Content的内容就是
I
了,后两个单词就被丢掉了。