如何将嵌入文件用作cmd参数而不解压缩到硬盘

时间:2016-02-04 10:35:17

标签: c# .net vb.net cmd io

如何在不将嵌入文件复制到任何临时位置的情况下,在cmd中使用并执行嵌入资源文件

Me.proc.StartInfo.FileName = "cmd.exe"
Me.proc.StartInfo.Arguments = "/U /c REG Import <Embeded Resource>"

我认为可以使用一些命令行I / O技巧,但我不确切知道如何。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

您使用ProcessStartInfo的方式不正确。请尝试以下选项之一。选项之间唯一的变化是/ c或/ k,如果没有尝试使用其他格式,请尝试。

示例:

运行程序并传递Filename参数: CMD / c write.exe c:\ docs \ sample.txt

运行程序并传递长文件名: CMD / c write.exe“c:\ sample documents \ sample.txt”

计划路径中的空格: CMD / c“”c:\ Program Files \ Microsoft Office \ Office \ Winword.exe“”

程序路径中的空格+参数: CMD / c“”c:\ Program Files \ demo.cmd“”Parameter1 Param2

程序路径中的空格+带空格的参数: CMD / k“”c:\ batch files \ demo.cmd“”带空格的参数1“”带有空格的参数2“”

启动Demo1然后启动Demo2: CMD / c“”c:\ Program Files \ demo1.cmd“&amp;”c:\ Program Files \ demo2.cmd“” assemblies

Process proc = new Process();

proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.UseShellExecute = false;

proc.StartInfo = new ProcessStartInfo("cmd", "/c " + directory + process + "\" "  + realArgs);

proc.Start();
要么 Process proc = new Process(); proc.StartInfo.CreateNoWindow = true; proc.StartInfo.UseShellExecute = false; proc.StartInfo = new ProcessStartInfo("cmd", "/c " + directory + process + "\" " + realArgs); proc.Start();