标题: [文本处理] 【已解决】批处理命令for怎样扫描指定的文件夹及其子目录下的配置文件? [打印本页]
作者: chouxia 时间: 2014-10-4 16:05 标题: 【已解决】批处理命令for怎样扫描指定的文件夹及其子目录下的配置文件?
本帖最后由 chouxia 于 2014-10-28 08:15 编辑
想实现这一的功能,批处理扫描指定的文件夹及其子目录下的配置文件,输出内容含有rendering=0的文件
把这个文件中指定的行赋值给变量
显示变量内容。
我写的代码如下:- @echo off
- cd \work
- for /f %%z in ('findstr /s /i /m "rendering=0" *.*') do (
- for /f "tokens=1,* delims==" %%a in ('find "fts" ^< %%z') do (
- for /f "tokens=1,* delims==" %%c in ('find "inipath" ^< %%z') do (
- for /f "tokens=1,* delims==" %%e in ('find "cam" ^< %%z') do (
- for /f "tokens=1,* delims==" %%g in ('find "arjpath" ^< %%z') do (
- set v=%%b
- set w=%%d
- set x=%%f
- set y=%%h
- echo %v% %w% %x% %y%
- )
- )
- )
- )
- )
复制代码
悲剧的是,程序只输出findstr 的最后一个路径。过程路径一个都没有。
输出结果如下(work目录下有4个符合要求的子目录):
19854 v:\work\ddd\ HP c611.arj
19854 v:\work\ddd\ HP c611.arj
19854 v:\work\ddd\ HP c611.arj
19854 v:\work\ddd\ HP c611.arj
作者: DAIC 时间: 2014-10-4 21:33
@echo off
setlocal enabledelayedexpansion
cd \work
for /f %%z in ('findstr /s /i /m "rendering=0" *.*') do (
for /f "tokens=1,* delims==" %%a in ('find "fts" ^< %%z') do (
for /f "tokens=1,* delims==" %%c in ('find "inipath" ^< %%z') do (
for /f "tokens=1,* delims==" %%e in ('find "cam" ^< %%z') do (
for /f "tokens=1,* delims==" %%g in ('find "arjpath" ^< %%z') do (
set v=%%b
set w=%%d
set x=%%f
set y=%%h
echo !v! !w! !x! !y!
)
)
)
)
)
作者: chouxia 时间: 2014-10-7 12:25
感谢你的帮助。这个地方正好是我的短板。
好长时间不玩批处理了。
貌似很多东西都不太了解了
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |