我试图在C#中使用来自ProcessStartInfo的cmd.exe打开一些参数 但我的文件夹导航需要包括双引号,例如。 " C:\这是\ my \ folder site"
如您所见,使用双引号的原因是文件夹名称上有空格。
这是我的代码
var ddd = "\"" + projectPath + "\"";
var strCmdTxt = "/c cd " + ddd + " && code .";
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo
{
WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden,
FileName = "cmd.exe",
Arguments = strCmdTxt, UseShellExecute = true, CreateNoWindow= true
};
process.StartInfo = startInfo;
process.Start();
但它运行的是这样的
cd \" C:\这是\ my \ folder site \"
,只是让我回到C盘
命令应为 cd" C:\这是\ my \ folder site"
答案 0 :(得分:0)
看起来您要尝试实现的是在指定文件夹中启动VS Code
。考虑使用您正在启动的进程的工作目录,而不是尝试导航到该目录并在那里启动VS Code
。这是一种有助于此的方法:
private static void StartVSCodeInFolder(string projectPath)
{
using (System.Diagnostics.Process process = new System.Diagnostics.Process())
{
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo
{
WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden,
FileName = "C:/Program Files/Microsoft VS Code/Code.exe",
Arguments = ".",
UseShellExecute = false,
CreateNoWindow = true,
WorkingDirectory = projectPath
};
process.StartInfo = startInfo;
process.Start();
}
}
希望这有帮助。
答案 1 :(得分:0)
您是否可以使用Environment类更改工作目录,只需使用" code.exe"。
这似乎是一种更清洁的方法。
{{1}}