bat批处理 变量字符串赋值、设置、拼接、截取
- ::操作系统:windows xp sp3
- @echo off
- ::初始化变量
- set str1=This is string1
- set str2=This is string2
- set str3=This is string3
- ::先打印出原始数据
- echo str1=%str1%
- echo str2=%str2%
- echo str3=%str3%
- ::类似strcpy,将一个字符串复制到另一个字符型指针或字符数组,覆盖原来的字符串
- ::实现方法:set 目标字符串=%源字符串%
- echo.
- echo -----------------------------------------------
- set strcpy=%str1%
- echo strcpy=%strcpy%
- ::类似strcat,将一个字符串连接到另一个字符型指针或字符数组的末尾。
- ::实现方法:set 目标字符串=%目标字符串%%源字符串%
- echo.
- echo -----------------------------------------------
- set strcat=%str1%%str2%
- echo strcat=%strcat%
- ::字符串截取,C中没有这种函数。
- ::实现方法:set 目标字符串=%源字符串:~起始值,截取长度%
- ::注意,起始值从0开始!
- ::截取长度是可选的,如果省略逗号和截取长度,将会从起始值一直截取到字符串的结尾。
- echo.
- echo -----------------------------------------------
- set strInterception1=%str1:~0,4%
- set strInterception2=%str1:~1,4%
- set strInterception3=%str1:~5%
- echo strInterception1=%strInterception1%
- echo strInterception2=%strInterception2%
- echo strInterception3=%strInterception3%
各种注释形式 ,比如:
1、
::
注释内容
(第一个冒号后也可以跟任何一个非字母数字的字符)
2、
rem
注释内容
(不能出现重定向符号和管道符号)
3、echo 注释内容(不能出现重定向符号和管道符号)〉nul
4、if not exist nul 注释内容(不能出现重定向符号和管道符号)
5、:注释内容(注释文本不能与已有标签重名)
6、
%注释内容%
(可以用作行间注释,不能出现重定向符号和管道符号)
7、goto 标签 注释内容(可以用作说明goto的条件和执行内容)
8、:标签 注释内容(可以用作标签下方段的执行内容)
前言
在使用批处理脚本的时候我们常常会有这类需求,比如需要设置一个变量来存储数据,简化程序书写;拼接现有的内容得到新的变量;截取变量的一部分来满足我们的要求,这些需求都是我们经常需要的,接下来我们设计一个情景来实现这些需求。
内容
- 情景设计
假设我们的批处理脚本要实现这样一个功能:从控制台接收参数,前两个参数为信息发送者,第三个参数为信息接收者,最后一个参数为信息内容,请输出所有发送者、接收者和信息内容。
- 代码实现,新建一个文件命名为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 ---------------------------------/