以下代码说明了一切。当我尝试将本地文件夹xcopy到网络共享时,路径全部搞砸了,CMD无法正确插入反斜杠。任何建议都是受欢迎的,已经尝试过我在网上找到的所有内容(几乎已经停留了2个小时):
string command = "xcopy /s " + @"C:\Users\Me\Desktop\TempExtract\MyApp\*.* " + @"\\TestShare\SharedFolder\Applications\ /Y /I";
Process Processo = new Process();
ProcessStartInfo Xcopy = new ProcessStartInfo("cmd.exe");
Xcopy.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
Xcopy.Arguments = command;
Processo = Process.Start(Xcopy);
Processo.WaitForExit();
这里的问题是“Arguments”无法将“\\”解码为“\”,所以我的路径如下:
C:\\Users\\Me\\Desktop\\TempExtract\\MyApp\\*.*
并且CMD不能插入双反斜杠:(帮助!
答案 0 :(得分:0)
我认为问题在于您设置ProcessStartInfo
的方式。所以command
应该是:
string command = @"C:\Users\Me\Desktop\TempExtract\MyApp\*.* " + @"\\TestShare\SharedFolder\Applications\ /Y /I";
并添加
Xcopy.FileName = "xcopy";
这对我有用:
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
var command = @"C:\Users\Me\Desktop\TempExtract\MyApp\*.* " + @"\\TestShare\SharedFolder\Applications\ /Y /I";
var Processo = new Process();
var Xcopy = new ProcessStartInfo("cmd.exe")
{
Arguments = command,
FileName = "xcopy",
UseShellExecute = false
};
Processo = Process.Start(Xcopy);
Processo.WaitForExit();
}
}
答案 1 :(得分:0)
尝试在开头或命令字符串中添加/c
(因为cmd.exe通过/ c参数启动以下命令,请查看cmd.exe的帮助)。
如果没有这个诀窍,请在路径周围添加\"
。