中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-25 07:13
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » dos之set截取字符串实例法全研究 查看 1,303 回复 4
楼 主 dos之set截取字符串实例法全研究 发表于 2010-03-04 21:16 ·  中国 河南 三门峡 联通
新手上路
积分 1
发帖 1
注册 2010-01-27 16:26
16年会员
UID 159602
性别 男
状态 离线
前言:这是今年寒假在家学批外理时的学习笔记,这是我学到set截取字符串之后的学习心得做成了一个小bat方便查看,原本已经在我百度空间上发出来了,不过想想还是发到这里和爱dos的大家伙共同交流才是最适合的!

@echo off
color 0a
title 《dos之set截取字符串实例法全研究》
echo 示例用法set var=%z:~x,y%
echo.
echo.
set a=幸福滴大脸,正在学习批处理!QQ390322157 论坛ID:webfans
echo ^|1^|2^|3^|4^|56^|78^|9^|
echo ---------------------------------------------------------------------------
echo 要截取的变量为:%a%
echo ---------------------------------------------------------------------------
echo.

echo 截取sample_1:
echo.
set var1=%a:~2,3%
echo %a:~2,3%从第2列字符起"以后"截取3列字符
echo 结果应该为:滴大脸 注意:若x为正数,则从x起但不包括x位置的字符
echo.
pause
echo=====Result1==========
echo 截取结果:%var1%
echo=====================
echo.
pause

echo 截取sample_2:
echo.
set var2=%a:~2,-24%
echo %a:~2,-24%从第2列后起截取到倒数第24列
echo 结果应该为:滴大脸,正在学习批处理!
echo.
pause
echo=====Result2==========
echo 截取结果:%var2%
echo=====================
echo.
pause

echo 截取sample_3:
echo.
set var3=%a:~3%
echo %a:~3%从第3个字符"以后"起截取'全部列'的字符
echo 结果应该为:大脸,正在学习批处理QQ390322157 论坛ID:webfans
echo.
pause
echo=====Result3==========
echo 截取结果:%var3%
echo=====================
echo.
pause

echo 截取sample_4:
echo.
set var4=%a:~-24,11%
echo %a:~-24,11%从倒数第24列起截取11列字符
echo 截取结果应该为:QQ390322157 注意:若x为负数,则从x起则包括x位置的字符
echo.
pause
echo=====Result4==========
echo 截取结果:%var4%
echo=====================
echo.
pause

echo 截取sample_5:
echo.
echo 要截取的的字符串是:%a%
set var5=%a:~-24,-11%
echo %a:~-24,-11%从倒数第24列截取到倒数第11列
echo 截取结果应该为:QQ390322157 论
echo.
pause
echo=====Result5==========
echo 截取结果:%var5%
echo=====================
echo.
pause
2 发表于 2010-03-04 22:15 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
全吗?
3 发表于 2010-12-10 11:35 ·  中国 安徽 合肥 联通
新手上路
积分 3
发帖 2
注册 2010-12-07 17:50
15年会员
UID 178872
性别 男
来自 合肥
状态 离线
不错。。。。。
4 发表于 2010-12-10 13:50 ·  中国 广东 佛山 顺德区 电信
初级用户
★★
积分 151
发帖 106
注册 2009-10-09 21:24
16年会员
UID 152856
性别 男
来自 河南省
状态 离线
如果有多行可以截取吗?
5 发表于 2010-12-10 13:53 ·  中国 广东 佛山 顺德区 电信
初级用户
★★
积分 151
发帖 106
注册 2009-10-09 21:24
16年会员
UID 152856
性别 男
来自 河南省
状态 离线
非常不错,,,但不知道可不可以像FOR那样截取一个文件的内容
论坛跳转: