批处理BAT替换与截取字符串的用法t1=%a:~3%是什么意思

在bat编写中,我们经常越到t1=%a:~3%之类的代码,这里简单介绍下用法,需要的朋友可以参考下:

一、替换用法 

例 

@echo off
set a=belcome to CMD borld!
set temp=%a:b=w%
echo %temp%
pause 

将显示 welcome to CMD world! 即用w替换了变量a中的b。

二、截取用法 

字符串最前面的光标所在处表示第0位,第一个字符后面的光标所在表示第一位,依次类推。 
为了更好的理解截取用法,下面给出了字符串superhero位数的相关示意图: 
s u p e r h e r o

0 1 2 3 …… -3 -2 -1 无表示

例 

@echo off
set a=superhero
set temp=%a:~0,5%
echo %temp%
pause 

将显示super 即显示了变量a的第0位至第5位中包括的所有元素。

若如下

@echo off
set a=superhero
set temp=%a:~3%
echo %temp%
pause 

将显示erhero 即显示了变量a的第三位以后的所有字符。

若如下

@echo off
set a=superhero
set temp=%a:~-3%
echo %temp%
pause 

将显示ero 即显示了变量a的倒数三个字符。

若如下

@echo off
set a=superhero
set temp=%a:~0,-3%
echo %temp%
pause 

将显示superh 即显示了变量a的第0位和第-3位中间包含的所有字符。

bat截取字符串实例

@echo off
set str=123456789
echo 第一个字符为:%str:~0,1%
echo 头两个字符为:%str:~0,2%
echo 头5个字符为:%str:~0,5%
echo 去掉最后一个字符后的字符串为:%str:~0,-1%
echo 去掉最后3个字符后的字符串为:%str:~0,-3%
echo 第4个字符为:%str:~3,1%
echo 第4个及其之后的3个字符为:%str:~3,4%
echo 最后一个字符为:%str:~-1%
echo 最后一个字符为:%str:~-1,1%
echo 最后两个字符为:%str:~-1,2%
echo 倒数第4个字符为:%str:~-4,1%
echo 倒数第4个及其之后的字符为:%str:~-4%
echo 倒数第4个及其之后的1个字符为:%str:~-4,2%
echo 倒数第4个及其之后的2个字符为:%str:~-4,3%
pause

为了说明这个问题,我在这里把批处理取字符,做下进一步的解释,希望对新手有所启发
如下:
echo %var:~n,k% 
我们在这里对每个参数做个说明:"%var",即我们要从中要截取字符的字符串." ~ "取字

符标志符(我是这么理解的),"n" 我们将其理解为指针,"k"我们将其理解为偏移地址.(注

:指针和偏移地址都是从零开始数的)
我们还是用namejm版主的例子做下说明:

@echo off
set str=123456789
rem 定义一个str字符串为123456789
echo 第一个字符为:%str:~0,1%
rem 指针为0,偏移地址为1,即从第0位开始,取1位
echo 头两个字符为:%str:~0,2%
rem 指针为0,偏移地址为2,即从第0位开始,取2位
echo 头5个字符为:%str:~0,5%
rem  指针为0,偏移地址为5,即从第0位开始,取5位
echo 去掉最后一个字符后的字符串为:%str:~0,-1%
rem 当"k"为负值时,我们可以这样理解:从指针开始处开始取其后面所有字符,然后减去
后面"abs(k)位"..所以这个句字我们可以做如下解释:从第0位开始取其全部字符
为:123456789然后从后面减去abs(k)位,所以最后结果为:12345678
echo 去掉最后3个字符后的字符串为:%str:~0,-3%
rem  该句解释同上↑
echo 最后一个字符为:%str:~-1%
rem  参数"n,"和"k"都可以为缺省,缺省"n,"时可以理解为:从abs(k)位开始取其全部
echo 倒数第4个及其之后的字符为:%str:~-4%
rem        解释同上↑
echo 最后一个字符为:%str:~-1,1%
rem  n为负值时,表示从后面开始截取字符,取k位(此时n应从1开始数)
echo 最后一个字符为:%str:~-1,2%
rem  解释同上↑
echo 倒数第4个字符为:%str:~-4,1%
rem  解释同上↑
echo 倒数第4个及其之后的1个字符为:%str:~-4,2%
rem  解释同上↑
echo 倒数第4个及其之后的2个字符为:%str:~-4,3%
rem 解释同上↑
pause

