`
loveExtJs
  • 浏览: 15573 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

调用系统的DOS命令方法执行需要的命令

阅读更多

package com.huaweisymantec.core.utils;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;

import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 命令行命令执行工具类
 * 
 * @author s00108907
 * 
 */
public final class CommandUtils {

    private static final Logger LOG = LoggerFactory.getLogger(CommandUtils.class);

    /**
     * 调用系统的DOS命令方法执行需要的命令
     * 
     * @param command 要执行的命令
     * @return 执行结果
     * @throws IOException
     */
    public static String exec(String command) throws IOException {
        return exec(null, command);
    }

    /**
     * 调用系统的DOS命令方法执行需要的命令
     * 
     * @param directory 此进程的工作目录
     * @param command 要执行的命令
     * @return 执行结果
     * @throws IOException
     */
    public static String exec(String directory, String command) throws IOException {
        InputStream in = null;
        Reader reader = null;
        BufferedReader br = null;
        try {
            ProcessBuilder pb;
            if (System.getProperty("os.name").indexOf("Windows") == -1) {
                pb = new ProcessBuilder("/bin/sh", "-c", command);
            } else {
                pb = new ProcessBuilder("cmd", "/c", command);
            }
            if (StringUtils.isNotBlank(directory)) {
                pb.directory(new File(directory));
            }
            // merge the error output with the standard output
            pb.redirectErrorStream(true);

            LOG.debug("Now exceuting:{}", command);
            Process p = pb.start();
            in = p.getInputStream();
            reader = new InputStreamReader(in, "gb2312");
            br = new BufferedReader(reader);
            StringBuffer lines = new StringBuffer();
            String line = null;
            while ((line = br.readLine()) != null) {
                lines.append(line).append("\r\n");
            }
            LOG.debug("Exceuting result:{}", lines.toString());
            return lines.toString();
        } finally {
            if (reader != null) {
                reader.close();
            }
            if (br != null) {
                br.close();
            }
            if (in != null) {
                in.close();
            }
        }
    }
}

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    DOS批处理高级教程精选DOS命令使用方法DOS命令详解共

    本资源“DOS批处理高级教程精选DOS命令使用方法DOS命令详解共66页.pdf.zip”显然是一个关于DOS批处理的详细教程,包含66页的内容,旨在深入讲解DOS命令的使用方法和批处理技术。 DOS,全称Disk Operating System,...

    C#调用DOS命令方法

    C#提供了多种调用DOS命令的方式,包括直接调用命令行程序、通过`cmd.exe`执行多条命令以及使用Win32 API进行底层控制。每种方法都有其适用场景,开发者应根据具体需求选择最适合的方案。掌握这些技巧,不仅能够增强...

    在delphi中运行dos命令

    综上所述,"在Delphi中运行DOS命令"涉及到了Delphi程序与操作系统交互的基本技巧,包括使用API函数、内置函数、自定义组件,以及处理相关文件资源。在实际开发中,需要注意安全性和稳定性,同时利用配置文件和日志...

    C++中dos命令的调用

    在C++编程环境中,有时我们需要调用操作系统的命令行接口,比如DOS命令,来执行系统级别的任务,如创建文件、删除目录、运行外部程序等。这个过程通常通过使用操作系统提供的API函数或者库来实现。本文将深入探讨...

    DOS命令_CallingDOScomman_labview调用Dos_labview_sixzk3_

    标题"DOS命令_CallingDOScomman_labview调用Dos_labview_sixzk3_"指出,这个话题主要关注如何在LabVIEW中使用DOS命令。在Windows操作系统中,DOS命令(也称为命令行接口或命令提示符命令)是一种与操作系统交互的...

    vc调用dos命令总结

    在IT行业中,有时我们需要在Windows环境下利用编程语言如Visual C++(VC)来调用操作系统提供的功能,例如执行DOS命令。这篇博文“vc调用dos命令总结”为我们揭示了如何在VC程序中通过系统调用来执行DOS命令。这个...

    执行DOS命令 c#

    除了直接执行命令,还可以利用批处理文件(.bat或.cmd文件),将多个命令写入文件,然后通过Process类调用该文件执行一系列命令。 最后,要注意安全性问题。由于这种方式可以执行任意系统命令,所以必须谨慎处理,...

    VS2005执行DOS命令

    在IT领域,尤其是在软件开发中,有时候我们需要在Visual Studio 2005(VS2005)这样的集成开发环境中(IDE)执行DOS命令,以便进行自动化构建、测试或其他系统级别的操作。"VS2005执行DOS命令"这个主题主要涉及到...

    QT5 编写小例子 调用外部Dos 命令

    在QT5中,我们可以通过QProcess类来调用外部的系统命令,比如DOS命令,实现与操作系统进行交互。这个小例子展示了如何在QT5环境中使用QProcess来执行像`ipconfig`和`ping`这样的命令,不仅限于Windows,也适用于...

    java调用DOS命令

    Java调用DOS命令是指在Java程序中执行操作系统级别的命令,比如Windows下的CMD命令或Linux下的Shell命令。这种功能在很多场景下都很有用,比如自动化脚本、文件操作、系统管理等。Java提供了Runtime类和...

    Java执行dos命令

    我们可以通过getRuntime()方法获取到Runtime实例,然后调用exec()方法执行命令。例如,以下代码展示了如何使用Runtime类执行"mkdir"命令创建一个新的目录: ```java Runtime runtime = Runtime.getRuntime(); try {...

    visual c++调用DOS命令得到返回信息

    当我们需要在C++程序中执行DOS命令并获取返回信息时,通常会使用操作系统提供的API接口或者特定库函数来实现这一功能。本篇文章将详细讲解如何在Visual C++中调用DOS命令并获取屏幕上的文字。 首先,我们需要了解的...

    VC调用dos命令总结

    在VC++(Visual C++)编程环境下,开发者经常会遇到需要执行DOS命令的情况,例如获取系统信息、文件管理等。本文将详细解析如何在VC环境中有效地调用DOS命令,并探讨两种常用方法:`system`函数与`WinExec`函数,...

    JAVA执行DOS命令分析

    在Java编程中,有时我们需要执行操作系统级别的任务,如运行DOS命令。这通常涉及到使用`Runtime`类的`exec()`方法。`Runtime.getRuntime().exec()`允许我们创建一个子进程来执行指定的命令或可执行程序。这个过程...

    DELPHI在视窗里执行DOS命令并返回结果.rar

    DELPHI在Windows环境下执行DOS命令并获取返回结果是一个常见的需求,这通常涉及到系统交互和进程控制。在Delphi编程中,我们可以使用内置的`ShellExecute`函数或者通过创建进程对象来实现这一功能。本项目提供的代码...

    调用DOS命令的例子,详细源码

    在编程领域,有时候我们需要在应用程序中执行操作系统级别的任务,例如执行DOS命令。这个主题主要涉及到进程控制和系统调用,这些是操作系统提供给应用程序与系统交互的接口。本示例将详细介绍如何在Windows环境下...

    Dos32 返回执行DOS命令的信息

    - Dos32.pas很可能是包含主要功能的源代码文件,"32"可能暗示它是为32位操作系统设计的,或者与DOS命令执行有关的32位API调用有关。在这个文件中,可能会有函数或过程用于启动DOS命令,捕获输出,以及与用户界面交互...

    C#执行dos命令

    首先,执行DOS命令的核心在于使用`System.Diagnostics.Process`类。这个类提供了启动外部进程、与之通信以及控制其生命周期的能力。在C#中,我们可以通过以下方式创建并执行一个DOS命令: ```csharp using System....

    JAVA如何调用DOS命令.doc

    如果遇到删除ZIP文件失败的问题,可以使用DOS命令`del`进行硬删除,但需要注意的是,直接调用`"del f:\\aaa.doc"`可能不会成功,应使用`"cmd /c del f:\\aaa.doc"`确保命令被正确解析和执行。 总之,Java调用DOS...

    VC中执行DOS命令,获取返回值的例子

    在VC(Visual C++)开发环境中,我们有时需要执行DOS命令并获取其返回值,以便在应用程序中处理这些信息。这个例子展示了如何通过VC来实现这一功能,这对于系统管理和自动化任务尤其有用。DOS命令行是Windows操作...

Global site tag (gtag.js) - Google Analytics