`
isiqi
  • 浏览: 16581444 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

DOS截取字符串~

DOS 
阅读更多
@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


分享到:
评论

相关推荐

    BAT批处理脚本-求字符串长度.zip

    这段脚本首先定义了一个字符串`myString`,然后通过`for /l`循环逐个字符地截取字符串,直到找到空字符串,这时的索引值减一就是字符串的长度。`enabledelayedexpansion`选项允许我们在循环中动态修改环境变量。 ...

    使用批处理获取字符串的文字

    例如:截取从"@dimen/mm_到"的内容 android:paddingLeft="@dimen/mm_30" 获取到30 android:paddingLeft="@dimen/mm_30f" 获取到-30 ...echo 在字符串"%line_str1%"中的获取的数据为%ERRORLEVEL% goto :eof

    BAT批处理脚本-文本操作-字符串处理.zip

    3. **字符串截取**:批处理中的`SET`命令可以通过索引来截取字符串。例如,`SET var=abcdef&SET substr=%var:~2,3%`会将“abc”设置为`substr`。 4. **字符串比较**:使用`IF`语句进行字符串比较,如`IF "%str1%" =...

    BAT批处理脚本-文本操作-set截取字符详解.zip

    本文将深入探讨标题为"BAT批处理脚本-文本操作-set截取字符详解"的知识点,主要关注如何使用内置的`set`命令来对字符串进行截取操作。 首先,我们要了解批处理脚本的基本结构。一个`.bat`文件是由一条条DOS命令组成...

    BAT批处理脚本-文件相关操作-获取路径中指定层深的字符串.cmd.zip

    我们可以通过字符串处理技术,如字符串截取、查找替换等,来获取路径中特定位置的字符串。 在批处理脚本中,可以使用以下命令来操作字符串: 1. `FOR /F`:用于从文本字符串中解析数据,可以用来分割路径字符串。 2...

    经典之dos命令特殊字符含义

    - **在set命令中**:当使用`~`时,可以对环境变量进行更复杂的字符串操作,如截取子串或替换字符。 - **在set /a命令中**:`~`用于按位取反运算。例如: ```bat set /a a=~5 echo %a% ``` 这段代码将输出按位...

    dos批处理教程(实用)

    - **字符串截取**:利用`for /f`命令配合`tokens=*`等选项来截取字符串。 #### 第六章:if命令讲解 - **IF [NOT] ERRORLEVEL number command**:检查上一条命令的退出代码。 - **IF [NOT] string1==string2 ...

    讲座资料(2021年-2022年收藏的常见的Java上机面试题.doc

    该题要求编写一个函数,根据输入的字节数截取字符串,同时保证汉字不被分割。这个问题的关键在于理解Java中字符编码,尤其是中文字符占两个字节,而英文字符占一个字节。解决这个问题需要编写一个算法,能够识别和...

    dos批处理精典学习示例,仿密码认证

    字符串截取是处理文本数据时的常见操作。在DOS批处理中,可以使用内部命令如FOR /F或者第三方工具如FINDSTR来提取字符串的一部分。在密码认证场景下,可能需要截取用户输入的密码,比如只取前几位字符进行比较,或者...

    Bat /DOS开发关键知识点

    3. **字符串截取**:可以使用`%date:~X,Y%`的形式截取字符串。`X`表示起始位置,`Y`表示截取长度。如果`X`为负数,表示从右边开始计数,`Y`为负数表示截取到倒数第Y个位置。如果没有指定`Y`,则默认截取到字符串末尾...

    DOS批处理高级教程合编(含目录标签,方便查阅)

    - 使用set命令来设置自定义变量,进行简单计算和字符串处理,包括字符串替换和截取等操作。 6. if命令讲解 - IF命令的四种基本用法,包括条件判断、字符串比较、文件存在与否的判断以及if命令的增强用法。 7. ...

    DOS高级教程

    - 字符串截取:从变量中提取一部分字符串。 #### 6. IF命令讲解 `IF`命令用于执行基于条件的判断。 - **用法**: - 检查错误级别。 - 检查字符串是否相等。 - 检查文件是否存在。 - 增强用法。 #### 7. DOS...

    易语言源码显示DOS执行结果2.zip

    这可能涉及到对字符串处理函数的使用,比如“字符串截取”、“字符串替换”等,以便格式化和解析DOS命令的输出。 此外,为了在易语言程序中显示这些结果,可能使用到了“窗口控件”和“文本输出”相关的命令。例如...

    DOS编程高级技巧,命令详解,相关知识

    2、字符串截取 第六章 if命令讲解 第一种用法:IF [NOT] ERRORLEVEL number command 第二种用法:IF [NOT] string1==string2 command 第三种用法:IF [NOT] EXIST filename command 第四种用法:IF增强的用法 第七...

    DOS批处理高级教程精选之Word(DOCX)版

    **第五章 SET命令详解**介绍了如何使用SET命令设置和处理自定义变量,包括简单的算术运算和复杂的字符串处理功能,如字符串替换和截取。 **第六章 IF命令讲解**详细解析了IF语句的不同用法,包括根据错误级别执行...

    BAT批处理脚本-文本操作-理解字符截取功能.cmd.zip

    这个命令可以用来读取文件内容,同时也可以用来从一个字符串中提取特定部分,实现字符截取。例如,`FOR /F "tokens=1,2 delims=," %i in ('echo 12,34') do @echo 第一个字段:%i,第二个字段:%j` 这个例子中,`...

    DOS批处理高级教程资料精选

    - 字符串替换和截取等功能。 #### 八、if命令讲解 if命令是批处理中最常用的控制结构之一,支持多种条件表达式。 - **IF[NOT]ERRORLEVELnumbercommand** - 检查上一条命令的返回值。 - **IF[NOT]string1==...

    DOS批处理高级教程精选合编完整版.doc

    第五章详细讲解了SET命令的使用,不仅可以设置自定义变量,还可以进行简单的数学计算和字符串处理,如字符串替换和截取。 第六章介绍了IF命令的不同用法,包括根据ERRORLEVEL、字符串比较、文件是否存在以及增强的...

    mysql基本概念常见dos指令及常见SQL语句.pdf

    此外,还有一些函数用来截取字符串,如"substr()"、"substring()",以及根据位置查找字符串的函数"instr()"。 在进行数据查询时,还需要了解SQL的连接查询。连接查询分为内连接和外连接。内连接包括等值连接和非...

Global site tag (gtag.js) - Google Analytics