OSDN Git Service

構成変更のためファイルを置き直し。
[kybernetes/Kybernetes.git] / base / command / batch / batchCommand.cs
diff --git a/base/command/batch/batchCommand.cs b/base/command/batch/batchCommand.cs
new file mode 100644 (file)
index 0000000..54fbd74
--- /dev/null
@@ -0,0 +1,80 @@
+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