Замена файла с помощью vbscripting из файла exe

79
14

Я хочу заменить файл с помощью vbscripting, и этот код работает отлично.

strFileToCopy = "C:\revisions.txt"
strFolder = "C:\Program Files (x86)\"

On Error Resume Next

Set objFSO = CreateObject("Scripting.FileSystemObject")

If objFSO.FolderExists(strFolder) Then
objFSO.CopyFile strFileToCopy, strFolder, TRUE ' true for overwrite
Else
Wscript.Echo "Target Folder does not exist."
End If

Здесь "replace.vbs" - это vbscript, а "revisions.txt" - это файл, который нужно заменить.
Но я хочу преобразовать этот "replace.vbs" в файл "replace.exe", который включает в себя "revisions.txt".

для замены "revisions.txt" необходимы два файла.

"replace.vbs" revisions.txt

но я хочу включить "revisions.txt" в "replace.exe", так что замена файла может быть выполнена только с одним автономным.exe файлом.

Как это сделать? PLS помощи.

Заранее спасибо.

спросил(а) 2021-01-25T17:49:17+03:00 4 месяца, 4 недели назад
1
Решение
99

Вы можете создать самораспаковывающийся исполняемый файл, который запускает файл с использованием 7zip.

Вам необходимо загрузить некоторые дополнительные файлы, даже если вы уже установили их, называется 7z920_extra.7z. Вы можете скачать их здесь или найти на своей странице sourceforge.

Если у вас есть этот пакет, вы можете создавать самораспаковывающиеся архивы, как описано здесь более подробно.

Для вашей конкретной проблемы вы должны создать файл config.txt файла utf8 со следующим содержимым:

;!@Install@!UTF-8!
ExecuteFile="replace.vbs"
;!@InstallEnd@!

и сохраните его в той же папке, где были извлечены дополнительные файлы. Затем вы просто создаете обычный архив 7zip replace.vbs и revisions.txt, назовите его replace.7z и сохраните его в той же папке. Теперь откройте окно cmd, перейдите к этой папке и выполните команду:

copy /b 7zS.sfx + config.txt + replace.7z replace.exe

чтобы получить ваш исполняемый файл. Как вы можете видеть на странице, которую я связал ранее, есть также дополнительные вещи, которые вы можете сделать с этими exes, такими как подсказки.

Последнее, что нужно отметить: до тех пор, пока вы просто замените txt файл, вы также можете оставить всю эту вещь exe и просто написать txt файл из vbs. Метод OpenTextFile позволил бы это сделать, сделав все это одним файлом (vbs not exe хотя) снова. Однако это не будет работать с бинарными файлами.

ответил(а) 2021-01-25T17:49:17+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема