ProcessStartInfo.Arguments - 常量

时间:2013-07-02 12:50:08

标签: c# command-line arguments

我正在尝试调用提供的命令行批处理工具程序。试验和错误使我ProcessStartInfo ...问题是参数需要是常数。我一直在收集要在参数中使用的路径和文件名。如何在参数中使用变量?

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.FileName = "sbsmutator.exe";
startInfo.WorkingDirectory = @"C:\Program Files\Allegorithmic\Substance\\BatchTools\1.x\";
startInfo.Arguments = " specialization --input " + templatePath + " --presets-path " + resourcesPath +
                    " --output-name " + name +
                    " --output-graph-name " + RemoveSpaces(name) +
                    " --output-path " + sbsPath;

1 个答案:

答案 0 :(得分:1)

你在问题​​中反驳自己,说明你需要使用常数但是询问如何使用变量 - 就想法而言,它们是截然相反的。一个是常数,另一个是可变的。目前,您使用文字构建输入,因此您可以轻松地将它们交换出来。

如果要将常量用于接收进程的参数,那么,例如,执行:

const string ProcessExe = "sbsmutator.exe";
const string OutputName = "--output-name";

将它们串在一起,或使用string.Format等:

startInfo.FileName = ProcessExe;
startInfo.Arguments = string.Format("{0} {1}", OutputName, SomeOtherConstant);

等等。

使用变量会非常相似,只有将可重复使用的东西变为可能没有意义。