set 续2
--------siwuxie095
用 set 命令进行字符串处理(这个不应只属于 set 的内容,应该归属于格式内容,
在没有
set 的情况下,格式仍旧适用)
1、字符串替换
%PATH:str1=str2%
将字符串变量%PATH%中的 str1 替换为 str2,由于 str1 可以是整个
PATH 的值,
也可以是部分
PATH 的值,所以用此语法更多是部分替换 PATH 的值
要替换全部
PATH 的值,直接用 set PATH = string
需要说明的是,%PATH:str1=str2% 不依赖 set 而存在,
和 set 一起使用,只不过可以将替换后的内容赋值到某变量而已
如:
|
@echo off set a= bbs. verybat. cn ::一开始的 a 变量里包含有三个空格符号。 echo set var=%a: =% ::对 a 变量里的所有内容,空格都替换掉(在这里没有替换什么内容,表示删除) echo 替换后的值: "%var%" pause |
sublime中:

运行一览:

2、字符串截取
%a:~[m[,n]]%
方括号表示可选,% 为变量标识符,a 为变量名,冒号用于分隔变量名
和说明部分,~ 可简单理解为"偏移"即可,m 和 n 可以取正数,也可以
取负数,表不同含义
需要说明的是,%a:~[m[,n]]% 不依赖 set 可单独使用,
如:echo %time:~0,-3%,表示显示时间的时、分、秒
(不显示毫秒),set 说到底,还是赋值功能
关于
%a:~[m[,n]]% 中 m n 取值含义:
|
m 正 或 0,n 正 |
舍弃变量 a 的前 m 位,后再取其 n 位 |
|
m 正 或 0,n 负 |
舍弃变量 a 的前 m 位和舍弃末尾的 n 位后剩下的值 |
|
m 正 |
舍弃变量前 m 位后,取剩下的所有值 |
|
m 负,n 正 |
取变量 a 的末尾 m 位,后再取前 n 位 |
|
m 负,n 负 |
取变量 a 的末尾 m 位,后舍弃末尾的 n 位后剩下的值 |
|
m 负,n 缺省 |
取变量末尾 m 位 |
注意:n 值可以缺省,但不可以为 0。m 值可以是任意值
假如变量
a 代表字母表的一串 26 个字母
|
%a:~7,3% |
值为 HIJ |
|
%a:~0,1% |
值为 A |
|
%a:~7,-3% |
值为 HIJKLMNOPQRSTUVW |
|
%a:~-7,3% |
值为 TUV |
|
%a:~-7,-3% |
值为 TUVW |
|
%a:~3% |
值为 DEFGHIJKLMNOPQRSTUVWXYZ |
|
%a:~-3% |
值为 XYZ |
|
%a:~0,-3% |
值为 ABCDEFGHIJKLMNOPQRSTUVW |
即
m
是正
或 0,表示舍弃前
m 位;n 是负,表示舍弃后 n 位
经典的实时显示时间:
|
@echo off ::time echo ping -n 2 127.1>nul&cls&%0 |
sublime中:

set 用法格式总结:
|
set var=abc |
直接给变量赋值 |
|
set /p var=请输入: |
将用户输入赋值到变量 |
|
set /a var=num1+num2 |
数值计算 1 |
|
set /a var+=1 |
数值计算 2 |
一种比较怪异的写法:
|
@echo off set cmdstr=echo %cmdstr% pause |
sublime中:

运行一览:

注意:
|
set 不可以对常量进行赋值 |
|
set 不可以对参数 |
|
set 不可以对 for 循环变量 |
|
set 对 for 的循环上下限变量进行计算不会改变循环次数 |
如:这三种形式的计算都是不可以的
|
:: 形式 :: 形式 set /a %1+=1 :: 形式 set /l %%i in (1,1,10) do |
sublime中:

再如:
对 for 上下限进行计算看,但不会改变循环次数。也就是说,循环
次数在循环开始前就固定了,不会在循环中发生任何变化
|
@echo off setlocal enabledelayedexpansion for /l %%i in (!min!,1,!max!) do ( echo min=!min! max=!max! ) pause |
sublime中:

