node执行cmd或shell命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node执行cmd或shell命令相关的知识,希望对你有一定的参考价值。

参考技术A 在实现 前端工程化 的过程中,经常需要在一个js脚本中去执行其他 node / npm 或者其他 shell 命令。本篇就介绍两种 node 调用 shell 的方法。

参考文档:

欢迎访问: 个人博客地址

java执行shell/cmd命令

try {
            Process p =Runtime.getRuntime().exec("chmod 777 /home/bomb/MoveToy/WebRoot/a.sh " );
            p.waitFor();
            
            Process pro = Runtime.getRuntime().exec(" /home/bomb/MoveToy/WebRoot/./a.sh " + num);
            pro.waitFor();
            System.out.println("run");
            java.io.InputStream out = pro.getInputStream();
            int i;
            String a = "";
            String b = "";
            int n=0;
            ArrayList<String> tmp = new ArrayList<String>() ;
            while ((i = out.read()) != -1) {
                char c=(char)i;
                if(i==10)
                {
                    //System.out.println(a);
                    tmp.add(a);
                    a="";
                    continue;
                }
                if(i!=13&&i!=10)
                { //System.out.println(n++ +" : "+c+" "+i);
                    a += c;
                }
            }
            
            int len=tmp.size();
            //提取耗散值
            String [] tmphaosan=new String [len];
            for(i=0;i<len;i++)
            {
                tmphaosan[i]=tmp.get(i).split(" ")[1];
                //System.out.println(tmp.get(i).split(" ")[1].split("\\n")[0]);
            }
            String ans="";
            String anss="";
            for(i=1;i<len;i++)
            {
                ans="";
                String t1=tmp.get(i-1).split(" ")[0];
                String t2=tmp.get(i).split(" ")[0];
                for(int j=0;j<t1.length();j++)
                {
                    //确保空格在后
                    if(t2.charAt(j)==‘E‘)
                    {
                        //System.out.println(j+1+" "+t1.charAt(j)+" "+t2.charAt(j));
                        ans=(j+1)+","+ans;
                    }
                    if(t1.charAt(j)==‘E‘)
                    {
                        ans+=(j+1);
                        ans+=",";
                    }
                }
                ans+=tmphaosan[i];
                ans+=‘;‘;
                anss+=ans;
            }
            //System.out.println(anss);
            PrintWriter pw = response.getWriter();
            pw.write(anss);
        } catch (Exception e) {
            System.out.println(num);
            e.printStackTrace();
        }

通过runtime类生成一个子进程,等待子线程执行完成。并且通过截获标准输出流来读取外部程序的输出内容。

以上是关于node执行cmd或shell命令的主要内容,如果未能解决你的问题,请参考以下文章

vb Shell怎么执行多条cmd命令

求各位度友,如何用shell命令关闭服务?shell "cmd /c net stop 服务名"…但是要是服务不止一个单词或...

如何用shell调用多条cmd命令

Shell之命令执行的判断依据

vb 下用shell实现 cmd 执行2个命令

BAT/CMD中将命令执行结果赋值给变量