执行Cmd命令[通俗易懂]

执行Cmd命令[通俗易懂](1)直接在执行.cmd脚本:(2)直接仿制在CMD敲命令的方式:EventManager.WriteOutput("正在前端构建…");vardir=Path.C

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

(1)直接在执行.cmd脚本:

  string dir = Path.Combine(@"命令所在文件夹");
            string cmd = Path.Combine(dir, "test.cmd");
            StringBuilder sb = new StringBuilder();
            var processConfuse = new Process
            {
                StartInfo =
                {
                    WorkingDirectory = dir,
                    FileName = cmd,
                    CreateNoWindow = true,
                    RedirectStandardOutput = true,
                    RedirectStandardInput = true,
                    UseShellExecute = false
                }
            };
            processConfuse.OutputDataReceived += (sender, args) => sb.AppendLine(args.Data);
            processConfuse.Start();
            processConfuse.BeginOutputReadLine();
            processConfuse.WaitForExit();
            string output = sb.ToString();
            if (output.IndexOf("error", StringComparison.OrdinalIgnoreCase) != -1)
            {
                EventManager.WriteOutput(output);
                return false;
            }
            return true;

(2)直接仿制在CMD敲命令的方式:

EventManager.WriteOutput(“正在前端构建…”);
var dir = Path.Combine(InputInfo.BranchPath, ConfigInfo.Instance.RootWebDir, “node”);
var root = Path.GetPathRoot(dir).Substring(0, 2);
StringBuilder sb = new StringBuilder();
Process p = new Process();
p.StartInfo.FileName = “cmd.exe”;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
p.OutputDataReceived += (sender, a) => sb.AppendLine(a.Data);
p.Start();
p.StandardInput.WriteLine(root);
p.StandardInput.WriteLine($”cd {dir}”);
p.StandardInput.WriteLine(@”grunt.cmd” + “&exit”);
p.BeginOutputReadLine();
p.WaitForExit();
string output = sb.ToString();
p.Close();
if (output.IndexOf(“error”, StringComparison.OrdinalIgnoreCase) != -1)
{
EventManager.WriteOutput(output);
EventManager.WriteOutput(“前端构建失败”);
return false;
}
EventManager.WriteOutput(“前端构建完成”);
return true;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/166909.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 代码保护– 几款加壳工具

    代码保护– 几款加壳工具VirboxProtector(商用)分带授权的版本和独立壳。带授权的版本加壳后需要绑定许可,许可控制软件能否用,加壳保护安全。独立版的话就只是对代码做加壳,防止代码反编译。碎片代码执行、外壳加密、混淆、数据加密。服务商提供了较为完善的文档以及加密方式,提供了较为充分的产品管理平台,以及云端网络加密,并且对于开发者免费使用。使用评价:简单下载使用了一下,提供的功能很多,并且管…

    2022年6月27日
    49
  • Git工具安装

    Git工具安装

    2021年6月3日
    94
  • pytest指定用例_文件夹排列顺序自定义

    pytest指定用例_文件夹排列顺序自定义前言测试用例在设计的时候,我们一般要求不要有先后顺序,用例是可以打乱了执行的,这样才能达到测试的效果.有些同学在写用例的时候,用例写了先后顺序,有先后顺序后,后面还会有新的问题(如:上个用例返回

    2022年7月29日
    10
  • main方法详解

    main方法详解学习Java有一段时间了,一直没用过博客来写写自己在学习过程中遇到的问题和学习心得,看到别人在诸如博客这样的社区写一些总结觉得挺好的。索性,今天开始自己也用起博客记录学习。一来呢,能更好的总结学习知识。二来,有问题更有机会让别人指出,对自己学习也很有帮助。话不多说,就以main方法详解开始今天的主题吧。      为了表述方便,我先把mian方法写出来:publicclassDemo

    2022年5月31日
    52
  • fstream的用法_fun 的用法

    fstream的用法_fun 的用法在C++中输入输出到指定文件,或者从指定文件中读出数据使用fstream类较为方便。C++中处理文件类似于处理标准输入和标准输出。类ifstream、ofstream(向文件中写入)和fstream分别从类istream、ostream和iostream派生而来。作为派生的类,它们继承了插入和提取运算符(以及其他成员函数),还有与文件一起使用的成员和构造函数。可将文件<fstream&gt…

    2022年9月19日
    2
  • gradle使用本地maven仓库_gradle引用本地项目

    gradle使用本地maven仓库_gradle引用本地项目参照Gradle官方文档配置阿里Maven仓库

    2025年6月16日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号