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ファイルに保存されます. インスタンス:
二、エラー処理
スクリプトが正常に動作しない場合、実行時エラーが発生し、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
3、ファイル操作など
Windowsでは、ファイルのプロパティは一般的に数字で表されます.
0はnormalを表します.つまり、通常のファイルには属性が設定されていません. 1は読み取り専用ファイルです.
2は隠しファイルを表します. 4はシステムファイルを表します. 16はフォルダまたはディレクトリを表します.
32はアーカイブファイルを表します.1024は、リンクまたはショートカットを表す.
Columnプロパティ(現在の文字位置の列番号)とlineプロパティ(ファイルの現在の行番号):ファイルを開くと、行と列のポインタが1に設定されます.
skip(x) x文字をスキップする; skipline 1行スキップ
write(x)書き込みx文字列;
writeline(x)xが表す行を書き込む
writeblanklines(n)n個の空行を書き込む
loseメソッドはファイルを閉じ、ファイルを読んだ後、必ず閉じてから書くように開きます.
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メソッドはファイルを閉じ、ファイルを読んだ後、必ず閉じてから書くように開きます.