找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26958|回复: 7

[文件操作] [已解决]批处理命令 for /r 的路径可以迭代吗? 我的代码不能运行,求解?

[复制链接]
发表于 2015-1-27 17:03:07 | 显示全部楼层 |阅读模式
本帖最后由 battab 于 2015-1-29 23:30 编辑
  1. @echo off
  2. for %%a in (c:\ d:\ e:\ f:\) do (
  3.         for /r %%a %%b in (123.abc) do if exist %%b echo %%b
  4.         )
  5. pause
复制代码
如上代码,我想在c\d\e\f盘中搜索是否存在指定文件,只见批处理窗口一闪而过,求解?
发表于 2015-1-27 17:35:00 | 显示全部楼层
看起来象括号没配对。
发表于 2015-1-27 18:05:41 | 显示全部楼层
回复 1# battab
  1. @echo off
  2. for %%a in (c:\ d:\ e:\ f:\) do (
  3. for /f "delims=" %%b in ('dir /b/s %%a123.abc 2^>nul') do (
  4. echo %%b
  5. )
  6. )
  7. pause
复制代码
 楼主| 发表于 2015-1-28 11:37:34 | 显示全部楼层
回复 3# pcl_test
你的代码确实解决了搜索的问题,但我的问题是:for /r 命令的开关后面的盘符为什么不能被循环代入?
发表于 2015-1-28 16:51:17 | 显示全部楼层
回复 4# battab

for /r 不能用变量啦
发表于 2015-1-28 17:00:03 | 显示全部楼层
for /r %%a %%b in
这里出的问题,for 的参数部分必须在语法解析时就确定下来,不支持 !a! 与 %%a 这类在语法解析之后才被扩展的变量
发表于 2015-1-28 20:23:44 | 显示全部楼层
可以用%A%形式的变量来替换,但这种形式的变量只能解析一次,因此要实现变化,只能通过call调用来实现。
 楼主| 发表于 2015-1-29 23:27:46 | 显示全部楼层
好的,谢谢诸位的回答,清楚了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 21:31 , Processed in 0.099786 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表