当前位置: 首页 > news >正文

.bat批处理(三):变量声明、设置、拼接、截取

文章目录

  • 前言
  • 内容
  • 总结

前言

在使用批处理脚本的时候我们常常会有这类需求,比如需要设置一个变量来存储数据,简化程序书写;拼接现有的内容得到新的变量;截取变量的一部分来满足我们的要求,这些需求都是我们经常需要的,接下来我们设计一个情景来实现这些需求。

内容

  • 情景设计

假设我们的批处理脚本要实现这样一个功能:从控制台接收参数,前两个参数为信息发送者,第三个参数为信息接收者,最后一个参数为信息内容,请输出所有发送者、接收者和信息内容。

  • 代码实现,新建一个文件命名为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了,后两个单词就被丢掉了。

相关文章:

  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • MFC的使用——在共享DLL中使用MFC、在静态库中使用MFC
  • 我的KMP实现
  • SVN:Update item to this version和Revert to this version区别
  • CSDN博客:使用Markdown编辑器使图片居中显示
  • UE4项目运行时显示鼠标指针
  • UE4引擎中类的命名规则
  • 排序算法系列之(零)——排序初体验
  • 光棍节程序员闯关秀-解密
  • Mysql批量删除数据库
  • UE4中的反射机制
  • 排序算法系列之(一)——选择排序清新脱俗的一面
  • C++11(一):在类的定义时初始化非静态变量
  • C++11(二):lamda表达式
  • 可能错误使用了‘offsetof’宏
  • “大数据应用场景”之隔壁老王(连载四)
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • 345-反转字符串中的元音字母
  • ES6 ...操作符
  • JavaScript-Array类型
  • JSONP原理
  • Less 日常用法
  • Nodejs和JavaWeb协助开发
  • PAT A1092
  • Protobuf3语言指南
  • SpringCloud集成分布式事务LCN (一)
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 从tcpdump抓包看TCP/IP协议
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 观察者模式实现非直接耦合
  • 记录一下第一次使用npm
  • 开发基于以太坊智能合约的DApp
  • 老板让我十分钟上手nx-admin
  • 聊聊redis的数据结构的应用
  • 浅谈web中前端模板引擎的使用
  • 使用agvtool更改app version/build
  • 小程序测试方案初探
  • 正则与JS中的正则
  • 白色的风信子
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • (06)金属布线——为半导体注入生命的连接
  • (zhuan) 一些RL的文献(及笔记)
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (五)网络优化与超参数选择--九五小庞
  • (一) storm的集群安装与配置
  • .Net Core和.Net Standard直观理解
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • [Angular] 笔记 8:list/detail 页面以及@Input
  • [C++]STL之map
  • [CareerCup] 2.1 Remove Duplicates from Unsorted List 移除无序链表中的重复项
  • [CISCN2019 华北赛区 Day1 Web2]ikun