中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-09 00:11
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » 麻烦写个VBS(要求内详)
可打印版本  770 / 4
第1楼 jingyu57 发表于 2008-06-22 01:10
初级用户 发帖 10 积分 32
麻烦写个VBS(要求内详)
哪位热心的朋友帮忙写个VBS,要求如下:
在完成VBS之前我已建立好配置文件myext.txt,内容如下:
-------------------------------------------------
txt.lst .txt .reg .nfo .bat .cmd
image.lst .jpg .png .gif .bmp
exe.lst .exe .dll
.......
依此类推
.......
-------------------------------------------------

现在我想达到的目标是,针对当前文件扩展名(或当前文件夹),判断:
如果当前文件扩展名在已经定义好的myext.txt文件里,则取得该扩展名所在行的第一个字符串,即txt.lst或image.lst或exe.lst(这些.lst文件另有自定义内容),然后运行一个名叫popsel的程序,txt.lst或image.txt为其运行参数,即popsel txt.lst,
上面这个经过请教一些热心的朋友,我已经用批处理解决了。
findstr /i /c:"%~x1" c:\test\Myext.txt > c:\test\selpop.txt
for /f "tokens=1" %%i in (c:\test\selpop.txt) do "c:\test\popsel.exe" c:\test\%%i %1


现在有个问题就是,如果当前文件扩展名不在前面定义的配置文件里(事实上也不可能预先定义完),或者当前选择为文件夹或目录,则要求运行另外一个定义好的special.lst,用批处理弄了好长时间都出错,估计再弄下去也不会有结果了。
(批处理如何判断当前选择的是文件夹?)

当然,上面的myext.txt等文件是之前为批处理服务的,写出来是希望对理解和完成这个任务有帮助。相信如果用VBS的话可能都不需要这些预定义文件。

保守估计这个问题用VBS可能会好解决一些,所以特来请教熟悉VBS的朋友。希望有能力的朋友能帮忙完成这个VBS,谢谢!
第2楼 HAT 发表于 2008-06-22 02:14
版主 发帖 5,017 积分 9,023
你是不是想在文件或者文件夹的右键菜单里面添加bat或者vbs啊?
第3楼 jingyu57 发表于 2008-06-22 17:35
初级用户 发帖 10 积分 32
和在右键差不多。但是我用Hoekey获取当前文件的路径,所以这个VBS或者BAT应该和右键是一样的。
第4楼 jingyu57 发表于 2008-06-23 11:47
初级用户 发帖 10 积分 32
自己居然用批处理解决了,小小庆祝一下。顺便拉出来遛一遛,也许有人日后会用到。

findstr /i /c:"%~x1" c:\test\Myext.txt > c:\test\selpop.txt && goto ok
if "%~x1"=="" goto folder

start "" "c:\test\popsel.exe" "c:\test\special.lst" %1
exit

k
for /f "tokens=1" %%i in (c:\test\selpop.txt) do "c:\test\popsel.exe" c:\test\%%i %1
exit

:folder
start "" "c:\test\popsel.exe" "c:\test\folder.lst" %1

[ Last edited by jingyu57 on 2008-6-23 at 12:22 PM ]
第5楼 chishingchan 发表于 2008-06-23 12:30
银牌会员 发帖 538 积分 1,284
原来这里也研究VBS的?我看到的多是批处理。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023