Board logo

标题: 遍历当前盘符目录搜寻文件 [打印本页]

作者: junytx     时间: 2006-12-11 12:06    标题: 遍历当前盘符目录搜寻文件

在G:\下有多个目录(有隐藏目录)。
里面也有多层目录,
我想写一个bat以实现:遍历当前盘符目录搜寻某文件(如*.mp3),并生成一个txt文件,打开。

本人水平有限,只能想象这样实行,
先显示出当前所有目录及子目录。
dir /a:d /b /s>tree.txt
再用for依次调用tree.txt的目录,do cd 再用 for找出
问题来了???在for语名里能不能再次调用for命令??
也就是cd一个目标时,实行for %i in (*.mp3) do echo %i>list.txt
尔后继续cd另一个目录,再实行for %i in (*.mp3) do echo %i>>list.txt


刚接触bat不久,好多“术语”用得或许不恰当,希望大家能看懂我的意思。

当然,如果有更好的办法实现该效果的话,也请各位“大师”不吝赐教。
作者: zh159     时间: 2006-12-11 13:51
直接“dir/s/b *.mp3>list.txt”不就行了么?!
作者: lxmxn     时间: 2006-12-11 14:07

@echo off
    for /r g:\ %%i in (*.mp3) do echo %%i
pause

作者: lgx8280998     时间: 2006-12-14 10:24

:00
@echo off
cls
echo 说明:可以读取指定文件夹的指定文件到一个列表中。
echo       也可以读取整个盘的指定文件到一个列表中。
set /p p222=请输入要读取的路径(如D:\新建文件夹):
set /p p111=请输入要读取的后缀(如TXT):
set /p p333=请输入存放列表路径(如D:):
echo 正在读取中......
dir /s/b %p222%\*.%p111%>%p333%\1.txt
echo :::::::::::::你所要的%p111%文件列表::::::::::::::>%p333%\2.txt
FOR /f "delims=" %%a in ( 'type %p333%\1.txt' ) do dir /b "%%a">>%p333%\2.txt
echo 读取完毕.....
start %p333%\2.txt
pause
goto 00
注意:输入路径不要加\
输入后缀不要加.
如果要带路径请在do dir /b /s
这里加个/S的参数

[ Last edited by lgx8280998 on 2006-12-14 at 10:41 AM ]
作者: yy2372575     时间: 2006-12-22 02:54
是需要列表吗,那需要几个程序,要的话M我,如果输入,如下
dir g:\*.mp3 /b /s >>tmp.txt  
其中TMP.TXT可以是任何名,路径。如:c:\t.txt  f:\aa.txt等等
如果要显示的话,需加
call w.bat list @tmp.txt:m_dir
w.bat内容
WBAT $W %1 %2 %3 %4 %5 %6 %7 %8 %9
set WBAT=2
set ?=100
这里WBAT是个程序我不知怎么传给你,另外我这是纯DOS下可运行的