我创建了一个与Process一起使用的批处理文件。我目前只是将应用程序指向本地计算机上的目录。
我不想将我的exe捆绑到这个批处理中,而是希望将它作为一个资源嵌入,以便它包含在exe中。这是否可以使用批处理文件?
ProcessStartInfo startInfo = new ProcessStartInfo()
startInfo.FileName = "c:\test\batchFile.bat";
// set up and execute batch file with various arguments
我已将批处理文件添加到我的解决方案中,并将其作为“资源”添加到我的项目文件中。我不完全确定这是方法,或者如何在我的项目中访问它。
答案 0 :(得分:2)
至于嵌入批处理文件 - 如果需要,你可以嵌入任何东西......答案是肯定的: - )
关于如何使用嵌入式批处理文件 - 最简单的选择是从资源中读取它(请参阅http://msdn.microsoft.com/en-us/library/system.resources.resourcemanager.aspx和http://msdn.microsoft.com/en-us/library/system.reflection.assembly.getmanifestresourcestream.aspx)并将其保存为真实文件 - 然后使用它。 / p>
如果您要嵌入.NET EXE / DLL,您可以使用它而不将其保存为真实文件...使用批处理文件我怀疑您需要将其保存为真实文件。
答案 1 :(得分:2)
这种方法怎么样:
答案 2 :(得分:1)
当然:
你应该在
之前使用command.com
运行它
System.Diagnostics.Process.Start("cmd", "/c c:\test\batchFile.bat");
答案 3 :(得分:1)
执行此操作的最可靠的方法可能是将.bat写入临时文件,然后运行该临时文件。
根据我的经验,cmd.exe相当简单,可以在不同的环境中表现出不同的方式。如果您希望它的行为就像您从文件系统运行的.bat文件,那么您应该从文件系统运行.bat文件。您可以尝试(但我不建议)将命令传递给cmd.exe实例,但正如我所说,您可能会遇到不同的行为。