Передайте путь с пробелом в качестве аргумента - PullRequest
0 голосов
/ 23 мая 2019

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

Я пытался назвать свой аргумент другимпути в пакете% 1,% ~ 1, "% 1", "% 1".Ни одна из этих работ.Также в моем коде C # я пытался преобразовать его в строку, и он не будет работать либо

C # код.

string argument =   textBox10.Text.ToString()  ; 
string command = @"/c powershell -executionpolicy unrestricted X:\PathToBatch\Run.bat" + " " + argument;
System.Diagnostics.Process.Start("cmd.exe", command);

Код пакета:

echo %1
Pause

Когда я передаю аргумент C: \ Program Files \ Test в качестве каталога, он печатает «C: \ Program» и останавливается на пробеле,Как я могу получить полный путь?

Ответы [ 3 ]

1 голос
/ 23 мая 2019

Попробуйте это:

string command = @"/c powershell -executionpolicy unrestricted X:\PathToBatch\Run.bat"+ " \""+ argument +"\" ";
System.Diagnostics.Process.Start("cmd.exe", command);

Это «напишет» следующую строку в вашей консоли:

/c powershell -executionpolicy unrestricted X:\PathToBatch\Run.bat "C:\Program Files\Test"
0 голосов
/ 23 мая 2019

Он работал с простыми кавычками "'" + arg + "'" и называл его в пакете как% ~ 1

0 голосов
/ 23 мая 2019

передайте ваш аргумент в двойных кавычках, вот так: "C:\Program Files\Test".

проблема в том, что ваш аргумент содержит пробел, поэтому он рассматривается как два разных аргумента

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