【web安全學習篇1】VBS腳本基礎編寫總結 - 新聞資訊 - 雲南小程序開發|雲南軟件開發|雲南網站建設-昆明融晨信息技術有限公司

159-8711-8523

雲南網建設/小程序開發/軟件開發

知識

不(bù)管是(shì)網站,軟件還是(shì)小程序,都要(yào / yāo)直接或間接能爲(wéi / wèi)您産生價值,我們在(zài)追求其視覺表現的(de)同時(shí),更側重于(yú)功能的(de)便捷,營銷的(de)便利,運營的(de)高效,讓網站成爲(wéi / wèi)營銷工具,讓軟件能切實提升企業内部管理水平和(hé / huò)效率。優秀的(de)程序爲(wéi / wèi)後期升級提供便捷的(de)支持!

您當前位置>首頁 » 新聞資訊 » 技術分享 >

【web安全學習篇1】VBS腳本基礎編寫總結

發表時(shí)間:2020-10-19

發布人(rén):融晨科技

浏覽次數:72

【web安全學習篇1】VBS腳本基礎編寫總結

    • VBS初始及變量
    • 常量
    • 注釋與數學運算
    • 布爾類型
    • if判斷
    • select語句實現多條件循環
    • 循環結構
    • 循環嵌套
    • 數組的(de)定義與應用
    • 定義二維數組及應用
    • 初識函數
    • 子(zǐ)程序
    • 用VBS腳本運行可執行文件
      • 總結

引言:非科班出(chū)身,自學web滲透的(de)小白。初次寫博客,不(bù)到(dào)之(zhī)處還望多多包涵。學習是(shì)個(gè)漫長的(de)過程,而(ér)且經常産生疑惑,感覺學的(de)東西沒什麽實際意義,不(bù)知道(dào)怎麽用。個(gè)人(rén)也(yě)比較健忘,筆記一直胡亂地(dì / de)寫。看了(le/liǎo)不(bù)少博文,就(jiù)想着自己也(yě)寫一些。一來(lái)可以(yǐ)整理一下自己的(de)筆記,複習所學的(de)知識。再者就(jiù)是(shì)想跟這(zhè)裏的(de)學者交流一下,這(zhè)樣才有進步。筆記如若有不(bù)完整或者錯誤的(de)地(dì / de)方,歡迎大(dà)家在(zài)留言欄提出(chū)糾正。

VBS初始及變量

VBS是(shì)windows内置腳本,用記事本直接編輯,将文件後綴名改爲(wéi / wèi)“vbs”即可運行。
第一個(gè)腳本:

dim a
a="Hello,world!!"
msgbox a

其中“msgbox”如python的(de)“”print一樣是(shì)打印的(de)意思。
變量以(yǐ)dim命名,并且可以(yǐ)用“:”号在(zài)命名同時(shí)賦值。
如:dim a:4
我們可以(yǐ)用“inputbox”進行輸入,達到(dào)互動效果

dim name
	    name=inputbox("請輸入你的(de)名字。")
		msgbox "你的(de)名字叫"&name

常量

常量用“const”命名,目的(de)是(shì)爲(wéi / wèi)了(le/liǎo)減少代碼量以(yǐ)及增加規範。

const a="nihao,china"
      msgbox a

注釋與數學運算

  1. 在(zài)每句的(de)開頭寫入“rem"在(zài)或者"’"即可注釋掉整行。

如:

dim a,b
    a=46
   'a=15151
rem b=78
	b=77
	msgbox a,b
  1. 數學的(de)運算符大(dà)部分在(zài)腳本都能通用。

“*”表示乘法
“**”表示平方
“/”表示除法
“+”純數字表示加法,字符串表示拼接
a=12+5和(hé / huò)a=“12”+"5"意義是(shì)不(bù)一樣的(de)

布爾類型

true表示正确;false表示錯誤

dim a,b
   a=15
   b=12
   msgbox a>b

輸出(chū)結果爲(wéi / wèi)true,可以(yǐ)用布爾類型判斷比較結果。

if判斷

常見的(de)if判斷語句:
if then……end if
if then……else…… end if
if then ……else if……else……end if end if
例子(zǐ)
1.

dim a,b,c,d
a=inputbox("請輸入a的(de)值:")
b=inputbox("請輸入b的(de)值:")
c=inputbox("請輸入c的(de)值:")

d=a*2+b*2
c=int(c)
if c=d then
msgbox "你是(shì)對的(de)!!!!"
else 
msgbox "你是(shì)錯的(de)!!!"
end if
dim a
a=inputbox("請輸入一個(gè)大(dà)于(yú)50的(de)數字")
a=int(a)
if a>50 then
msgbox "正确"
else if a=50 then
msgbox "不(bù)要(yào / yāo)輸入50!!!!"
else 
msgbox "錯誤"
end if
end if
dim num:num=0
for i=0 to 9
num=num+1
if num=5 then
exit for
end if
next
msgbox num

有多少個(gè)“if”就(jiù)要(yào / yāo)有多少的(de)end if結尾!

select語句實現多條件循環

利用select case +變量實現。看個(gè)例子(zǐ)就(jiù)明白,跟DOS命令的(de)goto很像。

dim a
a=inputbox(“請輸入小于(yú)4的(de)數字”)
a=int(a)

select case a
case 1
msgbox "one"
case 2
msgbox "two"
case 3
msgbox "three"
case else					
msgbox "你輸入的(de)數字不(bù)符合要(yào / yāo)求"
end select  

