我正试图逃离C:\ Program Files空间的序列。 最初我在一个字符串
中逃脱了它System.Diagnostics.Process.Start("XCOPY.EXE", "/E /I /Y \"" + ProgramFiles + "\\WinCon2\\*.*\" \"" + pfadauswahl + "\\Backup\\" + dt.ToString("yyyy-MM-dd") + "\\WinCon2\\\"");
因为我尝试升级我的程序以摆脱无穷无尽的字符串链, 新版本看起来像:
System.Diagnostics.Process.Start("XCOPY.EXE", "/E /I /Y " + pathWinCon2 + " " + backupPathWinCon2);
在我第一次尝试时,手动转发程序文件
\"" + ProgramFiles + "\\WinCon2\\*.*\" \""
和字符串中的“C:\ Program Files”......
现在我想使用
Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)
或
Environment.GetEnvironmentVariable("PROGRAMFILES")
但我怎么能逃脱他们?
答案 0 :(得分:1)
我已经尝试过这个并且按预期工作:
string s = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
string q = "Microsoft Sql Server";
string path = Path.Combine(s, q);
Process p = new Process();
p.StartInfo.FileName = "CMD.EXE";
p.StartInfo.Arguments = "/K DIR \"" + path + "\" /D /S";
p.Start();
答案 1 :(得分:0)
这是你想要的吗?
您可以在引号中指定路径..
由于空格分隔了不同的参数,因此必须用引号给出这些路径。
pathWinCon2 = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + @"\WinCon2\*.*\";
backupPathWinCon2 = pfadauswahl + @"\Backup\" + dt.ToString("yyyy-MM-dd") + @"\WinCon2\";
System.Diagnostics.Process.Start("XCOPY.EXE", "/E /I /Y \"" + pathWinCon2 + "\" \"" + backupPathWinCon2 + "\"");