C# 当向进程传递多个参数时,我应该如何格式化字符串。当字符串的一部分是变量时启动

C# 当向进程传递多个参数时,我应该如何格式化字符串。当字符串的一部分是变量时启动,c#,C#,我试图将2个参数传递给Process.start(在c#中),字符串的一部分必须是从用户输入构建的字符串变量 当我使用简单的文件夹路径时,此代码可以正常工作,但我的路径是由用户确定的process.StartInfo.Arguments must=“-format mp4-outfolder”+myVar 我不能让它工作 Process process = new Process(); process.StartInfo.FileName = @"C:\Program Files (x86)\N

我试图将2个参数传递给Process.start(在c#中),字符串的一部分必须是从用户输入构建的字符串变量

当我使用简单的文件夹路径时,此代码可以正常工作,但我的路径是由用户确定的
process.StartInfo.Arguments must=“-format mp4-outfolder”+myVar

我不能让它工作

Process process = new Process();
process.StartInfo.FileName = @"C:\Program Files (x86)\NCH Software\Prism\Prism.exe";
process.StartInfo.Arguments = "-format mp4 -outfolder C:/users/john";
process.Start();

预期结果将是棱镜打开屏幕,自动选择mp4格式(工作正常),输出文件夹由变量设置。该部分参数被忽略,并且正在设置默认文件夹。

我认为在您的情况下,必须在变量之间使用\“\”

process.StartInfo.Arguments = "-format mp4 -outfolder  @\" " + myVar + "\""
关注此网站,您可以找到更多信息。

或者试试看

 string a = "aaa";
 string b = "bbb";
 Process.Start(@"something.exe ", "@"+ a + " " + b );

A将非常棒。请同时显示一个调用,该调用是您在命令提示符下成功使用的,该命令提示符确实有效(并且在路径中有一个文件夹)。然后,我们可以反向工作,以确定如何从C#生成它。还要清楚这是在什么操作系统上运行的。只需在路径参数周围添加引号。对不起,mjwillis,我很忙,正在重新讨论这个问题。这是windows 10,命令提示符是:C:\path to prism\prism.exe-format mp4-outfolder C:\path of folder..抱歉,不行。我可以看到第一个答案在这里尝试了什么,它看起来应该有效。我将它按原样粘贴到代码中,并在末尾添加了分号,但它仍然无法识别第二个参数。至于第二个建议,我仍然不知道如何将文本字符串和myVar结合起来使其工作。谢谢你的文档链接,但这也没什么帮助。实际上我已经这样做了,它对我有用。但这只是一个简单的字符串,不是一条路径。也许你可以试着把@放在路径之前。我编辑了原始答案。