从Windows窗体应用程序执行批处理文件

时间:2012-04-09 10:12:15

标签: c# batch-file console

我编写了一个小型批处理文件,可以将解决方案中的exe文件复制到system32文件夹。

copy "blah.exe" "%systemroot%/System32"

批处理文件正常工作并通过双重clikcing从桌面运行复制exe(同时在桌面上放置exe)

但是,我尝试通过以下方式从Windows应用程序执行此操作:

Process.Start("sample.bat");

(EXE文件和batfile - >属性 - >输出到复制总是) cmd窗口确实出现,但目标目录中没有.exe文件。我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

在你的批处理文件中改变你拥有blah.exe的特定文件夹的路径,更改为特定的驱动器,然后转到特定的文件夹,说你的源文件夹是C:\ test然后在批处理文件中键入cd \ test,它应该是这样的:

C:
cd\test
copy "blah.exe" "%systemroot%/System32"

或使用完整路径的副本,例如

copy "C:\test\blah.exe" "%systemroot%/System32"

编辑: 要使用CMD进行复制,请尝试:

System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new       System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/C copy /b blah.exe %systemroot%/System32";
process.StartInfo = startInfo;
process.Start();

编辑2:或批处理文件

 System.Diagnostics.Process.Start("cmd", "/c sample.bat");