Board logo

标题: 如何取得每行倒数字符 [打印本页]

作者: wjcing     时间: 2008-11-24 21:17    标题: 如何取得每行倒数字符

我在一个22.txt文件中有如下内容:
88 59 60 89 88 99 100 88 59 ... 87 56 84 67 78 90 88 80 99 81 80 83 85
99 59 60 89 88 99 100 88 59 ...  87 56 84 67 78 90 88 80 99 81 80 83 65
33 59 60 89 88 99 100 ...  88 59 87 56 84 67 78 90 88 80 99 81 80 83 75

我用以下命令想把每行的倒数第二个字符给取出来:如第一行的8,第二行的6,第三行的7,
@echo off& Setlocal Enabledelayedexpansion
for /f "usebackq tokens=1 delims=" %%a in ("C:\Documents and Settings\22.txt") do (
echo %%a 
set str=%%a
echo %str:~-2,1%
)
echo.&pause

运行以上命令后变量%%a是有值的,也就是一行的值,但是在str中没有值,我想问题应该就在这里,但是我不知道应该怎么写才能取出我想要的结果。

麻烦各位高手帮帮忙,谢谢了。

[ Last edited by wjcing on 2008-11-24 at 21:19 ]
作者: terse     时间: 2008-11-24 21:33
echo !str:~-2,1!
作者: tireless     时间: 2008-11-24 21:35
看一下这个帖子:

什么情况下该使用变量延迟?
http://www.cn-dos.net/forum/viewthread.php?tid=20733
作者: wjcing     时间: 2008-11-24 22:29
变量延迟我用了啊。。还是不行。。哎。。看不出错在那。。
setlocal EnableDelayedExpansion
作者: HAT     时间: 2008-11-24 22:48    标题: Re 4楼

2楼不是告诉你了么?
作者: wjcing     时间: 2008-11-24 22:53
呵呵。。。二楼的可以了。。我刚才还以为!是%呢。。。为什么!号就行%就不行了呢。。。。郁闷找不到!的帮忙。。
作者: HAT     时间: 2008-11-24 22:58
CMD/DOS下符号的作用参考
http://www.cn-dos.net/forum/viewthread.php?tid=30985

变量延迟详解
http://www.cn-dos.net/forum/viewthread.php?tid=28273

什么情况下该使用变量延迟
http://www.cn-dos.net/forum/viewthread.php?tid=20733

一个变量嵌套变量的问题
http://www.cn-dos.net/forum/viewthread.php?tid=41143
作者: wjcing     时间: 2008-11-24 23:07
好的。谢谢。。。看看先。。
作者: wjcing     时间: 2008-11-25 00:06
我现在对感吧号(!)的理解是这样的。。它和%一样是转义字符(或者说是引用,扩展),只不过他是在启用了Setlocal Enabledelayedexpansion之后在在要延迟的变量中使用的转义字符,不知道的我理解有没有错。。

睡了。。明天再看了。。谢谢各位的帮忙。。。谢谢。

[ Last edited by wjcing on 2008-11-25 at 00:07 ]