(Translated by https://www.hiragana.jp/)
VBScript - 维基百科,自由的百科全书 とべ转到内容ないよう

VBScript

本页使用了标题或全文手工转换
维基百科ひゃっか自由じゆうてき百科ひゃっかぜん
VBScript
じつ作者さくしゃほろ
发行时间1996ねん,​28ねんまえ​(1996
とうぜん版本はんぽん
  • 5.8 (2008;穩定版本はんぽん)
編輯維基數據鏈接
操作そうさけいWindows
ぶんけん扩展めい.vbs, .vbe, .wsf, .wsc (.hta, .htm, .html, .asp)
あみdocs.microsoft.com/en-us/previous-versions/t0aew7h6(v=vs.85) 編輯維基數據鏈接
主要しゅようさく產品さんぴん
Windows Script Host, Active Server Pages
啟發けいはつげん
Visual Basic
影響えいきょうげん
Windows PowerShell

VBScript("Microsoft Visual Basic Scripting Edition")ほろVisual Basic 为蓝ほん开发てきいち种已废弃てき动态脚本きゃくほんえいActive Scripting语言。它允许 Microsoft Windows けい管理かんり生成せいせいよう管理かんり计算つくえてき强大きょうだい工具こうぐ,无需错误处理,并具有ぐゆうほどじょかず其他だか级编ほど结构。它可以让よう户完ぜんひかえせい计算环境てき许多方面ほうめん

使用しよう范围

[编辑]

よし于VBScript以通过Windows脚本きゃくほん宿主しゅくしゅ调用COMいん而可以使用しようWindows操作そうさけい统中以被使用しようてきほどじょ如它使用しようMicrosoft Officeてき库,ゆう其是使用しようMicrosoft AccessMicrosoft SQL Serverてきほどじょ库,当然とうぜん它也使用しよう其它ほどじょ操作そうさけい本身ほんみてき库。ざい实践ちゅうVBScript一般被用在以下三个方面:

Windows操作そうさけい

[编辑]

VBScript以被ようらい动地完成かんせいじゅう复性てきWindows操作そうさけい统任务。ざいWindows操作そうさけい统中,VBScript以在Windows Script Hostてき范围ない运行。Windows操作そうさけい统可以自动辨认和执行*.VBS*.WSF两种ぶんけん格式かくしき,此外Internet Explorer以执ぎょうHTACHMぶんけん格式かくしき。VBSWSFぶんけん完全かんぜん文字もじしきてき,它们ただのうどおり过少すう几种对话まどこうあずかよう户通讯。HTACHMぶんけん使用しようHTML格式かくしき,它们てきほどじょ码可以像HTML一样被编辑和检查。ざいWSF、HTACHMぶんけんちゅうVBScriptJavaScriptてきほどじょ码可以任意にんい混合こんごう。HTAぶんけん实际じょうゆうVBS、JavaScript成分せいぶんてきHTMLぶんけん。CHMぶんけんいちざい线帮すけよう户可以使用しよう专门てき编辑ほどじょはたHTMLほどじょ编辑为CHM。

Windows 操作そうさけい统也提供ていきょういち些 VBScript あし本来ほんらい进行だか管理かんりこうのうれい管理かんり Windows げきかつみつ钥的 slmgr.vbs(Windows Server License Manager Script)。

网页浏览きゃく户端てきVBS)

[编辑]

网页ちゅうてきVBS以用らいひかえせいきゃく户端てき网页浏览(以浏览器执行VBSほどじょ)。VBSあずかJavaScriptざい这一方面ほうめん竞争しゃ,它们以用らい实现动态HTML,甚至以将せいほどしき结合いた网页なからい

いたりこん为止VBSざいきゃく户方めんのううらない优势,いん为它ただ获得Microsoft Internet Explorerてき支持しじMozilla Suite以透过安そういち套件らい支援しえんVBS),并且IE11おこりやめさい支持しじVBScript[1]。而JavaScript则受到所有しょゆう网页浏览てき支援しえんざいInternet ExplorerちゅうVBSJavaScript使用しようどう样的權限けんげん,它们ただのう有限ゆうげん使用しようWindows操作そうさけい统中てき对象。

网页ふく务器(ふく务器方面ほうめんてきVBS)

[编辑]

