中国DOS联盟论坛

中国DOS联盟
-- 联合DOS 推动DOS 发展DOS --

联盟域名:cndos.rths.ml  论坛域名:cndos.rths.ml/forum

DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

» 游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助

 

<   <<   [1] [2] [3] [4]  >>
作者:
标题: 【Billunique】个人网志-滴水汇海 上一主题 | 下一主题
Billunique
中级用户

菜鸟总动员


积分 259
发帖 112
注册 2006-8-28
状态 离线
『第 46 楼』:  

  今天转悠的时候偶然间发现bjsh版主发的这个Vbs教程,真的相当不错:http://www.cn-dos.net/forum/viewthread.php?tid=30588。以后我就可能会不时地从中摘记一些东西啦。



★①②③④⑤⑥⑦⑧⑨⑩㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ【●】→←↑↓▲
2007-6-14 11:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Billunique
中级用户

菜鸟总动员


积分 259
发帖 112
注册 2006-8-28
状态 离线
『第 47 楼』:  

  1.因为Msgbox的第三个参数是标题,像下面这样就可以省些力气:
CODE:  [Copy to clipboard]
MsgBox "1",,"2"
  2.凡是将一对象引用赋给变量,就需要使用Set关键字。那么什么是对象引用呢?凡是字符串、数值、布尔值之外的变量都是对象引用。

  3.Run在运行解析时,遇到空格会停止,解决的方法是使用双引号。比如:wscript.shell.run"""D:\Study\VBS\windows 脚本编程核心技术精解"""。
  run函数有三个参数,第一个参数是你要执行的程序的路径,第二个程序是窗口的形式,0是在后台运行;1表示正常运行;2表示激活程序并且显示为最小化;3表示激活程序并且显示为最大化...; 第三个参数是表示这个脚本是等待还是继续执行,如果设为了true,脚本就会等待调用的程序退出后再向后执行。



★①②③④⑤⑥⑦⑧⑨⑩㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ【●】→←↑↓▲
2007-6-14 12:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Billunique
中级用户

菜鸟总动员


积分 259
发帖 112
注册 2006-8-28
状态 离线
『第 48 楼』:  

  1.On  Error Resume  Next  
  这行语句可以告诉vbs在运行时跳过发生错误的语句,紧接着执行跟在它后面的语句。

  2.虽然On Error Resume Next语句可以防止vbs脚本在发生错误时停止运行,但是它并不能真正处理错误,要处理错误,你需要在脚本中增加一些语句,用来检查错误条件并在错误发生时处理它。

  vbscript提供了一个对象err对象,他有两个方法clear,raise,5个属性:description,helpcontext,helpfile,number,source。err对象不用引用实例,可以直接使用。



★①②③④⑤⑥⑦⑧⑨⑩㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ【●】→←↑↓▲
2007-6-14 15:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Billunique
中级用户

菜鸟总动员


积分 259
发帖 112
注册 2006-8-28
状态 离线
『第 49 楼』:  

关于操作注册表我想说的:

  1.显然要借助(引用)Wscript.Shell。

  2.路径的最后是用"\"结尾的,比如"HKCU\....\Thing\",就表示这是个项;若没有"\",如"HKCU\....\Thing",则表示这是个键值(键值跟数据不是一个概念)

  3.对于写操作,可以在(路径上的)一个项后进行随意的延伸,不用去担心这个项或键值本身是否存在;如果不存在,那就是“一路”新增,如果存在,那就是修改。All Right?!

  4.若想删除一个键值,则Wscript.Shell.Regdelete "HKCU\....\Thing";
  若想把该键值的数据清空,则Wscript.Shell.Regwrite "HKCU\....\Thing",""。

[ Last edited by Billunique on 2007-6-14 at 04:35 PM ]



★①②③④⑤⑥⑦⑧⑨⑩㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ【●】→←↑↓▲
2007-6-14 16:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Billunique
中级用户

菜鸟总动员


积分 259
发帖 112
注册 2006-8-28
状态 离线
『第 50 楼』:  

  



★①②③④⑤⑥⑦⑧⑨⑩㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ【●】→←↑↓▲
2007-6-15 12:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Billunique
中级用户

菜鸟总动员


积分 259
发帖 112
注册 2006-8-28
状态 离线
『第 51 楼』:  

  用下面这些代码放在VB编辑器里试试大致可以明白关于文件操作的一些东西:
CODE:  [Copy to clipboard]
Set fs=CreateObject("scripting.filesystemobject")
'Set ff=fs.GetFile("d:\bak\11.txt")
'MsgBox ff
'i=ff.Attributes
'MsgBox i
Set fo=fs.OpenTextFile("d:\bak\11.txt")
'MsgBox fo
v=fo.Read(5)
MsgBox v
line1=fo.ReadLine
line2=fo.ReadLine
MsgBox line2
con=fo.ReadAll
MsgBox con