原文地址:https://www.cnblogs.com/qlqwjy/p/8326043.html

时间: 2024-10-29 04:03:55

批处理BAT替换与截取字符串的用法t1=%a:~3%是什么意思的相关文章

DOS命令(cmd)批处理:替换字符串、截取字符串、扩充字符串、获取字符串长度

1.替换字符串,即将某一字符串中的特定字符或字符串替换为给定的字符串.举例说明其功能:========================================= @echo off set aa=伟大的中国!我为你自豪! echo 替换前:%aa% echo 替换后:%aa:中国=中华人民共和国% echo aa = %aa% set "aa=%aa:中国=中华人民共和国%" echo aa = %aa% pause ==============================

bat 截取字符串(for命令) 推荐收藏

摘自:http://www.jb51.net/article/50354.htm 今天需要用批处理命令处理文件夹中的文件,需要用到bat中的for命令以及字符串截取的一些命令.在上面的链接中找到许多有用的信息,为了以后查找以及传播有用知识,摘抄在这里. 望 原著 务批判 FOR命令中有一些变量,他们的用法许多新手朋友还不太了解,今天给大家讲解他们的用法! 先把FOR的变量全部列出来: ~I - 删除任何引号("),扩展 %I %~fI - 将 %I 扩展到一个完全合格的路径名 %~dI - 仅将

winform学习日志(三十)----------从字符串总分离文件路径、命名、扩展名,Substring(),LastIndexOf()的使用;替换某一类字符串,Replace()的用法

一:从字符串总分离文件路径.命名.扩展名,上图 二:代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace FilePathString { public par

Excel中截取身份证的出生日期,并替换为日期字符串

Excel中截取身份证的出生日期,并替换为日期字符串,修改A1为身份证字段所在的单元格即可,即可快速生成:1990/01/01的日期字符串 =CONCATENATE(MID(A1,7,4),"/",MID(A1,11,2),"/",MID(A1,13,2))

PHP截取字符串函数substr()函数实例用法详解

在PHP中有一项非常重要的技术,就是截取指定字符串中指定长度的字符.PHP对于字符串截取可以使用PHP预定义函数substr()函数来实现.下面就来介绍一下substr()函数的语法及其应用. substr()函数语法格式如下:大理石平台厂家 1 substr(string, start, length); substr()函数参数说明如下: 参 数 说 明 string 指定字符串对象 start 指定开始截取字符串的位置.如果参数start为负数,则从字符串的末尾开始截取 length 可选

Swift4 字符串截取-超级简单用法

先介绍一下Swift String 自身的方法,后面介绍简单的使用方法 1.截取前面5个字符 let substr = string.prefix(5) 2.截取后面5个字符 let substr = string.suffix(5) 3.获取下标 N 到 M 的字符(0 <= N < M <= string.count) // let string = "12345678" let indexN = string.index(str.startIndex, offs

windows批处理(.bat)

转自http://www.cnblogs.com/shiney/archive/2011/07/04/2097236.html 本文在运行中有一些小小的问题,我修改了一下,将会在稳重标出 批处理文件是无格式的文本 文件,它包含一条或多条命令.它的文件扩展名为 .bat 或 .cmd.在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们.使用批 处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务.当然我们的这个版

shell截取字符串的方法

参考文献: linux中shell截取字符串方法总结 [Linux]如何在Shell脚本中计算字符串长度? 截取字符串的方法一共有八种,主要为以下方法 shell中截取字符串的方法有很多中, ${expression}一共有9种使用方法. ${parameter:-word} ${parameter:=word} ${parameter:?word} ${parameter:+word} 上面4种可以用来进行缺省值的替换. ${#parameter} 上面这种可以获得字符串的长度. ${para

JS截取字符串substr 和 substring方法的区别

substr 方法 返回一个从指定位置开始的指定长度的子字符串. stringvar.substr(start [, length ]) 参数 stringvar 必选项.要提取子字符串的字符串文字或 String 对象. start 必选项.所需的子字符串的起始位置.字符串中的第一个字符的索引为 0. length 可选项.在返回的子字符串中应包括的字符个数. 说明 如果 length 为 0 或负数,将返回一个空字符串.如果没有指定该参数,则子字符串将延续到 stringvar 的最后. 示