ざい网页ふく务器方面ほうめんVBSほろ软的Active Server Pagesてきいち部分ぶぶん,它与JavaServer PagesPHP竞争对手。ざい这里VBSてきほどじょ直接ちょくせつ嵌入かんにゅういたHTML页内,这样てき网页以ASP结尾。网页ふく务器Internetしんいきふく执行ASP页内てきほどじょ部分ぶぶん并将其结はて转化为HTML传递给网页浏览器供用きょうよう使用しよう。这样ふく务器以进ぎょうすうすえ库闻讯并はた其结はていたHTML网页ちゅう

しめせ

[编辑]

Hello World

[编辑]

さい简单てきれい

MsgBox "Hello World"

.vbsぶんけん保存ほぞんさい使用しようcscript.exeあるwscript.exe执行。

一个更复杂的例子中,しめせりょう使用しようMsgBoxさく为函すうかえしかいいち个结はて),并使用しようりょうさん个参すう,其中だい二个参数使用的是常量。

Dim x
' These three produce the same result. However, the use of constants as in the third line 
' is considered best practice.
x = MsgBox("Hello World:Text",1+64+4096,"Hello World:Title")
x = MsgBox("Hello World:Text",4161,"Hello World:Title")
x = MsgBox("Hello World:Text", vbOKCancel+vbInformation+vbSystemModal, _
           "Hello World:Title")

' Presents the number corresponding to the button pressed. Different constants will produce 
' different behaviours. For example, vbOKCancel specifies two buttons in the dialogue box, 
' whereas vbYesNoCancel specifies three.
x = MsgBox("Hello World:Text", vbYesNoCancel+vbInformation,"Hello World:Title")
MsgBox "The result is " & x

终止にん

[编辑]

VBScriptのう访问Windows管理かんり规范 (WMI),就像Windowsにん管理かんり以下いかてきだい码执ぎょう时将かい终止(“杀掉”)にんなん关于notepad.exeてき进程。

'Terminate all processes involving the name <strProcessToKill>
Option Explicit
Dim strComputer, strProcessToKill, objWMIService, colProcess, objProcess

strComputer = "."
strProcessToKill = "notepad.exe"
Set objWMIService = GetObject("winmgmts:" _ 
   & "{impersonationLevel=impersonate}!\\" _ 
   & strComputer _ 
   & "\root\cimv2") 
Set colProcess = objWMIService.ExecQuery _
   ("Select * from Win32_Process Where Name = '" & strProcessToKill & "'")
For Each objProcess in colProcess
   MsgBox "... terminating " & objProcess.Name
   objProcess.Terminate()
Next

使用しようOption Explicit并不必须てきただし它被认为VBScriptてきさいけい实践[2][3]

创建具有ぐゆうただ一的名称的十个文件

[编辑]

这个实例显示如何いか创建ぶんけん并向它添加てんか内容ないよう。它还えんじしめせりょうくし连接。

For i = 1 to 10
	createFile( i )
Next

Public sub createFile(a)

	Dim fso,myFile
	filePath = "C:\file_name" & a & ".txt"
	Set fso=CreateObject("Scripting.FileSystemObject")
	Set MyFile= fso.CreateTextFile( filePath)
	MyFile.WriteLine("This is a separate file")
	MyFile.close

End Sub

发送按键

[编辑]

SendKeys方法ほうほう拟一个或多个按键到活动窗口(かたぎ拟在键盘じょう输入)。 ざい该示れいちゅう脚本きゃくほん发送くし“Hello World!”3每次まいじ暂停2びょう(2000毫秒)。SendKeysきょしゅう可能かのうかいざいぼう些程じょちゅう失效しっこういん为一些软けん(如在あんそう时输にゅう许可证密钥)はた检查真正しんせいてき按键,而不きょ拟的。

set shl = createobject("wscript.shell")
shl.sendkeys "Hello World!"
wscript.sleep 2000
shl.sendkeys "Hello World!"
wscript.sleep 2000
shl.sendkeys "Hello World!"
wscript.sleep 2000

执行间,“Hello World!”はた显示ざい命令めいれい提示ていじ

Windowsぶんけん操作そうさ

[编辑]

对象FileSystemObject执行いち些文けん操作そうされい如测试一个文件是否存在),并且还创けんいち个文本文ほんぶんけんいち个TextStream对象)。

myfilename = "C:\Wikipedia - VBScript - Example - Hello World.txt"
MakeHelloWorldFile myfilename

