MHTMLファイルの名前の中の#!を全角に、シフトJIS以外の文字を{16進}に変える。
WSHのドロップハンドラが使えないので、VB.NETで作ります。
MhtFileName.exe ファイル...
vbc MhtFileName.VB
Imports System.IO
Public Class Class1
Public Shared Sub Main(Args() As String)
For Each Arg As String In Args
Dim fi = New FileInfo(Arg)
Dim xName As String = xString(fi.Name)
If xName<>fi.Name Then fi.MoveTo(Arg + "\..\" + xName)
Next
End Sub
Private Shared Function xString(ByVal s As String) As String
Dim x As String = ""
For k As Integer = 1 To Len(s)
Dim c = Mid(s, k, 1)
If 31 < AscW(c) AndAlso AscW(c) < 128 Then
ElseIf &Hff60 < AscW(c) And AscW(c) < &Hffa0 Then
ElseIf Chr(Asc(c)) = c And Asc(c) < 0 Then
Else
c = Hex(AscW(c))
c = "{" & New String("0"c, Len(c) Mod 2) & c & "}"
End If
x = x & c
Next
x = Replace(x, "#", "#")
x = Replace(x, "!", "!")
Return x
End Function
End Class