bat虽然也可以,但是感觉vbs处理这个更方便:
[加密] = True '加密为 true,解密为 false
file1 = "1.txt" '输入
file2 = "1.txt" '输出
Const forread = 1
Const forwrite = 2
Dim fs,a(13)
a(0)=Array(1)
a(1)=Array(2,1)
a(2)=Array(2,1,3)
a(3)=Array(4,1,3,2)
a(4)=Array(3,1,5,2,4)
a(5)=Array(5,1,4,2,6,3)
a(6)=Array(4,1,6,2,5,3,7)
a(7)=Array(8,1,5,2,7,3,6,4)
a(8)=Array(5,1,9,2,6,3,8,4,7)
a(9)=Array(8,1,6,2,10,3,7,4,9,5)
a(10)=Array(6,1,9,2,7,3,11,4,8,5,10)
a(11)=Array(11,1,7,2,10,3,8,4,12,5,9,6)
a(12)=Array(7,1,12,2,8,3,11,4,9,5,13,6,10)
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile(file1,forread)
Do Until ts.AtEndOfStream
str = ts.ReadLine
For i = 1 To Len(str) Step 13
var = Mid(str,i,13)
lv = Len(var)-1
If [加密] Then encode() Else decode()
Next
fs = fs & vbCrLf
Loop
ts.Close
Set ts = fso.OpenTextFile(file2,forwrite,True)
ts.Write fs
ts.Close
Sub encode()
For j = 0 To lv
fs = fs & Mid(var,a(lv)(j),1)
Next
End Sub
Sub decode()
ReDim b(lv+1)
For j = 0 To lv
b(a(lv)(j)-1) = Mid(var,j+1,1)
Next
fs = fs & Join(b,"")
End Sub