'11.txt文件的内容可以是这样:
cndos.1111 aaa
22222
  想说明的是,OpenTextFile之后进行的Read操作,好像是在“切割”文本似的;上面的先读了到下面就只能读到其“切”完的加上自己“能力范围”内的那部分(我也说不清楚,呵呵)。ReadLine的能力范围只是读一行,不能读指定行。

  Write和WriteLine的用法类似,不过Open的时候需要“OpenTextFile(~.txt,2,[true|false]”其中1表只读、2表写、8表追加;true为不存在则创建,默认为false。

  若想既写又读,那么必须在要进行具体操作前把模式(即1、2、8)先定好,一种操作对应一个模式,否则脚本就会报错。

[ Last edited by Billunique on 2007-6-15 at 07:50 PM ]



★①②③④⑤⑥⑦⑧⑨⑩㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ【●】→←↑↓▲
2007-6-15 19:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Billunique
中级用户

菜鸟总动员


积分 259
发帖 112
注册 2006-8-28
状态 离线
『第 52 楼』:  

运用数组


  Variable arrays are just groups of variables that can be accessed using an index number. This is especially useful if your script needs to look up information stored in variables.

  Variable arrays always need to be declared so that VBScript knows how much storage space it should reserve. You can declare variable arrays using Dim or ReDim.

  Dim initializes a variable array of fixed size. You need to specify the number of elements the array should hold, and you cannot expand or shrink the array afterwards.

  Using Dim, you need to specify the number of entries as a constant or absolute number. You are not allowed to use a variable to feed the size of Dim. ReDim will also accept variables.

  大致说的就是ReDim比Dim好,可以随时改变数组的大小,那我们就用ReDim好了呗:)下面是一个简单例子:
CODE:  [Copy to clipboard]
Dim myarray(5)

myarray(0)="Unknown"
myarray(1)="Removable"
myarray(2)="Fixed"
myarray(3)="Remote"
myarray(4)="CD-ROM"
myarray(5)="RAM-Drive"

'find out the type of drives

Set fs = CreateObject("scripting.filesystemobject")

'get all drives:
Set drives = fs.Drives

' Drives属性:返回一个Drives集合,包含了本机上所有可用的Drive对象

For Each drive In drives
        letter = drive.DriveLetter
        kind = myarray(drive.DriveType)
        list = list & "Drive " & letter & " is of type "& kind & vbCr
Next

' DriveLetter属性:返回盘符
' DriveType属性:返回一个数值,指示驱动器类型,事实上系统的定义和该例上面的定义是一致的。

MsgBox list
[ Last edited by Billunique on 2007-6-18 at 11:56 AM ]



★①②③④⑤⑥⑦⑧⑨⑩㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ【●】→←↑↓▲
2007-6-18 11:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Billunique
中级用户

菜鸟总动员


积分 259
发帖 112
注册 2006-8-28
状态 离线
『第 53 楼』:  

Split和Join

  其实用Split可以简化上面的代码。
CODE:  [Copy to clipboard]
MyArray="unknown;Removable;Fixed;Remote;CD-ROM;RAM-Drive"
MyArray=Split(MyArray,";")
.......
  Split其实就是用分隔符将一段字符串“弄”成数组。

  而Join就是把数组里的各个元素“弄”成字符串。比如:
CODE:  [Copy to clipboard]
Myarray(0)="This "
Myarray(1)="is "
Myarray(2)="Billunique"
MyString=Join(Myarray)

'Then MyString="This is Billunique"




★①②③④⑤⑥⑦⑧⑨⑩㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ【●】→←↑↓▲
2007-6-18 18:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Billunique
中级用户

菜鸟总动员


积分 259
发帖 112
注册 2006-8-28
状态 离线
『第 54 楼』:  

三月没来了,实在惭愧啊,又一次被方向迷失了......



★①②③④⑤⑥⑦⑧⑨⑩㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ【●】→←↑↓▲
2007-9-17 19:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
gne3
高级用户

DOS学徒


积分 526
发帖 252
注册 2007-2-12
状态 离线
『第 55 楼』:  

哈哈,你的第二帖对我有启发。谢谢

2008-1-11 20:04
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Billunique
中级用户

菜鸟总动员


积分 259
发帖 112
注册 2006-8-28
状态 离线
『第 56 楼』:  

过来打个招呼,我最爱的论坛之一!!好久不见~



★①②③④⑤⑥⑦⑧⑨⑩㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ【●】→←↑↓▲
2008-8-18 11:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
a574616737
初级用户




积分 28
发帖 13
注册 2008-8-24
状态 离线
『第 57 楼』:  

想楼住学习,等有上大学有时间时,也来这里写写学习笔记

2008-8-25 10:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Billunique
中级用户

菜鸟总动员


积分 259
发帖 112
注册 2006-8-28
状态 离线
『第 58 楼』:  

呱呱,露个脸,吐个泡泡



★①②③④⑤⑥⑦⑧⑨⑩㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ【●】→←↑↓▲
2010-5-12 14:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zzz19760225
超级版主




积分 3667
发帖 2015
注册 2016-2-1
状态 离线
『第 59 楼』:  

怎么复制的



1<词>,2[句],3/段\,4{节},5(章)。
2016-2-9 21:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zzz19760225
超级版主




积分 3667
发帖 2015
注册 2016-2-1
状态 离线
『第 60 楼』:  

看看



1<词>,2[句],3/段\,4{节},5(章)。
2017-12-4 13:48
查看资料  发短消息 网志   编辑帖子  回复  引用回复
<   <<   [1] [2] [3] [4]  >>
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转:  



[ 联系我们 - 中国DOS联盟 ]


Powered by Discuz! © 2001-2011