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

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

本帖最后由 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盘中搜索是否存在指定文件,只见批处理窗口一闪而过,求解?
学习中

看起来象括号没配对。

TOP

回复 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
复制代码

TOP

回复 3# pcl_test
你的代码确实解决了搜索的问题,但我的问题是:for /r 命令的开关后面的盘符为什么不能被循环代入?
学习中

TOP

回复 4# battab

for /r 不能用变量啦

TOP

for /r %%a %%b in
这里出的问题,for 的参数部分必须在语法解析时就确定下来,不支持 !a! 与 %%a 这类在语法解析之后才被扩展的变量

TOP

可以用%A%形式的变量来替换,但这种形式的变量只能解析一次,因此要实现变化,只能通过call调用来实现。

TOP

好的,谢谢诸位的回答,清楚了。
学习中

TOP

返回列表