Board logo

标题: [求助](VBS)如何读取某个文件夹下所有文件并输出???? [打印本页]

作者: kich     时间: 2007-1-26 07:25    标题: [求助](VBS)如何读取某个文件夹下所有文件并输出????

请问:如何读取某个文件夹下所有文件并输出????  
关于VBS操作文件的问题:
如何读取某个文件夹下的所有文件(或者所有某种格式的文件,比如txt),然后把这些文件列表再输出到一个该文件夹下的文本里???
求教,希望可以给我一段VBS代码!谢谢

ps:不知道这里能不能问VBS,要是问错地方了,不要骂啊.
因为我对VB了解点,所以研究VBS,研究起来比BAT轻松多了
作者: jmz573515     时间: 2007-1-26 07:53
批处理包括VBS吧,我想可以问,哈哈
作者: jmz573515     时间: 2007-1-26 08:07
功能:读取当前文件夹下的所有文件。
set ws=createobject("wscript.shell")
set fso=createobject("scripting.filesystemobject")
set folder=fso.getfolder(ws.currentdirectory)
set files=folder.files
for each  file in files
s=s&file&vbcrlf
next
set file=fso.createtextfile("out.txt")
file.write s
file.close
ws.run "notepad.exe out.txt"

作者: zhclvip     时间: 2007-1-26 08:33
最好把3楼的代码改写为自定义函数,这样使用更方便。
function list(fd)
        set fso=createobject("scripting.filesystemobject")
        set folder=fso.getfolder(fd)
        set files=folder.files
        for each efile in files
                list=list & efile & vbcrlf
        next
end function

还有一点:仅要文件名列表时,可以改为 list=list & efile.name & vbcrlf
否则efile就是efile.path,相同。

如果LZ要用BAT则有:
@echo off
dir /b >out.txt
start out.txt

[ Last edited by zhclvip on 2007-1-25 at 07:51 PM ]
作者: jmz573515     时间: 2007-1-26 08:52
确实高明,欣赏~
作者: kich     时间: 2007-1-26 09:51
太厉害了,佩服啊!!

那再问一下,要是对这个文件进行文件过滤又应该怎么操作呢?
比如说只记录后缀为txt(或者mp3)这样的文件!

再有,就是文件夹还有文件夹,这样的情况处理是怎么样呢?用3楼代码会出现什么样的结果?
作者: kich     时间: 2007-1-26 10:34
还有,还想和文件名一行输出文件大小信息,这些大小信息数据要保证上下文都是对齐的(是不是用Tab()这函数?)那又改怎么做呢?
作者: zhclvip     时间: 2007-1-26 23:08    标题: 补充回答

function list(fd,ext)
'fd是文件夹路径
'ext是扩展名
        set fso=createobject("scripting.filesystemobject")
        set folder=fso.getfolder(fd)
        set files=folder.files
        for each efile in files
                if instr(right(efile.name,4),ext) then _
                list=list & efile.name & vbTab & efile.size & vbcrlf
        next
end function

[ Last edited by zhclvip on 2007-1-26 at 10:10 AM ]
作者: kich     时间: 2007-1-27 10:02
vbTab 定位不是很好,对好所有的文件对应起来,这样好看一点