C#BAT与VBS文件的创建和执行调用

  /// <summary>
        /// 创建bat脚本
        /// </summary>
        /// <param name="batName">文件名</param>
        /// <param name="fileContent">文件内容</param>
        /// <param name="u"></param>
        internal static void CreationBat(string batName, string fileContent, string u = null)
        {
            string filepath = System.IO.Directory.GetCurrentDirectory();
            string batpath = filepath + @"" + batName;
            writeBATFile(fileContent, batpath);
        }

        /// <summary>
        /// 写入文件
        /// </summary>
        /// <param name="fileContent">文件内容</param>
        /// <param name="filePath">路径</param>
        internal static void writeBATFile(string fileContent, string filePath)
        {
            if (!File.Exists(""" + filePath + """))
            {
                FileStream fs1 = new FileStream(filePath, FileMode.Create, FileAccess.Write);//创建写入文件
                StreamWriter sw = new StreamWriter(fs1);
                sw.WriteLine(fileContent);//开始写入值
                sw.Close();
                fs1.Close();
            }
            else
            {
                FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Write);
                StreamWriter sr = new StreamWriter(fs);
                sr.WriteLine(fileContent);//开始写入值
                sr.Close();
                fs.Close();
            }
        }


        /// <summary>
        /// 调用执行bat文件
        /// </summary>
        /// <param name="batName">文件名</param>
        /// <param name="thisbatpath">路径</param>
        internal static void ExecuteBat(string batName, string thisbatpath)
        {
            Process proc = null;
            try
            {
                string targetDir = string.Format(thisbatpath);//this is where testChange.bat lies
                proc = new Process();
                proc.StartInfo.WorkingDirectory = targetDir;
                proc.StartInfo.FileName = batName;
                proc.StartInfo.Arguments = string.Format("10");//this is argument
                proc.StartInfo.RedirectStandardError = false;
                proc.StartInfo.CreateNoWindow = true;
                proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;//这里设置DOS窗口不显示,经实践可行
                proc.Start();
                proc.WaitForExit();
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception Occurred :{0},{1}", ex.Message, ex.StackTrace.ToString());
            }
        }

        /// <summary>
        /// 调用执行vbs文件
        /// </summary>
        /// <param name="vbsName">文件名</param>
        internal static void ExecuteVbs(string vbsName)
        {
            string path = System.IO.Directory.GetCurrentDirectory() + @"" + vbsName;
            ProcessStartInfo startInfo = new ProcessStartInfo();
            startInfo.FileName = "wscript.exe";
            startInfo.Arguments = path;
            //Process.Start(startInfo);

            Process.Start(startInfo.FileName, """ + startInfo.Arguments + """);
        }


        /// <summary>
        /// 创建vbs文件
        /// </summary>
        /// <param name="vbsName">vbs文件名</param>
        internal static void NewVbs(string vbsName)
        {
            string path = System.IO.Directory.GetCurrentDirectory() + @"" + vbsName;
            FileStream fsvbs = new FileStream(path, FileMode.Create, FileAccess.Write);
            StreamWriter runBat = new StreamWriter(path);
            runBat.WriteLine("set ws=WScript.CreateObject("WScript.Shell")");
            runBat.WriteLine("ws.Run"runRdp.bat",0");
            runBat.Close();
            fsvbs.Close();
        }
原文地址:https://www.cnblogs.com/CityOfThousandFires/p/13808564.html