--- /dev/null
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+using com.andoutomo.kybernetes.control;\r
+using System.IO;\r
+\r
+namespace com.andoutomo.kybernetes.command.batch\r
+{\r
+ class batchCommand:AbCommand\r
+ {\r
+ private string batchFilePath;\r
+ protected override bool execute()\r
+ {\r
+ BatchCommandArg param = (BatchCommandArg)argument;\r
+\r
+ string[] batchArgs;\r
+ if (param.needSelect)\r
+ {\r
+ batchFilePath = form.invokeShellDialog();\r
+ batchArgs = new string[0];\r
+ }\r
+ else\r
+ {\r
+ batchFilePath = param.BatchFilePath;\r
+ batchArgs = param.BatchArguments; \r
+ }\r
+\r
+ if (string.IsNullOrEmpty(batchFilePath))\r
+ {\r
+ message = "処理をキャンセルしました。";\r
+ return true;\r
+ }\r
+\r
+ string strCmd="";\r
+ try\r
+ {\r
+ using (StreamReader sr = new StreamReader(\r
+ batchFilePath, Encoding.GetEncoding("Shift_JIS")))\r
+ {\r
+\r
+ while ((strCmd = sr.ReadLine()) != null)\r
+ {\r
+ for (int i = 0; i < batchArgs.Length; i++)\r
+ {\r
+ strCmd = strCmd.Replace("%" + (i + 1), batchArgs[i]);\r
+ }\r
+ if (strCmd.Contains('%'))\r
+ {\r
+ return false;\r
+ }\r
+\r
+ form.cmdForBatch(strCmd);\r
+ }\r
+ }\r
+ }\r
+ catch (Exception e)\r
+ {\r
+ throw new KybernetesApplicationException(e);\r
+ }\r
+ message = "バッチ処理が完了しました。";\r
+ return true;\r
+ }\r
+ string message = string.Empty;\r
+ protected override string turnMessage()\r
+ {\r
+ return message;\r
+ }\r
+\r
+ protected override string turnErrorMessage()\r
+ {\r
+ return base.DefaultErrorMessage;\r
+ }\r
+\r
+ protected override string turnSplitErrorMessage()\r
+ {\r
+ return base.DefaultSplitErrorMessage;\r
+ }\r
+ }\r
+}\r