У меня есть проект, запущенный c: \ work \ SomeVariantFolder \ MySolution \ MyProject \ Bin \ Debug, и мне нужно выполнить командную строку из этого проекта из одной из подпапок: c : \ работа \ 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: \ работы \ SomeVariantFolder как жестко закодированной папка, так как название «SomeVariantFolder» может изменяться при некоторых обстоятельствах.
Любая помощь будет appriciated
, чтобы убедиться, что вы, где вы хотите быть, вы могли бы сначала выбрать диск 'C:' затем перейти в корень этого диска '' кд \\ затем введите каталог, в котором вы, наконец, хотите 'cd path \ to \ subfolder'; имейте в виду, что вам нужно либо вывести «\» в C# -строках, либо предшествовать строке с помощью '@', чтобы игнорировать escape-последовательности. – DrCopyPaste
Вместо 'CD'-из одного каталога в другой, почему бы не установить' WorkingDirectory' 'ProcessStartInfo' напрямую? – IronGeek
@NahumLitvin, я попытался использовать этот пример, но это не соответствовало моим потребностям. Thomas W, Это хороший ответ, который я не натолкнулся. IronGeek, я считаю, что это правильный ответ. Если бы вы могли ответить на мой вопрос, я бы отметил вас. – user3150947