5

在 .NET 中,我正在运行这一行

var p = Process.Start(@"cmd", @"/C mklink /H c:\z\b c:\z\a\");

这一切正常,但我担心如果 mklink 的两个 args 之一有一个空间,这将无法正常工作。所以我在两个参数周围添加了“”。执行此行不再有效,当我写 \"" 时,它仍然无效。

执行时如何写引号cmd /C

4

1 回答 1

4
string sourcePath = @"c:\z\b";
string targetPath = @"c:\z\a";

string arguments = string.Format("\"{0}\" \"{1}\"", sourcePath, targetPath);

var p = Process.Start("cmd", "/C mklink /H " + arguments);

工作示例:

string sourcePath = @"c:\documents and settings\harvey robert\My Documents\Test.txt";
string targetPath = @"c:\test";

string s = string.Format("\"{0}\" \"{1}\"", sourcePath, targetPath);
Process.Start("cmd", @"/c copy " + s);

已复制 1 个文件。

于 2012-11-30T22:36:49.263 回答