管道基础大数据平台系统开发-【CS】-ExportMap
1
13693261870
2023-03-17 b00121d9909d4e1d3233fe2161ca7fe1992051d5
ExportMap/cs/Tool.cs
@@ -160,6 +160,28 @@
        /// <returns>执行结果或出错信息</returns>
        public static String ExecCmd(string cmd, bool isPy = false)
        {
            List<string> list = new List<string>();
            if (isPy)
            {
                list.Add("cd \"C:\\Program Files\\QGIS 3.16\\apps\\Python37\"");
                list.Add("\"C:\\Program Files\\QGIS 3.16\\bin\\qgis_process-qgis-ltr.bat\"");
                //list.Add("\"C:\\Program Files\\QGIS 3.16\\bin\\python-qgis-ltr.bat\"");
                //list.Add("exit()");
            }
            list.Add(cmd);
            string str = ExecCmd(list);
            return str;
        }
        /// <summary>
        /// 执行CMD
        /// </summary>
        /// <param name="list">命令集合</param>
        /// <returns>执行结果或出错信息</returns>
        public static string ExecCmd(List<string> list)
        {
            string str = null;
            try
            {
@@ -167,6 +189,7 @@
                p.StartInfo.FileName = "cmd.exe";
                p.StartInfo.UseShellExecute = false;
                p.StartInfo.CreateNoWindow = true;
                //p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                p.StartInfo.RedirectStandardInput = true;
                p.StartInfo.RedirectStandardOutput = true;
                p.StartInfo.RedirectStandardError = true;
@@ -176,16 +199,12 @@
                StreamReader so = p.StandardOutput; // 标准输出流 
                StreamReader se = p.StandardError; // 标准错误流
                LogOut.Info("cmd = " + cmd);
                LogOut.Info("cmd = " + string.Join(",", list));
                si.AutoFlush = true;
                if (isPy)
                foreach (string cmd in list)
                {
                    si.WriteLine("cd \"C:\\Program Files\\QGIS 3.16\\apps\\Python37\"");
                    si.WriteLine("\"C:\\Program Files\\QGIS 3.16\\bin\\qgis_process-qgis-ltr.bat\"");
                    //si.WriteLine("\"C:\\Program Files\\QGIS 3.16\\bin\\python-qgis-ltr.bat\"");
                    //si.WriteLine("exit()");
                    si.WriteLine(cmd);
                }
                si.WriteLine(cmd);
                si.WriteLine("exit");
                string info = so.ReadToEnd();