Example #1
0
        private void bgw_Generate_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker worker = sender as BackgroundWorker;

            var commands = GetBatTxt();
            var sumCount = commands.Count;

            for (int i = 0; i < sumCount; i++)
            {
                #region 1.执行处理逻辑

                var executor = new ExecutorExpert(commands[i]);
                executor.Parse();
                GenerateAppendText.Append(executor.Execute());

                #endregion

                #region 2.计算完成度

                var percentum = Convert.ToInt32((i + 1) / Convert.ToDouble(sumCount) * 100);
                worker.ReportProgress(percentum);
                if (worker.CancellationPending) //获取程序是否已请求取消后台操作
                {
                    e.Cancel = true;
                    break;
                }

                #endregion
            }
        }
Example #2
0
        static void Main(string[] args)
        {
            MiniAbp.MiniAbp.StartWithSqlServer(GetConnectionString());
            string exeDir = string.Empty;

            if (args != null && args.Length == 1)
            {
                exeDir = args[0];
            }
            else
            {
                exeDir = Console.ReadLine();
            }
            if (!Directory.Exists(exeDir))
            {
                Console.WriteLine($"文件夹路径不存在: {exeDir}");
            }
            DirectoryInfo di    = new DirectoryInfo(exeDir);
            var           files = di.GetFiles();
            StringBuilder sb    = new StringBuilder();
            var           ii    = 0;

            files.Foreach(i =>
            {
                try
                {
                    var sqls         = File.ReadAllText(i.FullName);
                    ExecutorExpert e = new ExecutorExpert(sqls);
                    e.Parse();
                    var result = e.Execute();
                    Console.WriteLine($"正在执行第{++ii}条命令集.");
                    sb.Append(result);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            });
            // 保存路径
            var storedFullName = Path.Combine(exeDir, $"执行结果_{DateTime.Now.ToString("MM-dd-hhmmss")}.sql");

            File.WriteAllText(storedFullName, sb.ToString());
            Console.WriteLine("执行完成!");
        }