vbscript将qoutes添加到base64转换字符串
我有一些脚本将字符串转换为base64,并将编码数据写入文本文件,这一切都很顺利,结果存储在encoded.txt中,但我需要在开始时将每一行双引号,并在结束时使用双引号“&_”,因此如何使此脚本自动为每一行执行此操作?这是我的剧本vbscript将qoutes添加到base64转换字符串,vbscript,Vbscript,我有一些脚本将字符串转换为base64,并将编码数据写入文本文件,这一切都很顺利,结果存储在encoded.txt中,但我需要在开始时将每一行双引号,并在结束时使用双引号“&_”,因此如何使此脚本自动为每一行执行此操作?这是我的剧本 Option Explicit Const fsDoOverwrite = true Const fsAsASCII = false Const adTypeBinary = 1 Dim objFSO Dim objF
Option Explicit
Const fsDoOverwrite = true
Const fsAsASCII = false
Const adTypeBinary = 1
Dim objFSO
Dim objFileOut
Dim objXML
Dim objDocElem
Dim objStream
Set objStream = CreateObject("ADODB.Stream")
objStream.Type = adTypeBinary
objStream.Open()
objStream.LoadFromFile(Wscript.scriptfullname)
Set objXML = CreateObject("MSXml2.DOMDocument")
Set objDocElem = objXML.createElement("Base64Data")
objDocElem.dataType = "bin.base64"
objDocElem.nodeTypedValue = objStream.Read()
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFileOut = objFSO.CreateTextFile("encoded.txt", fsDoOverwrite, fsAsASCII)
objFileOut.Write objDocElem.text
objFileOut.Close()
Set objFSO = Nothing
Set objFileOut = Nothing
Set objXML = Nothing
Set objDocElem = Nothing
Set objStream = Nothing
用换行符拆分文本,然后在添加引号时循环并将其全部放回一起。(未测试,但可能很接近,代码如下;您很有可能需要为您的情况找到合适的换行类型-我选择vbCr作为示例): 这将使用正则表达式对象将所有中间行结尾替换为适当的行终止/开始和两个传统引号,一个在开始处,一个在结束处
allTextArray = SPLIT(originalText, vbCr)
For i=0 to UBound(allTextArray)
allTextWithQuotes = allTextWithQuotes & """" & allTextArray(i) & """"
Next
Sub encodeFileBase64( inputFile, outputFile )
Const fsDoOverwrite = True
Const fsAsASCII = False
Const adTypeBinary = 1
Dim stream, strBuffer
Set stream = WScript.CreateObject("ADODB.Stream")
With stream
.Type = adTypeBinary
.Open
.LoadFromFile inputFile
End With
With WScript.CreateObject("MSXML2.DOMDocument").CreateElement("Base64Data")
.dataType = "bin.base64"
.nodeTypedValue = stream.Read()
strBuffer = .Text
End With
stream.Close
With New RegExp
.Multiline = True
.Global = True
.IgnoreCase = False
.Pattern = "[\r\n]+(?=[0-9A-Za-z])"
strBuffer = Chr(34) & .Replace(strBuffer, Chr(34) & " & _" & vbCrLf & Chr(34) ) & Chr(34)
End With
WScript.CreateObject("Scripting.FileSystemObject").CreateTextFile( outputFile, fsDoOverwrite, fsAsASCII ).Write strBuffer
End Sub
encodeFileBase64 WScript.ScriptFullName, WScript.ScriptFullName & ".b64"