vbscript将qoutes添加到base64转换字符串

vbscript将qoutes添加到base64转换字符串,vbscript,Vbscript,我有一些脚本将字符串转换为base64,并将编码数据写入文本文件,这一切都很顺利,结果存储在encoded.txt中,但我需要在开始时将每一行双引号,并在结束时使用双引号“&_”,因此如何使此脚本自动为每一行执行此操作?这是我的剧本 Option Explicit Const fsDoOverwrite = true Const fsAsASCII = false Const adTypeBinary = 1 Dim objFSO Dim objF

我有一些脚本将字符串转换为base64,并将编码数据写入文本文件,这一切都很顺利,结果存储在encoded.txt中,但我需要在开始时将每一行双引号,并在结束时使用双引号“&_”,因此如何使此脚本自动为每一行执行此操作?这是我的剧本

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"