传递以空格为参数的路径

时间:2019-05-23 08:44:26

标签: c# batch-file

我正在C#中运行一些代码,我在其中调用批处理文件,并且我需要传递一个以空格为参数的Path,它不起作用。

我试图在批处理%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 个答案:

答案 0 :(得分:1)

尝试一下:

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"

答案 1 :(得分:0)

传递双引号,例如"C:\Program Files\Test"

问题在于您的参数包含一个空格,因此将其视为两个不同的参数

答案 2 :(得分:0)

它使用简单的引号“'” + arg +“'”,并在批处理中将其称为%〜1