一、VBScript概述
VBScript(Microsoft Visual Basic Scripting Edition)是程序开发语言 Visual Basic 家族的最新成员,是一种基于对象的编程语言。用户在HTML文件中可直接嵌入VBScript脚本,从而扩展HTML,使其不仅仅是一种页面格式语言,而且还可以对用户的 *** 作做出反应。脚本语言是用来控制网页的控件和对象的一种编程语言,用其加强网页的灵活性和多样性。VBScript作为目前流行的脚本语言,是ASP的宿主语言,为Microsoft所推荐。它以其简单的语法、完善的功能,既可作为客户端编程语言,也可作为服务器端编程语言。
VBScript既可作为客户端编程语言,也可作为服务器端编程语言。客户端脚本由一个配备了解释器的Web浏览器处理,当一个浏览器的用户执行了一个 *** 作时,不必通过网络对其做出响应,客户端程序就能完成任务。而服务器端脚本则是在Web服务器上执行生成代码,然后发送到浏览器,在浏览器上收到的只是执行后的标准HTML文件。(见说明)
二、VBScript数据类型及运算符
1、数据类型 在Visual Basic等高级程序设计语言中,有整型、字符型、数值型等多种不同的数据类型,而在VBScript中只有一个叫做Variant(一般译为“变体型”)的数据类型。随着使用方式的不同,Variant可以包含不同类型的信息,即这种数据类型可以根据用途的需要选择最合适的子类型来存储数据。 “” “ “
注意:定义时不需要指明具体子类型。
DIM A
A= #30/5/2008#
2、VBScript的运算符
1 算术运算符
除了加(+)、减(-)、乘()、除(/)外,还有经常使用的取余(Mod)、求幂(^)及整除(\)等。如:5 Mod 3,结果为2;5 ^ 3结果为125;5/3结果为1。
2 字符串(连接)运算符
有“&”或“+”两种,用于将两个字符串进行连接。在使用时,经常用“&”,因为连接符“+”与算术运算符中的加号“+”类似,所以当表达式两边都是数值时,则根据运算符的优先级会将“+”默认为表示相加。
“hello” + “ world” “hello world”
3 逻辑运算符
最常用的有与(And)、或(Or)、非(Not)三种,用于判断表达式是否成立,其返回值为:真(True)或假(False)。
(1) And:只有两个值全为真时,结果才为真。如(5>3)And(5>10),表达式的值为:False。
(2) Or:只要有一个值为真时,结果就为真。如(5>3)Or(5>10),表达式的值为:True。
(3) Not:非真则为假,非假则为真。如Not(5>3),结果为:False;Not(5>10),结果为:True。
4 比较运算符
最常用的有等于(=)、不等于(<>)、小于(<)、大于(>)、小于等于(<=)、大于等于(>=)6种,用于将表达式两边的值做出比较,其返回值为:真(True)或假(False)。
三、VBScript变量与常量
1、变量的声明与赋值 变量和常量是编程语言最基本的组成单位,由变量和常量组成表达式,然后由表达式组成更为复杂的程序。变量是代表能够存储程序信息的计算机内存的位置的符号,在程序的运行过程中可以进行调用变量或者改变变量值等 *** 作。并不需要知道具体的变量在内存中的地址,只需要调用变量名就可以实现对变量的引用。如前所述,VBScript中的数据类型只有Variant一种,所以变量的类型也都是Variant类型的。
命名变量就是为变量取个名字。变量名称要遵循VBScript命名的标准规则:必须以字母开头,不能包含句点,长度在255个字符内且在其作用域内必须是惟一的。
在VBScript中声明变量要用到Dim,语法结构为:
dim 变量名1,变量名2,变量名3,变量名n
声明一个或多个变量,在声明多个变量时用“,”分割变量名
当变量定义好后,就可以给变量赋一个值,语法结构为: 变量名=值
将“值”赋给变量名。
2、数组的定义 一个变量如果包含多于一个的相关数值,就称为数组。数组的定义与变量一样,使用Dim,只是将元素的个数即数组的大小包含在数组名称之后的括号里。 一维数组 dim a(7)
二维数组 dim a(4,5)
Redim Preserve a(8)
Redim重新调整动态数组的大小,重新声明数组后,原有数组的数值将全部清空,如果希望保留原有项目的数值,可以使用Preserver关键字。
3、定义常量 常量的值,在程序中是不变的,其命名规则与变量的命名规则一样。在VBScript中定义常量使用Const语句,语法结构为:const 常量名=值
const a="星期一" '字符串常量,必须用双引号(" ")括起来
const a=30 '数值常量
const a="---" '字符串常量
const a=#30/8/2005# '日期常量,必须用井号(#)括起来
const a = 30
a = 50
四、VBScript常用函数 1、数字运算函数 取绝对值 格式:Abs(<数值表达式>)
功能:返回数值表达式的绝对值。如果输入的数值大于等于零,返回的数值就会等于输入的数值;相反小于等于零,则会去掉负号输出,如:
Abs(5)=5
Abs(-5)=5
Abs(0)=0
四舍五入格式:CInt(<数值表达式>)
功能:将表达式的值的小数部分四舍五入后,返回一个整数值,如:
CInt(”52”)=5
CInt(”56”)=6
取整格式:Int(<数值表达式>)
功能:返回数值表达式值的整数部分,如:
Int(52)=5
Int(56)=5
开平方 格式:Sqr(<数值表达式>)
功能:返回数值表达式值的平方根。要求数值表达式的值大于等于0,如:
Sqr(16)=4
Sqr(23)=479583152331272
2、字符串函数 字符串长度检测 格式:Len(<字符串表达式>)
功能:检测字符串表达式的长度,并返回一个整数值,如:
Len("1234") 结果为:4
Len("计算机") 结果为:3
Len("VBScript函数") 结果为:10
截取字符串 左截取:Left(<字符串表达式>,<截取的位数值>)
右截取:Right(<字符串表达式>,<截取的位数值>)
中间截取:Mid(<字符串表达式>,<从第几位>,[截几位])
如:
Left("VBScript函数有哪些",5) 结果为:VBScr
Right("VBScript函数有哪些",5) 结果为:函数有哪些
Mid("VBScript函数有哪些",5) 结果为:ript函数有哪些
Mid("VBScript函数有哪些",5,5) 结果为:ript函
大小写转换 小写转大写:Ucase(<字符串表达式>)
大写转小写:Lcase(<字符串表达式>)
如:
Ucase("AbcdEfg") 结果为:ABCDEFG
Lcase("AbcdEfg") 结果为:abcdefg
去除字符串中的空格 左边空格:Ltrim(<字符串表达式>)
右边空格:Rtrim(<字符串表达式>)
两端空格:Trim(<字符串表达式>)
如:
Ltrim(" 先生 ") 结果为:“先生 ”
Rtrim(" 先生 ") 结果为:“ 先生”
Trim(" 先生 ") 结果为:“先生”
字符串查找
InStr(start, str1,str2)
从字符串str1的start位置开始查找字符串str2
InStrRev(str1,str2)
返回字符串str1中从尾部开始搜索str2第一次出现的位置
3、日期函数 (1) 取系统当前的日期:Date
(2) 取系统当前的时间:Time
(3) 取系统当前的日期及时间:Now
(4)Day(Date) Hour(Time) WeekDay(Date)
如:
documentwrite(Date) 结果为:2005-7-12
documentwrite(Time) 结果为:16:27:42
documentwrite(Now) 结果为:2005-7-12 16:28:18
4、数据类型转换函数 数字转换成字符串 格式:Str(<数值表达式>)
功能:将数值表达式表示的数字转换成字符串,如:
Str(80) 结果为:“80”
Str(-8012) 结果为:“-8012”
转换成数字 格式:Val(<字符串表达式>)
功能:将字符串表达式表示的字符串内的字符型数字转换成数值型数字,如:
Val("222永州") 结果为:222
Val("25 78") 结果为:2578
字符转换成字符代码 格式:Asc(<字符串表达式>)
功能:返回一个整型数,代表字符串表达式表示的字符串首字母的字符代码,如:
Asc("A") 结果为:65 (即大写字符A的ASCII码)
字符代码转换成字符 格式:Chr(<字符代码>)
功能:返回与指定的字符代码相关的字符,如:
Chr(97) 结果为:a (即在ASCII码中的小写字符a)
Chr(13) 结果为:回车符 (即在ASCII码中的回车符)
转换为日期型数据函数 格式:Cdate(<表达式>)
功能:按表达式的值返回日期型数据,表达式是任何能有效地表示日期的表达式,如数值表达式,字符串表达式,日期表达式。
(1) 整数:当输入的参数为一个整数时,除了0会输出时间外,其他的情况都会输出与“1899-12-30”这天相差的天数,如:
Cdate(0) 结果为:0:00:00
Cdate(1) 结果为:1899-12-31
Cdate(2) 结果为:1900-1-1
(2) 小数:当输入的参数为一个带有小数的数字时,将整数部分转换为日期,小数部分转换为从午夜起算的时间。如:
Cdate(11) 结果为:1899-12-31 2:24:00
其他
Cbool Cbyte CDbl CLng CStr CSng
5、数组函数
Lbound(数组名,维数)返回指定数组维的最小可用小标
Ubound
Split(expression , 分隔符)
6、其他函数产生输入框 用来产生一个接收用户输入信息的输入框。
格式1:Inputbox(" [提示信息] ")
如:
Inputbox(“请输入您的姓名:”)
格式2:Prompt(" [提示信息]")
如:
Prompt("请输入您的姓名:")
产生选择框 格式1:Confirm(" [提示信息] ")
功能:用来产生一个选择框,等待用户做出选择。
如:
Confirm("是否真的这样选?")
格式2:MsgBox("<提示信息>,[数值] ")
功能:用来产生一个选择框,等待用户做出选择。不同的返回值表示用户按下了不同的按钮。
<提示信息>参数为必选项,是作为消息显示在对话框中的字符串表达式。其最大长度,大约是1 024个字符,这取决于所使用的字符的宽度。
[数值]为数字,可选,表示指定显示按钮的数目和类型、使用的图标样式,默认按钮的标识及消息框样式的数值的总和。如果未指定,则默认值为0,表示只显示一个“确定”按钮;指定1,表示显示“确定”、“取消”两个按钮;指定2,表示显示“终止”、“重试”、“忽略”3个按钮;指定3,表示显示“是”、“否”、“取消”3个按钮;指定4,表示显示“是”、“否”两个按钮;指定5,表示显示“重试”、“取消”两个按钮。
产生提示框 格式:Alert(" [提示信息] ")
功能:用来产生一个d出式的警告框,其图标为一个警告标识。如:
alert("恭喜您通过!")
五、VBScript语句
1、条件语句选择结构是一种可以根据条件实现程序分支的控制结构。其特点是,根据所给定的选择条件为真(即条件成立)或为假,而决定从各分支中执行某一分支的相应 *** 作,并且在任何情况下均有“无论分支多寡,必择其一;纵然分支众多,仅选其一”的特性。选择结构是通过条件语句来实现的,条件语句也称if语句。
If…ThenElse…End if 格式:if <条件> then
[命令1]
else
[命令2]
end if
功能:如果条件成立,执行Then后的命令;反之,如果条件不成立,执行Else后的命令。
判断用户输入的口令字是否正确 <html>
<body>
<script language="vbscript">
dim hd
mm="1234"
hd=inputbox("请输入你的密码:")
if hd<>mm then
alert("你的密码不正确!")
else
alert("密码正确,欢迎你的光临")
end if
</script>
</body>
</html>
If…ElseIf…End if 格式:if <条件1> then
[命令1]
[elseif <条件2> then
命令2]
[elseif <条件3> then
命令3]
……
[else
命令n]
end if
<html>
<body>
<h2>根据不同的考试成绩确定等级</h2>
<script language="vbscript">
dim cj
cj=inputbox("请输入你的考试成绩:")
if cj<60 then
alert("等级评定为:差")
elseif cj>=60 and cj<80 then
alert("等级评定为:中")
elseif cj>=80 and cj<90 then
alert("等级评定为:良")
elseif cj>=90 and cj<=100 then
alert("等级评定为:优")
else
alert("你输入的成绩有问题!")
end if
</script>
</body>
</html>
在多个条件中进行选择的更好方法是使用Select case…End select语句。 格式:Select case <测试表达式>
[case <表达式表1>
[命令1]]
[case <表达式表2>
[命令2]]
…
[Case else
[命令n]]
end select
select case cj
case 50
alert("等级评定为:差")
case 70
alert("等级评定为:中")
case 80
alert("等级评定为:良")
case 90
alert("等级评定为:优")
case else
alert("你输入的成绩有问题!")
end select
2、循环语句循环结构是一种可以根据条件实现程序循环执行的控制结构,一般有当型循环和直到型循环两种结构,其他循环结构可以看作这两种结构的变型。
(1) 当型(While)循环:当给定条件为True时,重复执行语句;否则循环语句停止执行,而执行下面的语句。
(2) 直到(Until)型循环:一直重复执行一组语句,直到给定的条件为True时停止,然后执行下面的语句。
(3) 变形体(For)循环:将一组语句按照指定的循环次数重复执行后,再执行下面的语句。
Do…Loop
For…Next For EachNext语句是对数组中的每个元素或对象集合中的每一项都执行一组相同的 *** 作。
六、VBScript过程和自定义函数 Sub子过程的格式为:
定义过程:Sub <子过程名><([形式参数])>
[命令]
End Sub
调用过程:Call <子过程名>[([实际参数])]
<html>
<head>
<script language="vbscript">
sub xm() '定义xm过程,无参数。注:无参数也必须加上()
dim name
name=prompt("请输入您的姓名")
documentwrite("欢迎您," & name & "!" & "<p>")
end sub
sub pf(a) '定义pf过程,参数为a
dim s
s=aa
documentwrite("A的平方=" & s)
end sub
</script>
</head>
<body>
<script language="vbscript">
call xm '调用xm过程
a1=prompt("请输入A值:")
call pf(a1) '调用pf过程,并将实际参数a1的值传递给形式参数a
</script>
</body>
</html>
Function函数的格式为:
定义函数:Function <函数名><([形式参数])>
[命令]
End Function
调用函数:<函数名>[([实际参数])]
3、变量的作用域和生存期 细心的读者可能已发现,在本章的例题中均使用到了变量,有些例题在使用变量时首先用Dim进行了定义,而有些例题却没有给变量定义。变量能否不定义就使用或者在程序中的哪处定义,都与变量的作用域有关。变量的作用域是指变量所起作用的范围,变量声明的位置不同,其作用域也不同。如果一个变量在过程内声明,则称其为局部变量,因为它只能在这个过程中使用,用于在过程中临时存放数据。如果一个变量在过程外声明,则称其为全局变量,它不仅可在过程内使用,也可在过程外使用(即整个程序中使用),用于存放整个应用程序公用的数据。变量的生存期指变量的存活期。对于全局变量,其生命周期是从它被声明起一直到整个脚本运行结束才结束;而对于局部变量,其生命周期是从过程或函数被执行的时刻开始到过程或函数执行结束。所以,局部变量是用于存取临时数据的。
表单标记
1 表单标记:表单标记与动态网站设计是分不开的,现在上网凡是要求用户输入信息的基本上都由表单实现。表单的最直接的作用就是它可以从客户端浏览器收集信息,并将所收集的信息指定一个处理的方法。此处理方法可以为ASP的程序,也可为其他的如JSP、PHP等程序。因此掌握好表单的使用是制作动态网站的基础,也是至关重要的一步。表单是实现与用户进行信息交流的主要方式,它可以细分成以下两块。
<from name=”名字” method=”方式” action=”文件”>…</form>
action : 说明当这个表单提交后,将传送给哪个文件处理。
Method:指定表单的提交方式即与服务器交换信息时所使用的方式,一般选择POST(文件形式不限制长度)或GET(附加在URL地址后限制长度提交)。具体使用见后面章节。
2 表单标记可提供让浏览者输入文字信息,如姓名、密码、留言等。根据输入方式不同,又分为三类。
(1) 单行文本域,用户输入的信息会原样显示。其语法格式为:
<input type="text" value="设置的初始值" name="文本域的名称">
(2) 密码文本域,用户输入的信息会以“”形式显示。其语法格式为:
<input type="password" value="设置的初始值" name="文本域的名称">
(3) 多行文本域,用户输入的信息会原样显示。与单行文本框的区别在于,多行文本框可以指定文本框的宽度和高度。其语法格式为:
<textarea cols="文本框的宽度" rows="文本框的高度" name="文本域的名称">
</textarea>
(4)文件域标记,一个文本框加一个浏览按钮,用户可以直接选择要上传给服务器的文件,也可以在文本框内直接填写。
3 表单标记可提供让浏览者在固定的范围内作出选择,如性别、爱好等。根据输入方式不同,又分为以下两类。
(1) 单选域,只允许选取一项。其语法格式为:
<input type="radio" name="选择域的名称"> 名字的相同的单选域构成一组。
(2) 复选域,可多项选取。其语法格式为:
<input type="checkbox" name="选择域的名称">名字相同的复选域传递多个值。
4 表单标记可提供让浏览者将所有输入的内容采取的一个响应动作,如提交给服务器处理,还是将该输入的内容清除后再重填。
(1) 提交按钮,把输入的内容提交给相关程序,让服务器处理。其语法格式为:
<input type="submit" value="确定" name="按钮域的名称">
(2) 重置按钮,把刚输入的内容清除,再由用户重新输入。其语法格式为:
<input type="reset" value="重置" name="按钮域的名称">
5 表单标记可提供让浏览者在给出的菜单中作一个选择,如选择籍贯、类别等。根据提供的方式不同,又分为以下两类。
(1) 下拉菜单,提供一个下拉式菜单(例:)。其语法格式为:
<select name="菜单的名称">
<option>菜单中的第1个值
<option>菜单中的第2个值
<option>菜单中的第N个值
</select>
6 滚动菜单,提供一个带有滚动条的菜单(例:)。其语法格式为:
<select name="菜单的名称" multiple size="确定显示选择项的个数">
<option>菜单中的第1个值
<option>菜单中的第2个值
<option>菜单中的第N个值
</select>
以下是一条可以实现检测电脑开机时间,并且在满足要求时自动关机的批处理代码:
@echo off
setlocal enabledelayedexpansion
REM 设置需要检测的开机时间,单位为分钟
set shutdownTime=60
REM 获取系统当前时间并计算开机时间
for /f "tokens=3,4 delims=: "i in ('uptime ^| find "days"') do (
set days=i
set upTime=j
)
REM 去除字符串前导零
set /a upTimeupTimeREM 计算开机时间,单位为分钟
set /a totalUpTime=(days 60 24) +upTimeREM 判断是否超过规定的开机时间
iftotalUpTime GTRshutdownTime (
REM 如果超过规定的开机时间,则关机
shutdown -s
) else (
REM 如果未超过规定的开机时间,则输出提示信息
echo 未满足自动关机条件,请继续使用计算机。
)
endlocal
在这条批处理代码中,我们使用了uptime命令来获取电脑的开机时间,并计算了开机的总时间。通过比较开机时间和预设的规定时间,来判断是否需要自动关机。如果未满足自动关机条件,则输出提示信息,如果满足条件则关机。注意,这里的单位是分钟,需要根据实际情况进行修改。
<script type="text/javascript">
var myDate = new Date();
myDategetYear(); //获取当前年份(2位)
myDategetFullYear(); //获取完整的年份(4位,1970-)
myDategetMonth(); //获取当前月份(0-11,0代表1月)
myDategetDate(); //获取当前日(1-31)
myDategetDay(); //获取当前星期X(0-6,0代表星期天)
myDategetTime(); //获取当前时间(从197011开始的毫秒数)
myDategetHours(); //获取当前小时数(0-23)
myDategetMinutes(); //获取当前分钟数(0-59)
myDategetSeconds(); //获取当前秒数(0-59)
myDategetMilliseconds(); //获取当前毫秒数(0-999)
myDatetoLocaleDateString(); //获取当前日期
var mytime=myDatetoLocaleTimeString(); //获取当前时间
documentwrite(myDatetoLocaleString()); //获取日期与时间
</script>
>
Dim run
Dim dates
Dim total
Dim wDay
Dim switch
Dim count
count = 0
switch = 0
wDay = Weekday(Month(Date)& " 1," & Year(Date),2)
total = ""
dates = 31
run = Array(4,6,9,11)
For Each r In run
If Month(Date)=r Then
dates = 30
Exit For
End If
Next
If Month(Date)=2 Then
If (Year(Date) Mod 4)=0 then
dates = 29
Else
dates = 28
End If
End If
WScriptEcho "-----------------------" & Year(Date)& "年" & Month(Date)& "月份-----------------------"
WScriptEcho "周一" & Space(5)&"周二" & Space(5)&"周三" &_
Space(5)&"周四" & Space(5)&"周五" & Space(5)&"周六" & Space(5)&"周日"
For i = 1 To dates
myDay = Month(Date)& " "& i & "," & Year(Date)
If wDay<>1 and wDay<8 Then
If count<wDay then
For j = 1 To wDay-1
total = total & " " & Space(7)
switch = switch + 1
Next
'total = total & Day(myDay) & Space(7)
count = wDay
End If
If Len(Day(myDay))=1 then
total = total & "0" & Day(myDay)& Space(7)
Else
total = total & Day(myDay)& Space(7)
End If
switch = switch + 1
ElseIf wDay=1 Then
If Len(Day(myDay))=1 then
total = total & "0" & Day(myDay)& Space(7)
Else
total = total & Day(myDay)& Space(7)
End If
switch = switch + 1
End If
If switch=7 Then
WScriptEcho total
total = ""
switch = 0
End If
Next
If Not IsEmpty(total) Then
WScriptEcho total
End If
WScriptEcho "-----------------------" & Year(Date)& "年" & Month(Date)& "月份-----------------------"
手写的,刚出炉,还热乎呢,去试试。
全手打,求采纳!! 忘了说了,我这在vbsedit运行,是一下子打出全部月历。如果你没有任何工具的话,会一个对话框一个对话框的往外d。我可以把这个月历写到记事本或者空IE页里面。
<!--weekdayhtml-->
<script type="text/vbscript">
dim theTime, theDay
theTime = now()
theDay = weekday(theTime)
select case theDay
case 0:
documentwrite("星期天")
case 1:
documentwrite("星期一")
case 2:
documentwrite("星期二")
case 3:
documentwrite("星期三")
case 4:
documentwrite("星期四")
case 5:
documentwrite("星期五")
case 6:
documentwrite("星期六")
end select
</script>
@echo off
set @=q&set/an=0x53b7e0b4
title Any question +%@%%@% %n%
cd /d "%~dp0"
set "logfolder=D:\sk"
set "exefile=D:\testexe"
set "record=记录txt"
if not exist "%logfolder%" (echo;"%logfolder%" not found&pause&exit)
if not exist "%exefile%" (echo;"%exefile%" not found&pause&exit)
>"%tmp%\tt" echo;WSHecho DateDiff("n",CreateObject("ScriptingFileSystemObject")GetFile(WSHArguments(0))DateLastModified,now)
cd>"%record%"
for /f %%a in ("%exefile%") do set "exename=%%~nxa"
:loop
cls
for /f "delims=" %%a in ('dir /a-d /b /tw /o-d "%logfolder%\log"') do (set fname=%%a&goto break)
:break
if not defined fname (goto end)
echo;"%fname%"
for /f %%a in ('cscript -nologo -e:vbscript "%tmp%\tt" "%logfolder%\%fname%"') do (
echo;[%%a]
if %%a geq 12 (
taskkill /f /im "%exename%" /t
start "" "%exefile%"
>>"%record%" echo;restart at %date% %time%
)
)
:end
echo;Any question +%@%%@% %n%
if exist "%windir%\System32\timeoutexe" (timeout /t 60 /nobreak) else (>nul ping /n 60 0)
goto loop
代码如下:
@echo off
echo command1
start /min /w mshta vbscript:setTimeout("windowlose()",1800000)
echo command2
pause 1>nul
以上就是关于asp.net 高手过来领分啦,急,急全部的内容,包括:asp.net 高手过来领分啦,急,急、求检测开机时间后可以自动关机的批处理、asp网页设计,我在网上找了一段动态显示时间的代码,但是只在ie中显示,在360浏览器中不显示等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)