2015-05-20 3 views
1

Я пытаюсь запустить приведенный ниже код и рассчитывать получить файл с именем abc.txt с информацией о Dir. Я получаю командную строку, но команды не работают.Запуск команды CMD

В StackOverFlow есть много вопросов, которые обсуждают это, но ничто не упомянуто, что это либо требуется, либо работает.

ProcessStartInfo info = new ProcessStartInfo(); 
info.FileName = "cmd.exe"; 
info.RedirectStandardInput = true; 
info.UseShellExecute = false; 

Process p = Process.Start(info); 

if (p.StandardInput.BaseStream.CanWrite) 
{ 
    p.StandardInput.WriteLine("dir >>c:\abc.txt"); 
} 
+3

Зачем вам это нужно с помощью CMD с C#? –

+0

Собственно, это всего лишь образец кода. У меня есть несколько других команд для запуска, но, пытаясь заметить, что я не могу запустить даже команду dir. Итак, если это будет разрешено, я надеюсь запустить и другие команды. –

+0

BTW, я не нахожу полезных команд CMD, использующих 'Process', когда вы можете достичь тех же целей, используя классы System.IO ... –

ответ

7

Вы должны бежать ваш "\" в sw.WriteLine для C: \

просто добавьте @ перед тем, как это:

sw.WriteLine(@"dir >>c:\abc.txt"); 

Рассмотрим: Вы, возможно, придется запустите приложение aour в расширенном административном контексте, чтобы написать c: \ abc.txt

+0

Я как раз собирался рекомендовать вам использовать стенографическую строку для путей, но вы уже отредактировал его. +1 –

Смежные вопросы