3 回答
TA贡献1806条经验 获得超5个赞
我确实知道如何将bat / cmd手动转换为exe,请确保bat / cmd文件名仅包含字母和数字。以管理员身份打开“ IExpress向导 ”。
选择“创建新的自我提取指令文件”
选择“提取文件并运行安装命令”
给包裹起任何名字
“无提示”为“确认提示”
“许可协议”的“不显示许可”
单击“添加”作为“打包文件”,从中选择bat / cmd文件
然后在“要启动的安装程序”的“安装程序”文本框中,键入cmd /c,后跟bat / cmd文件的全名,(例如:emptyrecyclebin.bat=> cmd /c emptyrecyclebin.bat)
保留“安装后命令”原样
“隐藏”表示“显示窗口”
“完成消息”为“无消息”
单击“浏览”,然后选择将exe下载到的位置
启用“从用户隐藏文件提取进度动画”
禁用“使用包内的长文件名存储文件”
对于“配置重新启动”,绝对为“不重新启动”
如果要稍后重新编译,请保存SED。
然后创建包!命令窗口应迅速出现并消失
导航至将exe下载至的位置,然后 享受!
TA贡献2065条经验 获得超13个赞
您还可以开发一个简单的exe,仅调用您的蝙蝠脚本。
例如,您可以用C#编写一个(我不是C#-Pro,这实际上是我的第一个程序,我从其他Stackoverflow帖子中复制了很多程序。):
using System;
using System.Diagnostics;
using System.Windows.Forms;
using System.IO;
class BatCaller {
static void Main() {
var batFile = System.Reflection.Assembly.GetEntryAssembly().Location.Replace(".exe", ".bat");
if (!File.Exists(batFile)) {
MessageBox.Show("The launch script could not be found.", "Critical error", MessageBoxButtons.OK, MessageBoxIcon.Error);
System.Environment.Exit(42);
}
var processInfo = new ProcessStartInfo("cmd.exe", "/c \"" + batFile + "\"");
processInfo.CreateNoWindow = true;
processInfo.UseShellExecute = false;
processInfo.RedirectStandardError = true;
processInfo.RedirectStandardOutput = true;
var process = Process.Start(processInfo);
process.OutputDataReceived += (object sender, DataReceivedEventArgs e) => Console.WriteLine("output>>" + e.Data);
process.BeginOutputReadLine();
process.ErrorDataReceived += (object sender, DataReceivedEventArgs e) => Console.WriteLine("error>>" + e.Data);
process.BeginErrorReadLine();
process.WaitForExit();
Console.WriteLine("ExitCode: {0}", process.ExitCode);
process.Close();
}
}
如果将上面的代码存储到MySuperApp.bat旁边的MySuperApp.cs中,然后对其进行编译csc.exe /target:winexe MySuperApp.cs(甚至可以添加/win32icon:MySuperApp.ico以添加精美的图标),它将生成MySuperApp.exe。
启动时MySuperApp.exe将调用MySuperApp.bat(同名的bat文件)。
- 3 回答
- 0 关注
- 2564 浏览
添加回答
举报