-4

我正在尝试调用提供的命令行批处理工具程序。反复试验把我带到了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;
4

1 回答 1

1

你在这个问题上自相矛盾,说你需要使用常量,但又问如何使用变量——就想法而言,它们是截然相反的。一个是恒定的,另一个是可变的。目前,您使用文字来构造您的输入,因此您可以轻松地将它们换出。

如果您想为接收进程的参数使用常量,例如,请执行以下操作:

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

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

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

等等。

使用变量将非常相似,只是拥有诸如可更改的可重用对象之类的东西可能没有意义。

于 2013-07-02T12:57:59.410 回答