2013-12-17 4 views
8

を使用してバッチファイルにパラメータを渡すために、私はこのexeファイルを実行するには6つの引数、私は1つのバッチファイルをどのようにC#の

enter image description here

をとるコンソールファイルを、持っているの作成、

enter image description here

今、このパラメータを、私の1つのWindowsアプリケーションからバッチファイルに送信する必要があります。これはコードです:

  string consolepath = @"E:\SqlBackup_Programs\console-backup\Backup_Console_App"; 
      string Pc = "VARUN-PC"; 
      string database = "Smart_Tracker"; 
      string UserName = "sa"; 
      string Password = "[email protected]"; 
      string bacPath = @"D:\TEST"; 

      System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
      proc.StartInfo.FileName = System.Configuration.ConfigurationManager.AppSettings["BATCH_FULLBACKUP"].ToString().Trim(); 
      proc.StartInfo.Arguments = String.Format(consolepath,Pc,database,UserName,Password,"F",bacPath); 
      //set the rest of the process settings 
      proc.Start(); 

しかし、それは動作しません。私は

がオフ %1%2%3%4%5%7

がオフ@echo 6%@echo、のような私のバッチファイルを変更しようとしました

が、それはどちらか動作しませんでした。

エラー画像:

答えて

6

Argumentsspaceによってseperatedでなければなりません。

方法1:

proc.StartInfo.Arguments =consolepath+" "+Pc+" "+database+" "+UserName+" "+Password+" "+"F"+" "+bacPath; 

方法2:あなたは、バッチファイル内のパラメータ値

てみてくださいハードコードしないでください。String.Format()

proc.StartInfo.Arguments =String.Format("{0} {1} {2} {3} {4} {5} {6}",consolepath,Pc,database,UserName,Password,"F",bacPath); 

ソリューション2を使用してこれはバットを変える以下のようにchファイルを作成します。

%1 %2 %3 %4 %5 %6 %7 
+0

私は両方の方法の上でこれを使用すると、私のバッチファイルは、独自の値に応じて を実行します。つまり、この引数から値を取らなかったことを意味します。 だから、バッチファイルに変更が必要ですか? 現在、私のバッチファイルは上のイメージを表示するのと同じです 私はコード "E:\"では最後の引数をいくつか与えていますが、引き続きそのバッチファイルのパスに従います。 –

+0

@VARUNNAYAK:実際に動作します。確認してください。 –

+0

@VARUNNAYAK:あなたはそれをチェックしましたか?それは私のために働いています。 –

4

String.Format呼び出しの形式がありません。

proc.StartInfo.Argumentsをもっと

String.Format("{0} {1} {2} {3} {4} {5} {6}", consolepath,Pc,database,UserName,Password,"F",bacPath); 

する必要がありますしかし、あなたの引数は空白が含まれている可能性があることに注意してください。私はこれをするだろう。

var args = new string[] { consolepath,Pc,database,UserName,Password,"F",bacPath }; 
var startupInfo = String.Join(" ", args.Select(x => "\"" + x + "\"")); 
+0

引数が7つしかないので、{7}は不要です。 –

+0

@sudhaker、ありがとう。 –

関連する問題