![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-05 17:55 |
共 48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]接受命令行参数的VBS发生错误,请指正 |
| 可打印版本 779 / 6 |
| 第1楼 qinbuer | 发表于 2007-09-04 01:39 |
| 高级用户 发帖 228 积分 512 | |
|
[求助]接受命令行参数的VBS发生错误,请指正 写了一个接受命令行参数的VBS,用于读取文本的某一行,比如输入cscript
test.vbs test.txt 1即读取test.txt的第一行字符串,但是不知道哪里出错了,请各 位达人帮忙看下: If WScript.Arguments.Count=0 Then WScript.Echo "Sorry,参数错误." WScript.Quit End If Dim arr() Dim objFSO,objFile,WSH Set objFSO = CreateObject("Scripting.FileSystemObject") Set WSH=WScript.Arguments Set objFile = objFSO.OpenTextFile(WSH(0), 1) Do Until objFile.AtEndOfStream For i=1 To WSH.Count-1 If objFile.Line = WSH(i) Then theline=objFile.ReadLine WScript.Echo theline End If Next objFile.SkipLine Loop objFile.Close |
|
| 第2楼 slore | 发表于 2007-09-04 12:48 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
If WScript.Arguments.Count = 0 Then
WScript.Echo "Sorry,参数错误." WScript.Quit End If Dim objFSO,objFile,WSArg Set objFSO = CreateObject("Scripting.FileSystemObject") Set WSArg = WScript.Arguments Set objFile = objFSO.OpenTextFile(WSArg(0), 1) Do Until objFile.AtEndOfStream If objFile.Line = Int(WSArg(1)) Then WScript.Echo objFile.ReadLine Exit Do End If objFile.SkipLine Loop objFile.Close Set objFile = Nothing Set WSArg = Nothing Set objFSO = Nothing |
|
| 第3楼 qinbuer | 发表于 2007-09-04 16:47 |
| 高级用户 发帖 228 积分 512 | |
|
又是slore兄的热心指点,实在非常感谢。^_^
|
|
| 第4楼 qinbuer | 发表于 2007-09-04 16:52 |
| 高级用户 发帖 228 积分 512 | |
|
不好意思,有一问题没有指明,就是我的命令行参数不只一个,其数目不能确定,比
如cscript test.vbs test.txt 1 2 3即读取test.txt文本的1、2、3行,而兄的代码只能 接受除了指定文本之外的一个参数。 |
|
| 第5楼 slore | 发表于 2007-09-04 17:09 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
If WScript.Arguments.Count < 2 Then
WScript.Echo "Sorry,参数错误." WScript.Quit End If Dim objFSO,objFile,WSArg,NotSkip Set objFSO = CreateObject("Scripting.FileSystemObject") Set WSArg = WScript.Arguments Set objFile = objFSO.OpenTextFile(WSArg(0), 1) Do Until objFile.AtEndOfStream NotSkip = False For i = 1 To WSArg.Count - 1 If objFile.Line = Int(WSArg(i)) Then WScript.Echo objFile.ReadLine NotSkip = True Exit For End If Next If NotSkip = False Then objFile.SkipLine Loop objFile.Close Set objFile = Nothing Set WSArg = Nothing Set objFSO = Nothing |
|
| 第6楼 slore | 发表于 2007-09-04 17:13 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
行数按大小顺序写参数……虽然可以有随便写的。。。不过还是就这样了不改了
|
|
| 第7楼 qinbuer | 发表于 2007-09-05 12:04 |
| 高级用户 发帖 228 积分 512 | |
|
不胜感激!
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |