相关文章推荐
侠义非凡的炒饭  ·  JsonSerializerOptions. ...·  6 月前    · 
爱健身的瀑布  ·  How to read XML using ...·  1 年前    · 
酒量小的凳子  ·  LMMS - OSCHINA - ...·  1 年前    · 
bat批处理 变量字符串赋值、设置、拼接、截取

bat批处理 变量字符串赋值、设置、拼接、截取

  1. ::操作系统:windows xp sp3
  2. @echo off
  3. ::初始化变量
  4. set str1=This is string1
  5. set str2=This is string2
  6. set str3=This is string3
  7. ::先打印出原始数据
  8. echo str1=%str1%
  9. echo str2=%str2%
  10. echo str3=%str3%
  11. ::类似strcpy,将一个字符串复制到另一个字符型指针或字符数组,覆盖原来的字符串
  12. ::实现方法:set 目标字符串=%源字符串%
  13. echo.
  14. echo -----------------------------------------------
  15. set strcpy=%str1%
  16. echo strcpy=%strcpy%
  17. ::类似strcat,将一个字符串连接到另一个字符型指针或字符数组的末尾。
  18. ::实现方法:set 目标字符串=%目标字符串%%源字符串%
  19. echo.
  20. echo -----------------------------------------------
  21. set strcat=%str1%%str2%
  22. echo strcat=%strcat%
  23. ::字符串截取,C中没有这种函数。
  24. ::实现方法:set 目标字符串=%源字符串:~起始值,截取长度%
  25. ::注意,起始值从0开始!
  26. ::截取长度是可选的,如果省略逗号和截取长度,将会从起始值一直截取到字符串的结尾。
  27. echo.
  28. echo -----------------------------------------------
  29. set strInterception1=%str1:~0,4%
  30. set strInterception2=%str1:~1,4%
  31. set strInterception3=%str1:~5%
  32. echo strInterception1=%strInterception1%
  33. echo strInterception2=%strInterception2%
  34. 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 ---------------------------------/