【发布时间】:2019-05-23 08:44:26
【问题描述】:
我在调用批处理文件的 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”并停在空格处。 如何获取完整路径?
【问题讨论】:
-
到目前为止您尝试过什么?你必须使用这样的引用
+ " """ + argument + """";并没有实际测试过这个。只是为了解释。 -
当你
echo "%*"时会发生什么 -
当我去 %* 时,它会显示所有内容,但事实是我有 6 个 arg,所以我可能无法使用它。我的命令行看起来像这样:@"/c powershell -executionpolicy unrestricted X:\PathToBatch\Run.bat" + " " + arg1 + " " + arg2 + " " + arg3
-
我也已经尝试过使用引号了
-
为什么使用powershell而不是直接运行批处理文件?引入 powershell 作为中间人让事情变得更加复杂
标签: c# batch-file