【发布时间】:2011-07-25 21:46:48
【问题描述】:
我有三个路径,我想将 3 个单独的参数传递给可执行文件。我做了 startinfo.arguments,但是如何将它们分开,以便可执行文件知道它们是三个不同的参数?
【问题讨论】:
我有三个路径,我想将 3 个单独的参数传递给可执行文件。我做了 startinfo.arguments,但是如何将它们分开,以便可执行文件知道它们是三个不同的参数?
【问题讨论】:
您可以像在命令提示符下一样将它们简单地传递给参数属性,用空格分隔它们,将所有包含的空格括在双引号中。
更新:-
作为在参数中包含空格的示例,将 'foo bar baz.txt' 复制到 'this is a test.txt':-
using (var process = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = "cmd.exe",
Arguments = "/c copy \"foo bar baz.txt\" \"this is a test.txt\""
}
})
{
process.Start();
process.WaitForExit();
}
语法很笨拙,但其优点是与您在命令行中的操作方式一致,正如@Ed S 所指出的那样。
【讨论】:
你传入的参数字符串应该与你在命令行中输入时传入的字符串没有什么不同。
【讨论】:
假设您的程序名为 Test.exe,并且您想向它传递 3 个命令行参数“argument1”“argument 2”和“argument3”
如果你要从命令行运行它,你会这样做:
Text.exe argument1 "argument two" argument3
因此您的 startInfo.Arguments 将设置为:
startInfo.Arguments = "argument1 \"argument two\" argument3";
【讨论】: