我正在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”并停在该空格处。 如何获得完整路径?
答案 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