Sub MakeHelloWorldFile (FileName)
'Create a new file in C: drive or overwrite existing file
   Set FSO = CreateObject("Scripting.FileSystemObject")
   If FSO.FileExists(FileName) Then 
      Answer = MsgBox ("File " & FileName & " exists ... OK to overwrite?", vbOKCancel)
      'If button selected is not OK, then quit now
      'vbOK is a language constant
      If Answer <> vbOK Then Exit Sub
   Else
      'Confirm OK to create
      Answer = MsgBox ("File " & FileName & " ... OK to create?", vbOKCancel)
      If Answer <> vbOK Then Exit Sub
   End If
   'Create new file (or replace an existing file)
   Set FileObject = FSO.CreateTextFile (FileName)
   FileObject.WriteLine "Time ... " & Now()
   FileObject.WriteLine "Hello World"
   FileObject.Close()
   MsgBox "File " & FileName & " ... updated."
End Sub

MakeHelloWorldFileしょうかいざい按下按钮きさき于C:\ 驱动录创けんわかやめ存在そんざい更新こうしん)一个小文本文件。

Excel对象操作そうさ

[编辑]
Option Explicit '所有しょゆう变量必须显式声明せいめい

Dim app,workbook,sheet
Dim row,col

Set app = WScript.CreateObject("Excel.Application")
app.Visible = True
Set workbook = app.WorkBooks.Add

Set sheet = workbook.Worksheets(1)
'10x10 random value
For row = 1 To 10
  For col = 1 To 10
    sheet.Cells(row,col).Value = CInt(Int((100 * Rnd()) + 1))
  Next
Next

Set sheet = workbook.Worksheets(2)
'10x10 random value
sheet.Range("A1:J10").Formula = "=Int(Rand() * 100 + 1)"

语言

[编辑]

VBScript主要しゅようてき优点ゆう

  • よし于VBScriptよし操作そうさけい统,而不よし网页浏览かい释,它的ぶんけん较小。
  • 易学えきがく
  • ざい所有しょゆう2000 / 98SE以后てきWindows版本はんぽん直接ちょくせつ使用しよう
  • 使用しよう其它ほどじょ使用しようてき物件ぶっけんゆう其是Microsoft Office)。

缺点けってんゆう

  • 现在VBS无法さく为电邮件てきけんりょう。Microsoft Outlookこばめ接受せつじゅVBS为附けんおさむ信人のぶと无法直接ちょくせつ使用しようVBSけん
  • VBSてきかく种编辑器受欢むかえ
  • 操作そうさけい统没ゆうにんなんとく别的护设ほどこせ。VBSほどじょあずか其它JS、EXE、BATあるCMDほどじょいち样对まち操作そうさけい统没ゆう监察恶意こうのうてき能力のうりょく

かずVBてき对比

[编辑]

不能ふのう为变量定りょうてい义类がた

[编辑]

ざいVBちゅう,为变量定りょうてい义类がた使用しよう“Dim 变量めい As 类型”てき语句格式かくしき

ただしざいVBScriptちゅう这样うつし错误てき,VBScriptちゅうてき变量じゃく类型(そくVariant变体),いん此它需要じゅよう指定してい类型。ただのう使用しよう“Dim 变量めいてき格式かくしきかい释器かい动根すえ赋值てき类型てい义变りょう类型。

不能ふのう使用しよう条件じょうけん编译

[编辑]

ざいVBちゅう使用しよう#If…Then、#ElseIf…Then、#Else、#End If、#Const… = …とう语句てい义编译时使用しようてき语句

而由于VBScript需要じゅよう编译そくWSH(Windows Script Host)直接ちょくせつかい释执ぎょう所以ゆえん并不需要じゅよう条件じょうけん编译语句。

安全あんぜんせい

[编辑]

ほろ软决ていOutlookOutlook ExpressなかてきHTML邮件使用しようVBScriptきさき现了许多利用りようWindows Script HostActiveXてきこうのうてき电脑病毒びょうどく。这些病毒びょうどく所以ゆえんのう够传播开らい也是いん为一开始这些系统功能完全未受保护。虽然VBScriptJavaScript使用しようどう样的使用しよう操作そうさけい统的こうのうてき安全あんぜん措施,こんてん这些こうのうづく符合ふごう标准。

一般很难保护VBScriptてきほどじょ码不よう户看いた

参考さんこう资料

[编辑]
  1. ^ 英文えいぶんVBScript is no longer supported in IE11 edge mode for the Internet zone. [2014-05-25]. (原始げんし内容ないようそん档于2015-04-07). 
  2. ^ Remarks on Option Explicit Statement页面そん档备份そん互联网档あん), MSDN Library
  3. ^ Why force yourself to declare all variables?, In VBScript For Dummies, John Walkenbach, IDG Books Worldwide, Inc., 1996

外部がいぶ链接

[编辑]