[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] [已解决]批处理如何实现遍历一个未知类型的变量的每一位?

如有下列代码:
  1. set /p s=请输入:
复制代码
然后我想遍历变量s的每一位然后做一些操作,
比如将每一位逆序输出,
再比如正序输出每一位,但是每位之间要用逗号分割开,
请问各位前辈应该怎么实现呢?
多谢了。。。

[ 本帖最后由 fish 于 2010-8-3 21:54 编辑 ]

回复 2楼 的帖子

多谢neorobin前辈的精妙代码,算法已基本看懂,可是我还有一些细节不太清楚,求指教:
1、第一个exit的/b参数有什么用呢?晚辈以为多余。
2、为什么每个子过程里面都写上setlocal,这个是干什么用的,求详解。
3、set /p=!tt:~-1!<nul这句为什么不能写成set /p=%tt:~-1%<nul呢?(后面几句同)这里为什么要用变量延迟呢,这里也不是复合语句啊,请指点迷津。
多谢了。。。

TOP

回复 5楼 的帖子

但是我是真的不会3楼的那些问题啊,请您教教我吧,多谢了。。。

TOP

回复 7楼、8楼和9楼 的帖子

1、FOR前辈说set /p=!tt:~-1!<nul在这里和set /p=%tt:~-1%<nul是一样的,可我试后发现结果并不一样啊,请问这是为什么呢?
2、是不是说setlocal和endlocal合用实现了变量及时回收的机制呢?
3、第一个exit 的/b的确没有必要测试完毕。
4、7楼和8楼的前辈的代码中的defined用的很妙,学习了,多谢。
继续请求前辈指点中。。。

TOP

我现在想问的一个重要问题是

2楼前辈的代码中
set /p=!tt:~-1!<nul为什么不能换成set /p=%tt:~-1%<nul呢?怎么想也想不通。。。

TOP

终于想通了,多谢各位前辈帮忙了,多谢。。。

问题已解决,多谢关注此贴的热心前辈们。。。

TOP

返回列表