繁体   English   中英

C#使用Process.Start从路径中的参数和空格开始

[英]C# Use Process.Start with parameters AND spaces in path

我看过类似的示例,但是找不到与我的问题完全相同的东西。

我需要从C#运行这样的命令:

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "cmd";
startInfo.Arguments = "/K D:\\as df\\solver\\Swag.Console.exe -f D:\\as df\\solver\\2035.swag -p 5555";
Process.Start(startInfo);

不起作用。

startInfo.Arguments = "/K \"D:\\as df\\solver\\Swag.Console.exe\" -f D:\\as df\\solver\\2035.swag -p 5555";

不起作用。

startInfo.Arguments = "/K \"D:\\as df\\solver\\Swag.Console.exe\" -f \"D:\\as df\\solver\\2035.swag\" -p 5555";

不起作用。

startInfo.FileName = "\"D:\\as df\\solver\\Swag.Console.exe\"";
startInfo.Arguments = " -f \"D:\\as df\\solver\\2035.swag\" -p 5555";

这样就可以了,但是我想CMD,这可能吗?

在此处输入图片说明

/ K参数将执行其后面的命令。 可能有很多与&链接的命令,但是,这是您在尝试中缺少的,在这种情况下,需要将它们完全用双引号引起来。 请参阅SS64 cmd参考

换句话说,命令应如下所示:

cmd /K " here what ever you want to execute"

由于正斜杠和反斜杠,您很快会迷路。 因此,我取出了包裹String.Format的外部双引号,这样使您的实际命令应该变得更加清楚。 这是我期望可以使用的代码:

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "cmd";
startInfo.Arguments = String.Format(
    "/K \"{0}\"", 
    " \"D:\\as df\\solver\\Swag.Console.exe\" -f \"D:\\as df\\solver\\2035.swag\" -p 5555");
Process.Start(startInfo);

如果Swag.Console.Exe只是将其参数转储到控制台,则结果如下:

 -f D:\\as df\\solver\\2035.swag -p 5555 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM