Отправка пути с пробелами в командный файл из c #

1

У меня есть приложение, которое выполняет пакетный файл из приложения. командный файл содержит это

attrib %1 +h +r +s /s /d
pause

мой код в приложении С#

Process p = new Process();
string m=@"C:\Users\INDERJEET\Desktop\Antivirus works\Antivirus\Batchfiles\Testproject";
p.StartInfo.FileName = @"C:\Users\INDERJEET\Desktop\Antivirus works\Antivirus\Batchfiles\hide_2.bat";
p.StartInfo.Arguments = m;
p.StartInfo.Verb = "runas";
p.Start();

когда я запускаю это. он, кажется, только выбирает путь uptil C:\Users\INDERJEET\Desktop\Antivirus, а не после этого.. как отправить весь путь в cmd.

  • 0
    Вам нужно использовать двойные кавычки ( " ) по пути - string m=@"""C:\Users\INDERJEET\Desktop\Antivirus works\Antivirus\Batchfiles\Testproject""";
  • 0
    Даже если я поместил оператор паузы в файл .bat. он просто поднимается на секунду и уходит. это происходит, когда я помещаю двойные кавычки вокруг пути.
Показать ещё 1 комментарий
Теги:
visual-studio
batch-file

1 ответ

1

Попробуйте использовать двойную кавычку (") вокруг пути. Поскольку вы используете строковый литерал, вам нужно избежать двойной кавычки со второй двойной кавычкой (например, этот ""):

string m = @"""C:\Users\INDERJEET\Desktop\Antivirus works\Antivirus\Batchfiles\Testproject""";

Результат вышеуказанного кода должен передать следующий параметр в ваш пакетный файл:

"C:\Users\INDERJEET\Desktop\Antivirus works\Antivirus\Batchfiles\Testproject"
  • 0
    Как я могу проверить, что он отправляет в мой пакетный файл? потому что пакетный файл закрывается сразу при запуске
  • 0
    @InderjeetSingh Он отправляет именно то, что вы говорите, чтобы отправить. В этом нет магии.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню