我想使用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.exe”中加入“revisions.txt”,以便只用一个独立的.exe文件来替换文件。
怎么做?请帮助。
提前致谢。
答案 0 :(得分:0)
您可以使用7zip创建一个运行文件的自解压可执行文件。
您需要下载一些其他文件,即使您已安装它,也称为7z920_extra.7z。您可以下载here或在sourceforge page上找到它们。
如果您有该软件包,则可以创建自解压存档,如here in more detail所述。
针对您的具体问题,您将创建一个包含以下内容的utf8 textfile config.txt:
;!@Install@!UTF-8!
ExecuteFile="replace.vbs"
;!@InstallEnd@!
并将其保存在与解压缩额外文件相同的文件夹中。然后你只需要创建一个正常的7zip archive.vbs和revisions.txt存档,命名为replace.7z,并将其保存在同一个文件夹中。 现在打开一个cmd窗口,导航到该文件夹并执行命令:
copy /b 7zS.sfx + config.txt + replace.7z replace.exe
获取可执行文件。正如您在page I linked earlier上看到的那样,您还可以使用提示等其他内容。
最后要注意的一点是:只要你只需要替换一个txt文件,你也可以省略整个exe文件,只需从vbs中编写txt文件即可。 OpenTextFile方法允许这样做,使整个事件再次成为一个文件(vbs不是exe)。但是,这对二进制文件不起作用。