我正在调用一个 .bat 文件来 XCOPY 一个文件夹。无论如何将文件名和目标传递到批处理文件中?
我的 .bat 文件
XCOPY %1 %2
pause
我用来调用 .bat 的代码是这样的:
process.Start(@"C:\Documents and Settings\cmolloy\My Documents\Test\XCOPY.bat");
我试过这段代码
process.Start(@"C:\Documents and Settings\cmolloy\My Documents\Test\XCOPY.bat" , copyfrom copyto);
正如我之前使用它来关闭我的comp,但它不适用于这个。
谢谢
更新
process.StartInfo.FileName = @"C:\Documents and Settings\cmolloy\My Documents\Test\XCOPY.bat";
process.StartInfo.Arguments = copyFrom.ToString();
process.StartInfo.Arguments = copyTo.ToString();
process.Start();
那是我正在使用的代码,但它不起作用。我从 XCOPY 屏幕得到这个:
因此,它看起来不像采用完整的文件路径。copyto 和 copyfrom 是包含路径的变量。
更新
使用阿兹瑞的代码:
String batch = @"C:\Documents and Settings\cmolloy\My Documents\Test\XCOPY.bat";
String src = @"C:\Tricky File Path\Is Here\test1.txt";
String dst = @"C:\And\Goes Here\test2.txt";
String batchCmd = String.Format("\"{0}\" \"{1}\" \"{2}\"", batch, src, dst);
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.Arguments = String.Format("/k \"echo {0}\"", batchCmd);
process.Start();
我得到这个输出:
这实际上并没有复制文件。