|
tempuser
高级用户
积分 547
发帖 261
注册 2006-4-15
状态 离线
|
『楼 主』:
花了2个小时才明白的set用法,请大家不要见笑!
以下是我的学习心得,希望对还不知道的人有所帮助:
@echo off
set var=zgk.com
echo 变量var的值是:%var%
pause
set b=%var:~0,5%
rem %var:~0,5%:从头开始取前5个赋值给变量
echo 我认为的b=^%%var:^~0,5^%%结果是:zgk.c
echo 变量b的值是:%b%
pause
set c=%var:~1,5%
rem %var:~1,5%:从第2个开始取前5个赋值给变量
echo 我认为的c=^%%var:^~1,5^%%结果是:gk.co
echo 变量c的值是:%c%
pause
set e=%var:~0,-3%
rem %var:~0,-3%:截取最后3个,从头开始取到尾赋值给变量
echo 我认为的e=^%&var:^~0,-3^%%结果是:zgk.
echo 变量e的值是:%e%
pause
set f=%var:~1,-3%
rem %var:~1,-3%:截取最后3个,从第2个开始取到尾赋值给变量
echo 我认为的f=^%%var:^~1,-3^%%结果是:gk.
echo 变量f的值是:%f%
pause
echo 我认为的g=^%%var:^~3^%%结果是:.com
set g=%var:~3%
rem %var:~3%:从第4个开始取到尾赋值给变量
echo 变量g的值是:%g%
pause
set d=%var:~-3%
rem %var:~3%:只取后3个赋值给变量
echo 我认为的^d=^%%var:^~-3^%%结果是:com
echo 变量d的值是:%d%
pause
|
|
2008-3-12 17:44 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
|
2008-3-12 18:12 |
|
|
snowbbbb
初级用户
积分 118
发帖 42
注册 2006-9-14
状态 离线
|
『第
3 楼』:
新手学东西 最好是一个一个命令来教 hat所引用的这篇贴子 用的for命令是我们这样的新手还不会的 我上午看了一上午 http://www.cn-dos.net/forum/view ... ;highlight=%2Blxmxn 得到的结果不如花几分钟看tempuser这样的解说
此帖被 +3 点积分 点击查看详情 评分人:【 HAT 】 | 分数: +3 | 时间:2008-3-12 23:07 |
|
|
|
2008-3-12 19:06 |
|
|
learner0
初级用户
积分 108
发帖 49
注册 2008-2-26
状态 离线
|
|
2008-3-12 19:21 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
5 楼』:
Quote: | Originally posted by snowbbbb at 2008-3-12 07:06 PM:
新手学东西 最好是一个一个命令来教 hat所引用的这篇贴子 用的for命令是我们这样的新手还不会的 我上午看了一上午 [url]http://www.cn-dos.net/forum/view[/ur ... |
|
很好 很强大 +分
|
|
2008-3-12 23:07 |
|
|
oszero
新手上路
积分 17
发帖 9
注册 2008-1-29
状态 离线
|
|
2008-3-13 11:53 |
|
|
woo88
初级用户
积分 188
发帖 96
注册 2008-3-11
状态 离线
|
|
2008-3-15 01:26 |
|
|
313885174
中级用户
积分 206
发帖 100
注册 2007-7-9
状态 离线
|
|
2008-3-15 02:48 |
|
|
dslz666
中级用户
积分 233
发帖 117
注册 2007-11-28
状态 离线
|
|
2008-3-16 23:30 |
|
|
jy02141405
初级用户
积分 97
发帖 34
注册 2007-11-16
状态 离线
|
|
2008-3-18 00:09 |
|
|
tempuser
高级用户
积分 547
发帖 261
注册 2006-4-15
状态 离线
|
『第
11 楼』:
感谢zw19750516的全面提示
Quote: | Originally posted by tempuser at 2008-3-12 17:44:
以下是我的学习心得,希望对还不知道的人有所帮助:
@echo off
set var=zgk.com
echo 变量var的值是:%var%
pause
set b=%var:~0,5%
rem %var:~0,5%:从头开始取前5个赋 ... |
|
对zw19750516的全面提示稍加修改,觉得更适合自己的理解:
%var:~a,b%
注意:b不能为零;如a和b都为“负数”,a的绝对值一定要大于b的绝对值。
REM a为负数时,从变量var后端截取/保留a个字符赋值给新变量
REM b为负数时,从变量var后端截掉/丢弃b个字符后,剩余部分赋值给新变量
REM a为正数时,从变量var开头处截掉/丢弃a个字符后,剩余部分赋值给新变量
REM b为正数时,从变量var开始截取处保留b个字符赋值给新变量
|
|
2008-3-18 10:41 |
|
|
star85
初级用户
积分 31
发帖 11
注册 2007-9-10
状态 离线
|
『第
12 楼』:
学习
|
<img src=" |
|
2008-3-19 21:04 |
|
|
MASKKID
初级用户
积分 34
发帖 15
注册 2008-5-14
状态 离线
|
『第
13 楼』:
实例类的对新手真是太好了
我现在大概能看懂你的东西,慢慢我自己再试试基本山就差不多掌握一点了~~
谢谢啊
|
|
2008-5-27 13:16 |
|
|
easonL
初级用户
E生迅徒
积分 118
发帖 56
注册 2008-5-22 来自 南京
状态 离线
|
『第
14 楼』:
很亲切,呵呵
突然看见这个帖子很亲切,因为前两天自己也做了这方面的笔记,呵呵
贴出来,大家分享下!
可能感觉"很傻很天真",但是我们是新手,最不怕的是丢人!哈哈哈
@echo off
set var=liangguozhu
echo var=%var%
pause
rem %var:~a,b% 对于参数a,b的规律总结:
rem 注意:b不能为零;如a和b都为“负数”,a的绝对值一定要大于b的绝对值。
rem ==================================================================
rem ①a<0 b<0
rem 从变量var中a位置开始截取/保留(b-a)个字符赋值给新变量
set h=%var:~-3,-1%
echo ^%%var:^~-3,-1^%%:zh
echo %h%
pause
rem ②a<0 b>0
rem 从变量var中a位置开始截取/保留b个字符赋值给新变量
rem 注意:如果b>a的绝对值,也就是说从a位置到字符串最后的字符总数<b,这时候将a位置到字符串最后的字符赋值给新变量
set h=%var:~-4,3%
echo ^%%var:^~-4,3^%%:ozh
echo %h%
pause
set h=%var:~-4,5%
echo ^%%var:^~-4,5^%%:ozhu
echo %h%
pause
rem ③a>0, b<0
rem 从变量var中a位置开始往前截掉/丢弃至位置b的字符后,剩余部分赋值给新变量
set i=%var:~3,-1%
echo ^%%var:^~3,-1^%%:ngguozh
echo %i%
pause
rem ④a>0, b>0
rem 从变量var中a位置开始往后截取/保留b个字符赋值给新变量
set j=%var:~1,3%
echo ^%%var:^~1,3^%%:ian
echo %j%
pause
rem ⑤a=0, b>0
rem 从变量var开头往后截取/保留b个字符赋值给新变量
set k=%var:~0,3%
echo ^%%var:^~0,3^%%:lia
echo %k%
pause
rem ⑥a=0, b<0
rem 从变量var最后往前截掉/丢弃b个字符后,剩余部分赋值给新变量
set k=%var:~0,-3%
echo ^%%var:^~0,-3^%%:liangguo
echo %k%
pause
rem ⑦a没有, b<0
rem 截取/保留最后的|b|个字符
set l=%var:~-3%
echo ^%%var:^~-3^%%:zhu
echo %l%
pause
rem ⑧a没有, b>0
rem 截掉/丢弃前面的b个字符后,剩余部分赋值给新变量
set m=%var:~3%
echo ^%%var:^~3^%%:ngguozhu
echo %m%
pause
|
無求一生光輝 唯朢鬥志不會斷 |
|
2008-5-27 14:52 |
|
|
yesmao
初级用户
积分 35
发帖 18
注册 2007-1-14
状态 离线
|
|
2008-5-27 16:19 |
|