Мне нужно запустить командное окно с некоторыми аргументами и выполнить больше команд внутри.
Например, запустить test.cmd и запустить mkdir.
Я могу запустить test.cmd с помощью processstartinfo, но я не уверен, как выполнять дальнейшие команды. Могу ли я передать дополнительные аргументы процессу test.cmd?
Как мне поступить?
Невозможно добавить комментарии для ответа ... ТАК, пишу здесь.
Андреа, это то, что я искал , Однако приведенный выше код не работает для меня.
Я запускаю test.cmd, который представляет собой новую командную среду (например, среду сборки razzle), и мне нужно выполнить дополнительные команды.
psi.FileName = @"c:\test.cmd";
psi.Arguments = @"arg0 arg1 arg2";
psi.RedirectStandardInput = true;
psi.RedirectStandardOutput = true;
psi.CreateNoWindow = true;
psi.UseShellExecute = false;
Process p = new Process();
p.StartInfo = psi;
p.Start();
p.StandardInput.WriteLine(@"dir>c:\results.txt");
p.StandardInput.WriteLine(@"dir>c:\results2.txt");
Чего вы пытаетесь достичь? Вам действительно нужно открыть командное окно или, например, вам нужно просто создать каталог?
mkdir
— это исполняемый файл Windows — вы можете запустить эту программу так же, как запускаете cmd
— нет необходимости сначала запускать процесс командного окна.
Вы также можете создать пакетный файл, содержащий все команды, которые вы хотите запустить, а затем просто запустить его, используя классы Process и ProcessStartInfo, которые вы уже используете.