我有一个项目,从c:\ work \ SomeVariantFolder \ MySolution \ MyProject \ Bin \ Debug运行,我需要从其中一个子文件夹执行该项目的命令行:c:\ work \ SomeVariantDev。 我面临的问题是从我运行项目的文件夹到我想要运行此命令行的文件夹。
请注意,我无法使用批处理文件来解决此问题。
我试图做的事情 - 声明一个私有方法,它从同一个进程执行三个命令,向上运行四个文件夹,然后执行我的命令,但这似乎不起作用。我觉得我在这里做错了,因为如果我从c:\ work \ SomeVariantFolder \运行这个命令,那就好了。
var process = new System.Diagnostics.Process();
var startInfo = new System.Diagnostics.ProcessStartInfo
{
WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal,
FileName = "cmd.exe",
RedirectStandardInput = true,
UseShellExecute = false
};
process.StartInfo = startInfo;
process.Start();
process.StandardInput.WriteLine("cd..");
process.StandardInput.WriteLine("cd..");
process.StandardInput.WriteLine("cd..");
process.StandardInput.WriteLine("cd..");
process.StandardInput.WriteLine("my command");
请注意,由于我的解决方案的性质,我不能使用批处理文件,不能使用c:\ work \ SomeVariantFolder作为硬编码文件夹,因为“SomeVariantFolder”名称在某些情况下可能会改变。
任何帮助都是适当的
答案 0 :(得分:19)
尝试设置WorkingDirectory
的{{1}}属性,以设置要启动的进程的初始目录。
ProcessStartInfo
答案 1 :(得分:1)
System.Environment.CurrentDirectory = @"..\..\..";
System.Diagnostics.Process.Start("MyCommand", "arg1, arg2, arg3");