vbs技巧

1、對vbs腳本入參的處理

 

 For nLoop = 0 to WScript.Arguments.length -1

     strArg = WScript.Arguments(nLoop)

      ....
 NEXT nLoop

 

2、腳本中輸出信息

 WScript.Echo "Hello World!"

 

3、使用com組件

 Set ComObject = nothing
 Set ComObject = CreateObject(".....")

 If IsNull(ComObject) = False  Then
    ......
 End If

 

切記在編寫com組件作爲輸出參數時,必須要使用VARIANT *參數,不然會有麻煩的,呵呵。

 

4、訪問數據庫和CSV文件

 Set conn =CreateObject("ADODB.Connection")
 Set rs =CreateObject("ADODB.Recordset")
 
 If UCase(strDBType) = "CSV" Then
  conn.Open  "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPath & ";Extended Properties=""text;HDR=Yes;FMT=Delimited(,)"";Persist Security Info=False"
     sQuery = "Select test From "& strCSVFile
 End If
 If UCase(strDBType) = "ORACLE" Then
  conn.Open  "Provider=OraOLEDB.Oracle;User ID=" + _
   StrDBUsr & ";Password=" & StrDBPWD & ";Data Source=" & strTNSName & ";PLSQLRSet = 1;"
     sQuery = "select 'test' test from dual"         
 End If
         
    RS.ActiveConnection = conn
    RS.Source = sQuery
    RS.Open()
   
   If RS.EOF <> True Then
             While RS.EOF = False
              '獲取值
              strValue = RS.Fields("TERMINALNO")
              
                 RS.MoveNext()
             Wend
    End If

    If RS.State <> adStateClosed Then
            RS.Close()
    End If

    If Not RS Is Nothing Then Set RS = Nothing
    If Not conn Is Nothing Then Set conn = Nothing

   備註:

    CSV文件只支持select,並不支持DML操作

 

5、VSB如何設置等待時間

      WScript.Sleep millisecond

 

6、VSB如何操作XML

  •     讀取

    SET XMLDOC = CREATEOBJECT("MICROSOFT.XMLDOM")
    XMLDOC.ASYNC = "FALSE"

    IF STRFILENAME = "" THEN
        STRFILENAME = "TEST.XML"
    END IF

    XMLDOC.LOAD(STRFILENAME)
    STRQUERY = "/MAILCONFIG/ATTACHMENTS/ATTACHMENT"
    SET COLITEM = XMLDOC.SELECTNODES(STRQUERY)
    FOR EACH OBJITEM IN COLITEM
        strFileName = OBJITEM.GETATTRIBUTE("FILENAME")
        WSCRIPT.ECHO strFileName 
    NEXT

  •      修改和保存

    SET XMLDOC = CREATEOBJECT("MICROSOFT.XMLDOM")
    XMLDOC.ASYNC = "FALSE"

    IF STRFILENAME = "" THEN
        STRFILENAME = "test.XML"
    END IF

    WSCRIPT.ECHO "UPDATE XML FILE  : " & STRFILENAME

    XMLDOC.LOAD(STRFILENAME)
    STRQUERY = "/MAILCONFIG/VERSION"
    SET COLITEM = XMLDOC.SELECTNODES(STRQUERY)

    IF COLITEM.Length > 0 THEN

        SET OBJITEM = COLITEM(0)

        strMarjorver = OBJITEM.GETATTRIBUTE("MARJORVER")
        strMinorrver = OBJITEM.GETATTRIBUTE("MINORRVER")
        strRevnum = OBJITEM.GETATTRIBUTE("REVNUM")
        strBuildNum = OBJITEM.GETATTRIBUTE("BUILDNUM")
        strRevnumCur =  YEAR(NOW) & MONTH(NOW)  &  DAY(NOW)

        XMLMAINVER = "V"& strMarjorver &"." & strMinorrver &"." & strRevnumCur &  "."

        IF strRevnumCur = strRevnum THEN
            strBuildNum = strBuildNum+1
        ELSE
            strBuildNum = 1 
        END IF

        WSCRIPT.ECHO "SET LAST VERSION : " & XMLMAINVER & strBuildNum
        OBJITEM.SETATTRIBUTE "REVNUM", strRevnumCur
        OBJITEM.SETATTRIBUTE "BUILDNUM", strBuildNum
        XMLDOC.SAVE strFileName
    END IF

 

7、對文本文件的讀取

    Dim fso,OpenFile
    Set fso = CreateObject("Scripting.FileSystemObject")

    IF fso.FileExists(strFileName) THEN

        Set OpenFile = fso.OpenTextFile(strFileName, 1)
        Do  While   Not   OpenFile.AtEndOfLine  
            strcontent   =   OpenFile.readline  
         Loop
        OpenFile.CLOSE
    ELSE
        WSCRIPT.ECHO "Open File Error!"
    END IF

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章