【发布时间】:2014-05-21 13:12:27
【问题描述】:
我有一个 bat 文件,它将文件从一个目录复制到另一个目录。 如果手动单击此 bat 文件,则会成功复制文件,并且不会出现任何问题。但是如果通过C#执行bat文件,cmd窗口会显示“files not found”信息。
这是我的 bat 文件。
echo off
echo.
XCOPY "..\SourceFolder\CaSourceFile" "..\DestinationFolder\SubFolder" /r /Y /i /F
如果在 bat 文件中给出完整路径,则文件复制成功。 例如,
XCOPY "D:\RootFolder\SourceFolder\CaSourceFile" "D:\RootFolder\DestinationFolder\SubFolder" /r /Y /i /F
我的 C# 代码:
ProcessStartInfo processInfo = new ProcessStartInfo(batchFile);
processInfo.UseShellExecute = true;
Process batchProcess = new Process();
batchProcess.StartInfo.FileName = "cmd.exe";
batchProcess.StartInfo = processInfo;
batchProcess.StartInfo.Arguments = String.Format("\"{0}\" \"{1}\"", @"D:\Europa\Test Release Tool\SingleExeInstaller\EuropaApplication", @"D:\Europa\Test Release Tool\SingleExeInstaller\EuropaInstaller");
batchProcess.StartInfo.RedirectStandardInput = true;
batchProcess.StartInfo.RedirectStandardOutput = true;
batchProcess.StartInfo.RedirectStandardError = true;
batchProcess.Start();
batchProcess.WaitForExit();
我的应用程序 exe 在 C: 中可用,而 bat 文件在 D: 中可用: 有什么办法可以解决这个问题吗?请帮帮我。
【问题讨论】:
-
您从哪个目录执行 C# 程序?默认情况下,这将是它解释相对路径的当前目录。
标签: c# windows batch-file