Rahul s menon Ответов: 2

В C# выполнять внешние .exe-файла, используя командную строку. Исполняемая корневая папка, имеющая место для имени


Я новичок в командах. Мое приложение должно запустить другой файл .exe с помощью командного окна (cmd.exe) в C# Winforms;


Ниже мира кода одна из папок, имеющих(мое приложение 4) пробел. Из-за этого пробела командная строка не выполняется app.exe.

Что я уже пробовал:

Я пытался:-

var process= new ProcessStartInfo();
путь к строке = @"C:\PROGRA~1\мое приложение 4\Compare\app.exe";
процесс.Значение свойства useshellexecute` = истина;
процесс.WorkingDirectory = @"C:\Windows\System32";
процесс.Имя Файла = @"C:\Windows\System32\cmd.exe";
процесс.Аргументы = "/c " + путь;
процесс.WindowStyle = ProcessWindowStyle.Скрытый;
процесс.Запуск(процесс);

Graeme_Grant

В чем заключается ваш вопрос?

Rahul s menon

как это запустить app.exe из пути, упомянутого выше, с помощью командного окна.

2 Ответов

Рейтинг:
0

Dave Kreskowiak

Путь, который вы пытаетесь выполнить, должен быть заключен в кавычки в вашей командной строке.

Командная строка, которую вы, по-видимому, пытаетесь выполнить, такова::

cmd /c C:\PROGRA~1\My App 4\Compare\app.exe


То, что вам нужно выполнить, это:
cmd /c "C:\Program Files\May App 4\Compare\app.exe"

Любой путь, в котором есть пробелы, должен быть заключен в кавычки.
Итак, быстрый и быстрый метод определения вашего пути будет следующим
string Path = "\"C:\\Program Files\\My App 4\\Compare\app.exe\"";


Rahul s menon

Для файлов Progarm мы используем PROGRA~1. Такой путь решения реализации "Приложение 4"?

Dave Kreskowiak

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

Dave Kreskowiak

Для файлов Progarm мы используем PROGRA~1
Почему? Сегодня в этом нет никакого смысла.

Рейтинг:
0

Sascha Lefèvre

Вам нужно было бы поставить Path в двойных кавычках, потому что он используется как аргумент, а не как имя файла здесь. То же самое, когда вы вводите его в командную консоль вручную.

Вы уверены, что на самом деле не хотите выполнять свое приложение напрямую, без объезда через cmd.exe- Вот так:

Process.Start(@"C:\PROGRA~1\My App 4\Compare\app.exe");


Rahul s menon

Спасибо за ваше решение. Я хочу указать путь к строковой переменной, как указано в разделе " Мир кода

Процесс.Старт(@"C:\PROGRA~1\мое приложение 4\Compare\app.exe"); единственная проблема, с которой я сталкиваюсь, - это "мое приложение 4", имена этих папок имеют пробелы. Из-за этого пространство не может работать app.exe. для файлов Progarm мы используем PROGRA~1. Например, таким образом любое решение для реализации "моего приложения 4"

Sascha Lefèvre

Процесс.Старт(@"C:\PROGRA~1\мое приложение 4\Compare\app.exe"); будет работать независимо от пробелов. Пробелы-это проблема только в вашем коде, потому что вы используете путь как аргумент Заключите его в двойные кавычки, как я уже сказал и как показал Дэйв ниже.