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


    嗯嗯,我之前碰到了这个问题,也是一直没有想明白是怎么回事,论坛里好像也有人测试过,没弄出个所以然。。。for /r 的这种情况确实只有在嵌套于另一个for中时,无论是设置变量,还是直接引用前一个for返回的值,都不能显示我们想要的结果。如果使用单独for /r 后跟参数都没问题,或者在一个for中使用 call,命令也可以通过。这是你即使为%%i重新赋予新的变量名都没有问题,但是,如果你开启了变量延迟,并且使用了!var!,那么它仍然无法正常显示>_<。也就是for /r 之后不能有"!"。
  在这里顺便求下说明。先谢过了!
踏实一些点.不要着急.你想要的时间都会给你.2

TOP

本帖最后由 慕夜蓝化 于 2014-12-30 21:29 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. dir /s/b/aa c:\*inf >1.txt 2>nul||echo,没有inf文件&goto :end
  4. set "n=0"
  5. :a
  6. if %n% equ 4 goto :end
  7. more +%n% 1.txt >2.txt
  8. set/p a=<2.txt
  9. echo,%a%:&set/p b=<"%a%"&set/p=!b!<nul&echo,&set "b="
  10. set/a n+=1
  11. goto :a
  12. :end
  13. pause>nul&exit
复制代码
这里是完全脱离for命令的一个尝试,一直以来,我都在想,除了for命令,还有那些命令能作用与行,也是前天刚刚想到 more +n and set/p 可以做到,但是相对于for来说可能比较麻烦一点。
踏实一些点.不要着急.你想要的时间都会给你.2

TOP

返回列表