循環結構

  1. do循環

利用do……exit do……loop循環實現

dim password,ctr
ctr=0
const pass ="123456"

do
password=inputbox("請輸入密碼:")
if password=pass then
msgbox "密碼輸入成功!"
exit do
else
if ctr=3 then
msgbox "你的(de)輸入次數有限,程序将關閉!!!"
exit do
else
ctr=ctr+1
msgbox"密碼出(chū)錯,請重新輸入"
end if
end if
loop
  1. for循環
dim count
for count=0 to 10
msgbox count
next

循環嵌套

  1. do循環嵌套while條件語句
dim count
count =0 
do while count<11
msgbox count
count=count+1
loop
  1. for循環嵌套if條件語句
dim num:num=0
for i=0 to 9
num=num+1
if num=5 then
exit for
end if
next
msgbox num
  1. 雙for嵌套循環
dim i,j,k
for i=1 to 9
for j=1 to 9
k=i*j
msgbox k
next
next

腳本會逐一輸出(chū)結果。需要(yào / yāo)注意的(de)是(shì),兩個(gè)for循環,第一個(gè)每完成一次,第二個(gè)會完成全部。

數組的(de)定義與應用

數組由()定義,并且從0開始

如定義數組裏有十個(gè)元素,并對前三個(gè)元素進行賦值:

dim name(9)
name(0)=12
name(1)="mylove"
name(2)=5.26
msgbox name(2)

跟變量一樣,數組也(yě)可以(yǐ)同時(shí)被定義調用:

dim name(2),high(2),mark(2)
dim n
for n= 0 to 2
name(n)=inputbox("請輸入第"&n+1&"個(gè)學生的(de)名字")
high(n)=inputbox("請輸入第"&n+1&"個(gè)學生的(de)身高")
mark(n)=inputbox("請輸入第"&n+1&"個(gè)學生的(de)成績")
next
msgbox name(0)
msgbox high(1)
msgbox mark(2)

此時(shí)通過用戶輸入來(lái)實現數組賦值

定義二維數組及應用

二維是(shì)指行跟列
如 dim name(1,1)表示定義一個(gè)兩行兩列的(de)二維數組。第一個(gè)數字代表行數,第二個(gè)代表列數。
其實就(jiù)是(shì)個(gè)表格,可以(yǐ)用來(lái)收集用戶數據
如:
1.

dim name(2),high(2),mark(2)
dim n
for n= 0 to 2
name(n)=inputbox("請輸入第"&n+1&"個(gè)學生的(de)名字")
high(n)=inputbox("請輸入第"&n+1&"個(gè)學生的(de)身高")
mark(n)=inputbox("請輸入第"&n+1&"個(gè)學生的(de)成績")
next
msgbox name(0)
msgbox high(1)
msgbox mark(2)
dim msg(1,1)
dim i,j
for i=0 to 1
   for j=0 to 1
dim opt
select case 1
case 0
opt="name"
case 1
opt ="age"
end select
msg(i,j)=inputbox("請輸入第"& i+1 &"個(gè)人(rén)的(de)"& opt)
next
for i=0 to 1
for j= 0 to 1
msgbox msg(i,j)

初識函數

  • 與定義變量差不(bù)多,将dim替換成function,最後以(yǐ)end function結束函數的(de)定義。函數内可定義變量,實現更複雜的(de)運算。
    如定義一個(gè)函數,需要(yào / yāo)用戶輸入名字并且打印一句話。
function fun(name)
name=inputbox("請輸入你的(de)名字")
msgbox "吃飯啦!!!!"&name
end function
call fun(name)

用call+函數名調用函數!

定義函數進行互動

dim num1,num2
num1=inputbox("請輸入第一個(gè)數字")
num2=inputbox("請輸入第二個(gè)數字")
num1=int(num1)
num2=int(num2) 
function fun(num1,num2)
num=num1*num2
msgbox num
end function
call fun(num1,num2)

内建函數不(bù)需要(yào / yāo)定義,直接能調用。可以(yǐ)百度查找,有很多。

如:

dim a
a=now()/time()/date()
msgbox a

子(zǐ)程序

子(zǐ)程序跟函數差不(bù)多,定義時(shí)将function換成sub。
如:

sub msg(name,age)
msgbox "hello,word"&name
end sub
call msg("xiaohua",14)

return msg("xioahua",14)

用VBS腳本運行可執行文件

  • 打開cmd:
set ws=wscript.createobject("wscript.shell")
ws.run"C:\Windows\System32\cmd.exe"

這(zhè)裏的(de)ws.run可換成ws.exec,文件路徑最好是(shì)絕對路徑,就(jiù)是(shì)從盤符到(dào)文件名都要(yào / yāo)寫清楚。

當然也(yě)可以(yǐ)不(bù)用絕對路徑,前提是(shì)你要(yào / yāo)打開的(de)文件路徑可以(yǐ)在(zài)腳本執行路徑後面追加。

  • 打開記事本:
set ws=wscript.createobject("wscript.shell")
ws.run"notepad.exe"

總結

多敲代碼,多練練。其實就(jiù)入門而(ér)言,我發現很多編程語言都有許多相似之(zhī)處。如python,php,JavaScript等,入門學的(de)内容其實差不(bù)多。要(yào / yāo)注意分号,冒号,花括号等等符号的(de)使用,熟練日常類和(hé / huò)函數的(de)使用。代碼敲多了(le/liǎo),就(jiù)會有一種觸類旁通的(de)快感。

相關案例查看更多