Запись блоков кода в файл VBS

Я делаю простой сценарий VBS, который создает новый файл .vbs, записывает код в этот файл, а затем удаляет себя. Однако, когда он пытается написать сам код, он думает, что код является частью фактического скрипта или чего-то еще, а не кодом для записи в файл, что дает мне ошибку «Ожидаемый конец оператора» в строке 12. Что не так? ?

Option Explicit
Dim fso, obj, nDirS, wshshell, oFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set obj = CreateObject("wscript.shell")
Const WR = 2
Set fso = CreateObject("Scripting.FileSystemObject")

Set oFile = fso.OpenTextFile (obj.SpecialFolders("Desktop")&"\finished.vbs",WR,true)
'&vbCrLf&_
oFile.Writeline "Option Explicit"
oFile.Writeline "Dim fso, obj, nDirS, wshshell"
oFile.Writeline "Set fso = CreateObject("Scripting.FileSystemObject")"
oFile.Writeline "Set obj = CreateObject("wscript.shell")"
oFile.Writeline "WScript.Sleep(1000)"
oFile.Writeline "CreateObject("WScript.Shell").Popup "Error in Memory 16x", 5, "Oops""

person dolphin    schedule 27.05.2016    source источник


Ответы (1)


Ваши цитаты не экранированы. Используйте "" для печати кавычек внутри строки, в противном случае он будет думать, что ваша строка закончилась, и вместо этого начнет интерпретировать код, следующий за ней.

Option Explicit
Dim fso, obj, nDirS, wshshell, oFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set obj = CreateObject("wscript.shell")
Const WR = 2
Set fso = CreateObject("Scripting.FileSystemObject")

Set oFile = fso.OpenTextFile (obj.SpecialFolders("Desktop")&"\finished.vbs",WR,true)

oFile.Writeline "Option Explicit"
oFile.Writeline "Dim fso, obj, nDirS, wshshell"
oFile.Writeline "Set fso = CreateObject(""Scripting.FileSystemObject"")"
oFile.Writeline "Set obj = CreateObject(""wscript.shell"")"
oFile.Writeline "WScript.Sleep(1000)"
oFile.Writeline "CreateObject(""WScript.Shell"").Popup ""Error in Memory 16x"", 5, ""Oops"""
person YuriW    schedule 27.05.2016
comment
Большое спасибо! - person dolphin; 27.05.2016