【made by siwuxie095】
set 续2的更多相关文章
- .Net Core MVC 网站开发(Ninesky) 2.3、项目架构调整(续)-使用配置文件动态注入
上次实现了依赖注入,但是web项目必须要引用业务逻辑层和数据存储层的实现,项目解耦并不完全:另一方面,要同时注入业务逻辑层和数据访问层,注入的服务直接写在Startup中显得非常臃肿.理想的方式是,w ...
- [.NET] C# 知识回顾 - 委托 delegate (续)
C# 知识回顾 - 委托 delegate (续) [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6046171.html 序 上篇<C# 知识回 ...
- iOS 开发者账号到期续费流程
1.登录developer.apple.com,查看到期时间 2.到期提醒通知,点击Renew Membership续费(一般提前一个月提醒续费) 3.个人开发者账号续费需要支付 688人民币/年(9 ...
- 微信公众号开发系列教程一(调试环境部署续:vs远程调试)
http://www.cnblogs.com/zskbll/p/4080328.html 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试 ...
- CI-持续集成(1)-软件工业“流水线”概述
CI-持续集成(1)-软件工业“流水线”概述 1 概述 持续集成(Continuous integration)是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次, ...
- 分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility (续3篇-导出时动态生成多Sheet EXCEL)
ExcelUtility 类库经过我(梦在旅途)近期不断的优化与新增功能,现已基本趋向稳定,功能上也基本可以满足绝大部份的EXCEL导出需求,该类库已在我们公司大型ERP系统全面使用,效果不错,今天应 ...
- [译]Godot系列教程三 - 场景实例化(续)
场景实例化(续) 要点 场景实例化带来很多便利的用法,总体来说有: 将场景细分,更便于管理 相对于某些引擎中的Prefab组件更灵活,并且在许多方面更强大 是一种设计更复杂的游戏流程甚至UI的方式 这 ...
- 【小白的CFD之旅】13 敲门实例【续3】
接上文[小白的CFD之旅]12 敲门实例[续2] 4 Results4.1 计算监测图形4.2 Graphics4.2.1 壁面温度分布4.2.2 创建截面4.2.3 显示截面物理量4.2.4 Pat ...
- 【小白的CFD之旅】12 敲门实例【续2】
接上文[小白的CFD之旅]敲门实例[续] 主要内容 3 Solution3.1 Solution Methods3.2 Solution Controls3.3 Monitors3.4 Report ...
- jquery实现简单瀑布流布局(续):图片懒加载
# jquery实现简单瀑布流布局(续):图片懒加载 这篇文章是jquery实现简单瀑布流布局思想的小小扩展.代码基于前作的代码继续完善. 图片懒加载就是符合某些条件时才触发图片的加载.最常见的具体表 ...
随机推荐
- Git 之 git原理简介
这里只是很简单.超简单的介绍下git,为的是方便记忆: 本地仓库分为三个部分:工作区.暂存区.仓库区,其中暂存区和仓库区属于版本区. 对于文件的操作,需要从工作区----> 暂存区 ----&g ...
- CMake与Make
大家都知道,写程序大体步骤为: 1.用编辑器编写源代码,如.c文件. 2.用编译器编译代码生成目标文件,如.o. 3.用链接器连接目标代码生成可执行文件,如.exe. 但如果源文件太多,一个一个编译时 ...
- BZOJ3211: 花神游历各国(线段树)
3211: 花神游历各国 Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 5692 Solved: 2114[Submit][Status][Discu ...
- javaScript基础篇之数据类型
我主要学习廖雪峰老师官方网站的javaScript,所以很多都是出自于廖老师,请见谅.以下是廖老师的官方网站的地址:http://www.liaoxuefeng.com/wiki/0014344466 ...
- Python3.x datetime模块
1.时间间隔(timedelta) 指定时间长度之间计算差值 #!/usr/bin/env python __author__ = 'realtiger' """ @ve ...
- Autocad 2010+ObjectArx 2010 +Vs2010 的.net 开发设置(转)
Autocad 2010+ObjectArx 2010 +Vs2010 的.net 开发设置 分类: ObjectArx.net2010-09-14 16:52 4203人阅读 评论(7) 收藏 举报 ...
- CenOS中的yum配置文件CentOS-Base.repo里面的参数都是何含义? souhu CentOS-Base.repo
souhu yum服务器CentOS-Base.repo 将$releasever替换为操作系统版本号 # CentOS-Base.repo # # The mirror system uses t ...
- 微信小程序设置底部导航栏目方法
微信小程序底部想要有一个漂亮的导航栏目,不知道怎么制作,于是百度找到了本篇文章,分享给大家. 好了 小程序的头部标题 设置好了,我们来说说底部导航栏是如何实现的. 我们先来看个效果图 这里,我们添加了 ...
- Excel VBA 找出选定范围不重复值和重复值
Sub 找出选定范围内不重复的值() On Error Resume Next Dim d As Object Set d = CreateObject("scripting.diction ...
- jsp中9个隐含对象
在JSP中一共有9个隐含对象,这个9个对象我可以在JSP中直接使用.因为在service方法已经对这个九个隐含对象进行声明及赋值,所以可以在JSP中直接使用. - pageContext 类型:Pag ...