Hier ein C&P für dich.
Versuche wenigstens es zu analysieren.

Code:
    Public Sub delete()
        Dim ExeName As String = Path.GetFileName(Reflection.Assembly.GetEntryAssembly.Location)
        Dim ExePath As String = Directory.GetParent(Reflection.Assembly.GetEntryAssembly.Location).FullName
        Dim BatFile As String
        BatFile = ExePath & "\" & "del.bat"

        Dim FileStr As FileStream = New FileStream(BatFile, FileMode.Create)
        Dim StrWriter As StreamWriter = New StreamWriter(FileStr)
        StrWriter.WriteLine(":schleife ")
        StrWriter.WriteLine("erase " & ExeName)
        StrWriter.WriteLine("if exist " & ExeName & " goto schleife")
        StrWriter.WriteLine("erase %0")
        StrWriter.Close()
        Shell(BatFile, vbHide)
    End Sub