中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助](VBS)如何读取某个文件夹下所有文件并输出????
作者:
标题: [求助](VBS)如何读取某个文件夹下所有文件并输出???? 上一主题 | 下一主题
kich
中级用户





积分 397
发帖 168
注册 2006-10-8
状态 离线
『楼 主』:  [求助](VBS)如何读取某个文件夹下所有文件并输出????

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

ps:不知道这里能不能问VBS,要是问错地方了,不要骂啊.
因为我对VB了解点,所以研究VBS,研究起来比BAT轻松多了

2007-1-26 07:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jmz573515
银牌会员




积分 1212
发帖 464
注册 2006-12-13
状态 离线
『第 2 楼』:  

批处理包括VBS吧,我想可以问,哈哈

2007-1-26 07:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jmz573515
银牌会员




积分 1212
发帖 464
注册 2006-12-13
状态 离线
『第 3 楼』:  

功能:读取当前文件夹下的所有文件。
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"


2007-1-26 08:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhclvip
初级用户





积分 138
发帖 50
注册 2007-1-23
状态 离线
『第 4 楼』:  

最好把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 ]

   此帖被 +4 点积分        点击查看详情   
评分人:【 jmz573515 分数: +4  时间:2007-1-26 08:52


2007-1-26 08:33
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jmz573515
银牌会员




积分 1212
发帖 464
注册 2006-12-13
状态 离线
『第 5 楼』:  

确实高明,欣赏~

2007-1-26 08:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kich
中级用户





积分 397
发帖 168
注册 2006-10-8
状态 离线
『第 6 楼』:  

太厉害了,佩服啊!!

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

再有,就是文件夹还有文件夹,这样的情况处理是怎么样呢?用3楼代码会出现什么样的结果?

2007-1-26 09:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kich
中级用户





积分 397
发帖 168
注册 2006-10-8
状态 离线
『第 7 楼』:  

还有,还想和文件名一行输出文件大小信息,这些大小信息数据要保证上下文都是对齐的(是不是用Tab()这函数?)那又改怎么做呢?

2007-1-26 10:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhclvip
初级用户





积分 138
发帖 50
注册 2007-1-23
状态 离线
『第 8 楼』:  补充回答

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 ]

2007-1-26 23:08
查看资料  发短消息 网志   编辑帖子  回复  引用回复
kich
中级用户





积分 397
发帖 168
注册 2006-10-8
状态 离线
『第 9 楼』:  

vbTab 定位不是很好,对好所有的文件对应起来,这样好看一点

2007-1-27 10:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: