带文本框的多个Process.StartInfo.Arguments

时间:2014-05-02 09:50:40

标签: c#

我尝试使用gbak制作简单的GUI应用程序来备份firebird数据库。以下是流程代码

Process backingup = new Process();    
backingup.StartInfo.Filename = gbak;    
backingup.StartInfo.Arguments = "databaseBox.Text savedirBox.Text -user username.Text -pass pass.Text"    
backingup.StartInfo.UseShellExecute = false;    
backingup.StartInfo.CreateNoWindow = true;    
backingup.StartInfo.RedirectStandardError = true;    
backingup.Start();    
string backupoutput = backingup.StandardError.ReadToEnd();    
backingup.WaitForExit();    
ConsoleInfo.Text = backupoutput;    

我无法正确传递参数。我想要输入的论点是

  

“C:\ DatabaseFile.GDB C:\ BackupFile.GBK -user SYSDBA -pass masterkey”

其中:

  • “C:\ DatabaseFile.GDB”作为database.Text(TextBox)
  • “C:\ BackupFile.GBK”作为savedir.Text(TextBox)
  • “SYSDBA”作为username.Text(TextBox)
  • “masterkey”作为pass.Text(TextBox)

1 个答案:

答案 0 :(得分:3)

你实际上是使用这些字符串而不是值。

尝试将参数行更改为:

backingup.StartInfo.Arguments = string.Format("{0} {1} -user {2} -pass {3}", databaseBox.Text, savedirBox.Text, username.Text, pass.Text);

请注意,您可能需要在格式字符串中添加一些双引号。