一步一步学VBScript(5)之WSH对象四

一步一步学VBScript(5)之WSH对象五

前沿:

当域控与脚本两者相遇的时候会产生什么呢.

哈哈.应该是一个问号.还有一个惊叹号.

这两天写了个脚本.DC上执行让AD中的计算机中的本地管理员组

添加一个域帐户.然后脚本顺利地执行下去了.奇迹般的成功了.

哇咔咔.如果我是一个企业服务器管理员.想让一个普通用户.

用来管理所有客户端的问题.防止最重要的域管理员密码泄露.

OK.这个是最好的办法.不是吗.

以后写道ADSI脚本方面的介绍的时候.我会陆续介绍这方面的内容

敬请期待~

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

继续上篇话题

上篇要点:

1.介绍了WSH中处理输入输出流的方法概要

2.详细介绍了stdout,stdin,stderr.

 

本篇主要内容

介绍脚本的参数引入

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

脚本中的参数引入

 

(1)wscript.arguments概要

我们来看一张概要图

image

这个方法。同样还是WSH中的内容。

(WSH已经介绍了4篇了。内容会对有的朋友来说比较浅

    但是我还是想慢慢点把内容说全。估计还要有好多篇可以说

   等全部仔细说完了。我想脚本中最基本的东西您应该很清楚了)

 

那么这个方法干吗用的呢。

每个东西的存在总会有它的意义嘛。这个方法呢。就是你可以给脚本添加参数

那么有人要问来。直接把参数写脚本里不就好了?

呵呵。因为做不到阿。比如我用批处理来调用这个脚本。或者用起来的脚本来调用这个脚本。

那么有了这个参数后。这个脚本就像是一个更大的function了。

如果把一整套脚本看作是幢房子的话。那么某个脚本就是一个楼层,而arguments就是每层楼的地板哦

很伟大把。

 

具体我们来看看能做什么吧

Set colNamedArguments = WScript.Arguments.Named

strFN = colNamedArguments.Item("FirstName")

strLN = colNamedArguments.Item("LastName")

WScript.Echo "Your name is " & strFN & "." & strLN

WScript.Sleep 3000

OK,请您保存C:\Scripts\testarguments.vbs

然后在cmd中执行

cscript.exe c:\Script\testarguments.vbs /LastName:Xu /FirstName:Mark

结果呢。嘿嘿

image

不错吧。想到什么了吗?OK,我们继续。

 

(2)Arguments的属性

那么为什么他会去识别FirstName和LastName参数呢

细心的您有没有发现

Set colNamedArguments = WScript.Arguments.Named

对,就是他 Named.

OK,那么来介绍下

方法

Wscript.Arguments.Count

Wscript.Arguments.ShowUsage

属性

Wscript.Arguments.Named

Wscript.Arguments.Unnamed

Wscript.Arguments.Length

Wscript.Arguments.Item(n)

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

Wscript.Arguments.Count

Wscript.Arguments.Length

先看段代码

WScript.Echo "Count: " & WScript.Arguments.Count

WScript.Echo "Length: " & WScript.Arguments.length

WScript.Sleep 3000

 

同样保存为vbs然后运行

cscript.exe c:\scripts\testarguments.vbs  Mytest“My test”

执行后结果为

image

都为2。为什么呢。

废话。当然都为2,否则就有大问题了。。您的计算机不正常咯

两个均为计算参数的数量。注意哦 空格为分割哦

如果您在参数中有空格的话,请用“”来表达这个为一个参数

那么区别呢。

微软官方资料http://technet.microsoft.com/en-us/library/ee156618.aspx

当使用vbscript的时候2者是一样的。但是如果您使用JScript的话。

只能用Length。否则就会run-time error

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Wscript.Argument.Named

Wscript.Argument.Unnamed

 

来段代码帮您理解

Set objarg1 = WScript.Arguments.Named

WScript.Echo "NamedCount: " & objarg1.Count

Set objarg2 = WScript.Arguments.Unnamed

WScript.Echo "UnNamedCount: " & objarg2.Count

WScript.Sleep 3000

 

同样保存为VBS

然后请您执行

cscript.exe c:\Scripts\testarguments.vbs /key1:mytest1 /key2:"my test1" "my test2" mytest2

执行结果为

image

结果为2个2对巴

这个就是我们想要的结果。对,他就是一个开关,来过滤是否有像 /key1:mytest1这样的参数

 

这个代码的升级版

Set objarg1 = WScript.Arguments.Named

WScript.Echo "NamedCount: " & objarg1.Count

WScript.Echo "Namedkey2 " & objarg1.Item("key2")

Set objarg2 = WScript.Arguments.Unnamed

WScript.Echo "UnNamedCount: " & objarg2.Count

WScript.Echo "Unnameditem1 " & objarg2.Item(1)

WScript.Sleep 3000

同样执行

cscript.exe c:\Scripts\testarguments.vbs /key1:mytest1 /key2:"my test1" "my test2" mytest2

结果为

image

明白了吧。他真的是过滤了。因为

当unnamed的时候 他的item参数是1,也就是第2个,并且当您用item(2)的话。会提示错误。超过范围。

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Wscript.Arguments.item

我们已经看了很多了吧。他用来具体定位到这个参数是什么

没有他。我们啥都传不进去哦

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Wscript.Arguments.ShowUsage

更具官方的资料,这个方法是用在(.WSF)中的。这里我们不做介绍了哦

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

(3)综合应用

iNumberOfArguments = WScript.Arguments.Count

Set colNamedArguments = WScript.Arguments.Named

If Not colNamedArguments.Exists("Server") Then

Wscript.Echo "Usage: /Server:<servername> is required."

Wscript.Quit

ElseIf iNumberOfArguments &gt;= 2 Or iNumberOfArguments &lt;= 4 Then Wscript.Echo iNumberOfArguments & " arguments entered"

Wscript.Echo "including Server Name: " & _ colNamedArguments.Item("Server")

Else

Wscript.Echo "Usage: Please enter between 2 and 4 arguments."

Wscript.Quit

End If

 

OK。这个脚本来自于微软官方网站。通过这次的内容。您现在可以看懂了吧。

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

总结:

1.Wscript.Argument的概要介绍

2.Wscript.Argument的方法与属性的介绍和演示

3.综合脚本应用的介绍

 

下期中将会

1.介绍关于如何控制脚本的运行(sleep,quit,time-out)

2.介绍如何输出脚本环境的信息

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

期待您的观看。您的宝贵的意见与建议将是我继续的前行的动力。

如果您有什么意见与建议的话,请务必先联系我。

谢谢您耐心的观看。谢谢

你可能感兴趣的:(服务器,计算机,管理员,惊叹号,如果我是)