如何将批处理文件和vbs脚本合并为一个.exe

时间:2013-10-30 20:41:40

标签: windows batch-file vbscript

我希望能够将我为批处理文件制作的vbs脚本合并为最终用户的一个.exe,因此我可以为其分配一个图标。我一直试图在网上寻找一种方法,但找不到任何有用的东西。

我想结合这个vbs脚本:

Set oShell = CreateObject ("Wscript.Shell") 
Dim strArgs
strArgs = "cmd /c CheckIn.bat"
oShell.Run strArgs, 0, false

使用此批处理文件:

@echo off

REM A message to ask the user to save their Outlook emails they have open

mshta javascript:alert("Please be sure to save any emails that you need in Outlook. Click OK to continue.");close();

REM This will stop DM, Email Marker, Email Filer, Interceptor, Papihost, and Outlook.
taskkill /IM DM.exe /F
taskkill /IM DMMarkEmail.exe /F
taskkill /IM EmailAutoBulkFiling.exe /F
taskkill /IM Interceptor.exe /F
taskkill /IM OUTLOOK.EXE /F
taskkill /IM PAPIHost.exe /F

REM This will delete the DM cache in Appdata under the current user
RMDIR /s /q "%userprofile%\Appdata\Roaming\OpenText\DM\Cache"

REM This will start all of the programs that were closed

REM DM and Interceptor restart when Outlook starts back up
START OUTLOOK.EXE

REM Commenting the Marker and Filer since some users don't want it

REM START DMMarkemail.exe
REM START Email AutoBulkFiling.exe
REM START "C:\Program Files\Open Text\DM Extensions\DM.exe"
REM START "C:\Program Files\Open Text\DM Extensions\Interceptor.exe"
REM START PAPIHost.exe
@echo off

我不确定目前是否有一种简单的方法可以帮助我,提前感谢您的反馈。

1 个答案:

答案 0 :(得分:1)

如果你发送没有/ f的taskkill就像正常关闭一样。应提示用户保存电子邮件。您可以稍后使用/ f发送它以强行关闭。

实现所需目标的一种方法是将批处理命令放入vbs oShell.Run命令。在执行变量之前不需要将命令放入变量中,这会使代码混乱。

EG

oShell.Run "taskkill /IM DM.exe /F", 0, false

然后看这篇关于如何转换为exe的帖子

How can I convert a VBScript to an executable (EXE) file?

PS:您应该能够直接将脚本作为vb.net程序运行,而不是在脚本控件中运行它。只需将vb.net页眉和页脚放入。