标题: [文件操作] [已解决]批处理命令 for /r 的路径可以迭代吗? 我的代码不能运行,求解? [打印本页]
作者: battab 时间: 2015-1-27 17:03 标题: [已解决]批处理命令 for /r 的路径可以迭代吗? 我的代码不能运行,求解?
本帖最后由 battab 于 2015-1-29 23:30 编辑
- @echo off
- for %%a in (c:\ d:\ e:\ f:\) do (
- for /r %%a %%b in (123.abc) do if exist %%b echo %%b
- )
- pause
复制代码
如上代码,我想在c\d\e\f盘中搜索是否存在指定文件,只见批处理窗口一闪而过,求解?
作者: yiwuyun 时间: 2015-1-27 17:35
看起来象括号没配对。
作者: pcl_test 时间: 2015-1-27 18:05
回复 1# battab - @echo off
- for %%a in (c:\ d:\ e:\ f:\) do (
- for /f "delims=" %%b in ('dir /b/s %%a123.abc 2^>nul') do (
- echo %%b
- )
- )
- pause
复制代码
作者: battab 时间: 2015-1-28 11:37
回复 3# pcl_test
你的代码确实解决了搜索的问题,但我的问题是:for /r 命令的开关后面的盘符为什么不能被循环代入?
作者: pcl_test 时间: 2015-1-28 16:51
回复 4# battab
for /r 不能用变量啦
作者: CrLf 时间: 2015-1-28 17:00
for /r %%a %%b in
这里出的问题,for 的参数部分必须在语法解析时就确定下来,不支持 !a! 与 %%a 这类在语法解析之后才被扩展的变量
作者: yiwuyun 时间: 2015-1-28 20:23
可以用%A%形式的变量来替换,但这种形式的变量只能解析一次,因此要实现变化,只能通过call调用来实现。
作者: battab 时间: 2015-1-29 23:27
好的,谢谢诸位的回答,清楚了。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |