VBSスクリプトCOMオブジェクト拡張および使用(3)

6422 ワード

一、共通操作COMインタフェースオブジェクト及び方法の作成  CreateObjectは、Windowsシステムにインストールされているすべてのcomオブジェクトにアクセスし、これらのコンポーネントに格納されているコマンドを呼び出すことができます.  WSHは、Vbsのホストを解析するために使用され、それ自体にはいくつかの一般的なオブジェクトが含まれています.    1、Scripting.FileSystemObject  —>  ファイルシステムの操作関数のセットを提供    2、Scripting.Dictionary  —>  キー値ペアを格納する辞書オブジェクトを返す    3、Wscript.Shell  —>  システム情報を読み取る関数のセットを提供する                                 (レジストリの読み書き、指定したファイルのパスの検索、DOS環境変数の読み取り、リンクの設定の読み取りなど)    4、Wscript.NetWork  —>  ネットワーク接続とリモートプリンタ管理の関数を提供します.       注意:すべてのScriptingオブジェクトはSCRRUN.DLLファイルに保存され、すべてのWscriptオブジェクトはWSHOM.ocxファイルに保存されます.      インスタンス:
            option Explicit   ‘            
            dim objShell

            '       SET     
            set objShell = CreateObject("WScript.Shell")

            '     ,    
            objShell.Run "notepad" 

             '    ,APP       
            objShell.Run "notepad" ,,true 

             '     ,     
            objShell.Run "calc"

            ' :         ,     ""
            'Run "    ",    (0    ;1    ;2     ;3     ;.....),    (True)
            objshell.Run """C:\Program Files\QQ2006\QQ.exe"""

二、エラー処理
 
      スクリプトが正常に動作しない場合、実行時エラーが発生し、MsgBoxが画面に表示されます.
    On  Error Resume  Next 
    この行の文は、vbsが実行時にエラーが発生した文をスキップし、その後に続く文を実行することを教えます.
    エラーが発生すると、文は関連するエラー番号、エラー記述、および関連するソースコードをエラースタックに押し込みます.
    vbscriptはerrオブジェクトを提供します
           2つの方法clear,raise,
           5つのプロパティ:description,helpcontext,helpfile,number,source
    Errオブジェクトは、インスタンスを参照することなく、直接使用できます.たとえば、次のようにします.
        on error resume next
            a=11
            b=0
            c=a/b
        if err.number<>0 then
            wscript.echo err.number & err.description  & err.source
        end if  
 
三、レジストリ操作
     1、レジストリを読むWscript.Shell.Regread
            set ws = wscript.createobject("Wscript.Shell")            value = ws.regread("HKLM\Software\7-Zip\Path ")            wscript.echo  value
    2、レジストリWscript.Shell.Regwritを書く
        path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\"        set ws=wscript.createobject("wscript.shell")        t=ws.regwrite(path & "jj","hello")        '新しい値を作成        val=ws.regwrite(path,"newboy")       注:Runjjこのキー値はhelloに変更されました.(キー値は必ず予め存在します)    3、キーワードと値Wscript.Shell.Regdeleteを削除する        val=ws.Regdelete(path)四、ファイルシステム操作(重要)       SET  FSOobj  = Wscript.createobject("Scripting.FileSystemObject")       1.FSOに含まれる一般的なオブジェクトは次のとおりです.            Driveオブジェクト:HDD、光学ドライブ、ramディスク、ネットワークドライブなどのストレージデバイスの情報を含む            Drivesコレクション:物理ドライブと論理ドライブのリストを提供            File  オブジェクトおぶじぇくと:ファイルのチェックと処理ふぁいるのさくじょとしょり            Filesコレクション:フォルダ内のファイルリストを指定します            FolderオブジェクトFolderオブジェクトFolderおぶじぇくと:フォルダのチェックと処理ふぉるだのさくじょとしょり            Foldersコレクション:フォルダのサブフォルダのリストを提供する            Textstreamオブジェクト:テキストファイルの読み書き            FSOの一般的な方法は次のとおりです.            BulidPath:既存のファイルパスにファイルパス情報を追加する            コピーファイル            CopyFolder:フォルダのコピー            CreateFolder:フォルダの作成            CreateTextFile:テキストを作成し、TextStreamオブジェクトを返します.            DeleteFile:ファイルの削除            DeleteFolder:フォルダとそのすべての内容を削除            DriveExits:ドライブが存在するかどうかを確認します            FileExits:ファイルが存在するかどうかを確認します            FolderExists:フォルダが存在するかどうかを確認します            GetAbsolutePathName:フォルダまたはファイルの絶対パスを返します.            GetBaseName:ファイルまたはフォルダの基本パスを返します.            GetDrive:dreveオブジェクトを返します            GetDriveName:ドライブの名前を返します.            GetExtensionName:拡張子を返します            GetFile:fileオブジェクトを返します            GetFileName:フォルダ内のファイル名を返します            GetFolder:フォルダオブジェクトを返します            GetParentFolderName:フォルダの親フォルダを返します            GetSpecialFolder:特殊なフォルダへのオブジェクトポインタを返します.            GetTempName:createtextfileで使用できるランダムに生成されたファイルまたはフォルダの名前を返します.            MoveFile:ファイルの移動            MoveFolder:フォルダの移動            OpenTextFile:存在するファイルを開き、TextStreamオブジェクトを返します.                  2、フォルダ操作など           'モデルの作成           DIM  objFS           SET objFS = Wscript.createobject(“Scripting.FileSystemobject”)           'モデルの解放           'SET objFS = nothing   
           if (  objFS.FolderExists("c:\temp") )           '         
           objFS.Deletefolder("c:\temp")                   '     
           objFS.CopyFolder "c:\data" "d:\data",'True     '     ,    
           objFS.movefolder "c:\data\te*" "d:\data\"       '\    d:\data   
           objFS.getspecialfolder(0)                       '  windows  
           objFSgetspecialfolder(1)                        '  system32\
           objFSgetspecialfolder(2)                            '      

     3、ファイル操作など
            Windowsでは、ファイルのプロパティは一般的に数字で表されます.
            0はnormalを表します.つまり、通常のファイルには属性が設定されていません.  1は読み取り専用ファイルです.
            2は隠しファイルを表します.  4はシステムファイルを表します.  16はフォルダまたはディレクトリを表します.
            32はアーカイブファイルを表します.1024は、リンクまたはショートカットを表す.
           Columnプロパティ(現在の文字位置の列番号)とlineプロパティ(ファイルの現在の行番号):ファイルを開くと、行と列のポインタが1に設定されます.
'        
set fso = wscript.createobject(“scripting.filesystemobject”)  
if fso.fileexists(“c:\kk.txt”) then  
    msgbox "     "  
else  
    set f = fso.createtextfile("c:\kk.txt" ', true ' )     'true  :           
end if  
  
fso.copyfile "c:\kk.txt","d:\1\kk.txt", true     'rue        
fso.movefile "c:\kk.txt", "d:\"                      '      
fso.deletefile "c:\kk.txt"                              '      
  
set ts = fso.opentextfile(“c:\kk.txt”,1,true)     '    :1   、2  、8     
  
set ffile=fso.opentextfile(“c:\kk.txt”,1,true)  
value=ffile.read(20)   'read(x) x     
line=ffile.readline     'readline     
contents=ffile.readall  'readall      
  
do while ffile.atendofstream<>true '   ,      true。  
    ffile.read(10)  
loop  

            skip(x)  x文字をスキップする;            skipline  1行スキップ
           write(x)書き込みx文字列;
           writeline(x)xが表す行を書き込む
           writeblanklines(n)n個の空行を書き込む
           loseメソッドはファイルを閉じ、ファイルを読んだ後、必ず閉じてから書くように開きます.