vbs学习,书籍,看书笔记(3)

简介: vbs学习,书籍,看书笔记(3)

导航


1.ByRef与ByVal区别

2.文字常量与具名常量

3.内建常量如msgbox

4.循环for-next,for each -next ——遍历数组,查找文件小案例,读取txt中的字符,循环结构概括

5.err用法

6.with-end with 在使用同一对象时可以使用


——————————————————————————————————————


1.ByRef与ByVal区别

ByRef:是传地址的

ByVal:是传值得


看例子:


Option Explicit
dim a,b
a = 1
b = 1
add a,b
msgbox "a=" & a & " b=" & b
sub add(ByRef a,ByVal b)
  a = a+1            '因为是传地址所以脚本集中的a也会加1
  b = b+1      '传值只会在sub集中+1,外部不进行加1
end sub


运行结果:



——————————————————————————————————————


2.文字常量与具名常量


文字常量:字符串,数字文本,布尔值,日期都是一个文字常量,是动态的可以修改

具名常量:也就是存放地址的常量,运行时无法修改,是静态的,将Dim改为Const


注意:不能用变量或者函数来设置常量的值


Option Explicit
dim name
name = 123
const nam = name


会有错误:缺少文字常量


——————————————————————————————————————


3.内建常量如msgbox


msgbox “hello”,48 等同于 msgbox “hello”,vbExclamation


出现如下:



——————————————————————————————————————


4.循环for-next,for each -next

for-next: 可以控制循环次数


Option Explicit
dim num,i
for i=0 to  10 step 3   'step代表步数可以增加也可以减少
  num = num+i
next
msgbox num


for each -next:用于遍历集合,不能直接控制循环的次数,要根据所遍历的集合中对象的个数


例子1:(采用循环判断c盘中是否有对应部件)


option explicit
dim objFSO
dim objRootFolder
dim objFileLoop
dim boolFoundIt
set objFSO = wscript.createobject("scripting.filesystemobject")
set objRootFolder = objFSO.GetFolder("c:\")
set objFSO = nothing   '释放掉此对象
boolFoundIt = false   '初始状态定义为false
for each objFileLoop in objRootFolder.Files   '在集合中查看是否存在
  if UCase(objFileLoop.name) = "AUTOEXEC.BAT" then
  boolFoundIt = true
  exit for
  end if
next
set objFileLoop = nothing     '释放掉之前用的两个对象
set objRootFolder = nothing 
if boolFoundIt then   '根据是否为true来表示是否查找到
  msgbox "c盘中查找到此文件"
else
  msgbox "查无此文件"
end if


例子2:(不采用循环来查找是否存在文件,先创建对象后调用其中的函数fileExists)


option explicit
dim objFSO
set objFSO = wscript.createobject("scripting.filesystemobject")  
if objFSO.fileExists("C:\Users\93997\Desktop\vbs练习\1.txt") then '判断是否存在
  msgbox "查找到"
else
  msgbox "没有查找到"
end if
set objFSO = nothing     '释放对象


例子3:(for each来遍历数组)


option explicit
dim name(2)
dim nalop,names     '要进行定义
name(0) = "小明"
name(1) = "小华"
name(2) = "晓丽"
'也可以对数组进行遍历用for each 而不是用下标来表示位置,直接用对象来表示
for each nalop in name    
  names = names & nalop & " "
next
msgbox names
————————————————
版权声明:本文为CSDN博主「长路 ㅤ   」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cl939974883/article/details/104246077


例子4:(读取文本文件)


option explicit
dim objFSO,objStream,strfile
set objFSO = wscript.createobject("scripting.filesystemobject")
set objStream = objFSO.openTextFile("123456.txt")
set objFSO = nothing '释放对象
strfile = ""
do while not objStream.atEndofStream        '判断是否已经到了对应txt的末尾,没有到达继续执行
  strfile = strfile & objStream.readline & vbNewLine  '每次读取文件一行
loop
set objStream = nothing '释放对象
msgbox strfile


循环结构如下:



——————————————————————————————————————


5.err对象用法



clear():清除Err的所有属性,并且清除最近一次错误

Raise():生成自定义时生成的任务


on error resume next:忽略脚本的所有错误,将错误报告关闭

on error goto 0:将错误报告开启


 

日期:2020.2.10  PM16:12


相关文章
|
1月前
|
Linux 程序员 应用服务中间件
程序员必备的Linux指令
程序员必备的Linux指令
|
2天前
|
安全 Linux 应用服务中间件
简简单单之Linux命令入门
简简单单之Linux命令入门
|
1月前
|
SQL NoSQL Linux
工作中总结的30个常用Linux指令,实在记不住就别硬记了,看这篇就够了
工作中总结的30个常用Linux指令,实在记不住就别硬记了,看这篇就够了
54 1
|
1月前
|
Web App开发 存储 安全
手把手带你手撕一个shell
手把手带你手撕一个shell
|
1月前
|
存储 Shell 程序员
第一次使用脚本后想学点东西
第一次使用脚本后想学点东西
28 0
|
7月前
|
Shell
shell脚本编程笔记(一)
.在位于头部的用以供shell明白应当以何种方式启动的该脚本的命令行中。可以提供额外参数。
31 0
|
8月前
|
安全 Linux C++
[目录]读书书单
[目录]读书书单
|
10月前
|
数据采集 XML 人工智能
|
数据采集 运维 搜索推荐