Процесс C # Cmd не будет работать с пробелами - PullRequest
0 голосов
/ 08 июня 2011

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

Process.Start("cmd.exe", "/C choice /C Y /N /D Y /T 3 & cd C:\Temp Folder");

Вместо этого дляесли посмотреть на Temp Folder, он будет искать только temp.

Один из способов - обернуть путь с помощью "", но я не могу сделать это в строке.(пробовал '')

Другой способ - пройти по пути, найти пробелы и заменить их чем-то, но я не знаю, чем.

Я мог бы использовать некоторую помощь с любым из нихиз этих способов (если у вас есть лучший, это здорово)

Ответы [ 2 ]

4 голосов
/ 08 июня 2011

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

Попробуйте

Process.Start("cmd.exe", @"/C choice /C Y /N /D Y /T 3 & cd C:\""Temp Folder""");

или

Process.Start("cmd.exe", "/C choice /C Y /N /D Y /T 3 & cd C:\\\"Temp Folder\"");
3 голосов
/ 08 июня 2011

Вам необходимо использовать escape-символ \ для специальных символов. Итак, чтобы избежать ", используйте \"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...