中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]接受命令行参数的VBS发生错误,请指正
作者:
标题: [求助]接受命令行参数的VBS发生错误,请指正 上一主题 | 下一主题
qinbuer
高级用户

我思故我在


积分 512
发帖 228
注册 2007-1-21
状态 离线
『楼 主』:  [求助]接受命令行参数的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



我确实是只菜鸟,而且这里X人太多,所以我不敢装X。谁要再说我装X,我就XXOO他。
2007-9-4 01:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 2 楼』:  

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

   此帖被 +4 点积分        点击查看详情   
评分人:【 qinbuer 分数: +4  时间:2007-9-4 16:47


2007-9-4 12:48
查看资料  发短消息 网志   编辑帖子  回复  引用回复
qinbuer
高级用户

我思故我在


积分 512
发帖 228
注册 2007-1-21
状态 离线
『第 3 楼』:  

又是slore兄的热心指点,实在非常感谢。^_^



我确实是只菜鸟,而且这里X人太多,所以我不敢装X。谁要再说我装X,我就XXOO他。
2007-9-4 16:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qinbuer
高级用户

我思故我在


积分 512
发帖 228
注册 2007-1-21
状态 离线
『第 4 楼』:  

不好意思,有一问题没有指明,就是我的命令行参数不只一个,其数目不能确定,比

如cscript test.vbs test.txt 1 2 3即读取test.txt文本的1、2、3行,而兄的代码只能

接受除了指定文本之外的一个参数。



我确实是只菜鸟,而且这里X人太多,所以我不敢装X。谁要再说我装X,我就XXOO他。
2007-9-4 16:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 5 楼』:  

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

2007-9-4 17:09
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 6 楼』:  

行数按大小顺序写参数……虽然可以有随便写的。。。不过还是就这样了不改了

2007-9-4 17:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
qinbuer
高级用户

我思故我在


积分 512
发帖 228
注册 2007-1-21
状态 离线
『第 7 楼』:  

不胜感激!



我确实是只菜鸟,而且这里X人太多,所以我不敢装X。谁要再说我装X,我就XXOO他。
2007-9-5 12:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: