中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何截取变量中的倒数第二个字符串~?
« [1] [2] »
作者:
标题: 如何截取变量中的倒数第二个字符串~? 上一主题 | 下一主题
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 16 楼』:  

再来二个
@echo off
set var=afb dedf dflke yes mno
for %%a in (%var%) do set /a n+=1,m=n-1
for /f "tokens=%m% delims= " %%a in ("%var%") do echo %%a
pause

@echo off
set var=afb dedf dflke yes mno
for %%a in (%var%) do call set str=%%a %%str%%
for /f "tokens=2 delims= " %%a in ("%str%") do echo %%a
pause
[ Last edited by 26933062 on 2008-5-12 at 12:24 AM ]



致精致简!
2008-5-12 00:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 17 楼』:  

方法挺多的嗬。。。

shift开始就想了……不过感觉……移位次数等于 总长度-1
我改楼主的方法,执行是固定2次……

单独重次数分析,具体快慢就不知道了。

2008-5-12 00:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 18 楼』:  水一个:

pusofalse兄弟学习认真,思路活跃,钻研刻苦,提高迅速,值得加分鼓励!!!



批处理之家新域名:www.bathome.net
2008-5-12 00:22
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 19 楼』:  

简直太强了。。一道题目竟有这么多解法,赞佩各位前辈的思维!

2008-5-12 00:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 20 楼』:  



  Quote:
Originally posted by zw19750516 at 2008-5-12 12:22 AM:
pusofalse兄弟学习认真,思路活跃,钻研刻苦,提高迅速,值得加分鼓励!!!

多谢前辈赏识~ 我都不好意思了~ ^_^

2008-5-12 00:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 21 楼』:  



  Quote:
Originally posted by pusofalse at 2008-5-12 00:24:

多谢前辈赏识~ :D 我都不好意思了~ ^_^

不要不好意思了,兄弟cn-dos需要你这样的人,加油啊!!!



批处理之家新域名:www.bathome.net
2008-5-12 00:26
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 22 楼』:  



  Quote:
Originally posted by zw19750516 at 2008-5-12 12:26 AM:

不要不好意思了,兄弟cn-dos需要你这样的人,加油啊!!!

^_^ 我也只是在CN-DOS成张起来的而已~ 当然会出自己的一份力的~

2008-5-12 00:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 23 楼』:  

我也来一个
@echo off
set var=afb dedf dflke yes mno
set var=%var: =.%&call:lp %%var%%
echo %str:~1%
pause&goto :eof
:lp
if not defined str (set str=%~n1&call:lp %%str%%)else set str=%~x1




简单!简单!再简单!
2008-5-12 01:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 24 楼』:  

再来个另类点的。
@echo off
set "var=afb dedf dflke sd yes mno"
set var=%var: ="%
%var:*"=set "var=%
set var=%var:"= %
for %%a in (%var%) do set var=%%a
echo %var%
pause




致精致简!
2008-5-12 03:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 25 楼』:  



  Quote:
Originally posted by 26933062 at 2008-5-12 03:20 AM:
再来个另类点的。
[code]
@echo off
set "var=afb dedf dflke sd yes mno"
set var=%var: ="%
%var:*"=set "var=%
set var=%var:"= %
for %%a in (%var%) do set v ...

明白了。。。但是set 有这种用法吗~?
删除最前和最后面的?~

[ Last edited by pusofalse on 2008-5-12 at 04:16 AM ]

2008-5-12 04:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 26 楼』:  



  Quote:
Originally posted by 26933062 at 2008-5-12 03:20:
再来个另类点的。
[code]
@echo off
set "var=afb dedf dflke sd yes mno"
set var=%var: ="%
%var:*"=set "var=%
set var=%var:"= %
for %%a in (%var%) do set v ...

怎么红色这行没有set也可以呢,请解释一下

2008-5-12 11:09
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: