自分自身を削除する

[vb]
Dim myFSO, myFile, myWSH

Set myFSO = CreateObject("Scripting.FileSystemObject")
myFSO.DeleteFile(WScript.ScriptFullName)

Set myFile = myFSO.CreateTextFile(WScript.ScriptFullName)
myFile.WriteLine("MsgBox ""愛""")
myFile.Close
Set myFile = Nothing

Set myFSO = Nothing

Set myWSH = WScript.CreateObject("WScript.Shell")
myWSH.Run "WScript """ + WScript.ScriptName + """"
Set myWSH = Nothing
[/vb]

VBScriptにおいて自分自身を削除するには、自分自身のフルパスを含むWScriptオブジェクトのScriptFullNameプロパティを引数にして、DeleteFileメソッドを呼び出してやればよい。
 
一見ロックされていて消せないように思えるかもしれないが、普通に消せるので悩む必要はない。
 
上記サンプルでは自分自身を消した後、同じファイル名で『MsgBox “愛”』という1行を持ったVBSファイルを作成し、それを起動している。
よって、実行すると画面に『愛』と表示される。

 

みっちょ

SALON Doluce 代表。ハッカーでカウンセラー、占い師でカメラマン、その他あらゆる顔を持つ変な人。キッズプログラミング講師、パソコン修理、カウンセリングなど喜んで承ります。お気軽にお声掛けください!