2012-03-15 3 views
0

Я пытаюсь выполнить команду оболочки с аргументами в C# и «Не удается найти указанный файл».Как выполнить команду оболочки с аргументами?

I`ve пытался:

p.StartInfo.FileName = Directory.GetCurrentDirectory() + "\\timesync\\NistClock.exe sync"; 

путь правилен 100% NistClock.exe запускается на выполнение при запуске без параметров "синхронизации"

+1

Пожалуйста, не префикс ваших титулов с "C#". Для этого нужны теги. –

ответ

5

Вы должны изменить немного код:

p.StartupInfo.FileName = Path.Combine(Directory.GetCurrentDirectory(), "timesync\\NistClock.exe"); 
p.StartupInfo.Arguments = "sync"; 
3

Используйте Arguments свойство.

p.StartInfo.FileName = Directory.GetCurrentDirectory() + "\ TimeSync \ NistClock.exe"; p.StartInfo.Arguments = "sync";

Кстати, будьте осторожны с использованием Directory.GetCurrentDirectory(). Обратите внимание, что этот метод может возвращать что-то другое, если вы используете любые диалоги файлов во всем приложении. Возможно, лучше использовать что-то вроде Assembly.GetExecutingAssembly(). Вместо этого разместите и проанализируйте каталог.

3
string path = Directory.GetCurrentDirectory() + "\\timesync\\NistClock.exe";     
string args = "sync"; 
ProcessStartInfo p = new ProcessStartInfo(path, args); 
Process process = Process.Start(p); 
Смежные вопросы