在window下, Java調用執行bat腳本

參考博客: http://www.javashuo.com/article/p-rqmdjems-cg.htmlhtml

最近一段時間用到了Java去執行window下的bat腳本, 這裏簡單記錄一下:java

我這裏是先判斷bat腳本是否存在, 而後去決定是否執行bat腳本,app

直接上代碼:測試

下面是我測試的bat腳本, 就輸出一句話, 把文件命令爲PostStartupScript.bat:ui

echo "hello word"
package com.test;

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

public class Test {
            
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String batPath = "C:/Philips/SIServer/PostStartupScript.bat"; // 把你的bat腳本路徑寫在這裏
        File batFile = new File(batPath);
        boolean batFileExist = batFile.exists();
        System.out.println("batFileExist:" + batFileExist);
        if (batFileExist) {
            callCmd(batPath);
        }
    }
    
    private static void  callCmd(String locationCmd){
        StringBuilder sb = new StringBuilder();
        try {
            Process child = Runtime.getRuntime().exec(locationCmd);
            InputStream in = child.getInputStream();
            BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(in));
            String line;
            while((line=bufferedReader.readLine())!=null)
            {
                sb.append(line + "\n");
            }
               in.close();
            try {
                child.waitFor();
            } catch (InterruptedException e) {
                System.out.println(e);
            }
            System.out.println("sb:" + sb.toString());
            System.out.println("callCmd execute finished");           
        } catch (IOException e) {
            System.out.println(e);
        }
     }
}

運行結果以下:spa

batFileExist:true
sb:
D:\TestJava>echo "hello word" 
"hello word"

callCmd execute finished

這裏是在不打開任何窗口下運行的, 很是適合那些在後臺須要執行bat腳本的程序.code

若是想讓程序打開窗口去運行bat腳本, 可使用以下的命令:htm

java的Runtime.getRuntime().exec(commandStr)能夠調用執行cmd指令.

cmd /c dir 是執行完dir命令後關閉命令窗口. cmd /k dir 是執行完dir命令後不關閉命令窗口. cmd /c start dir 會打開一個新窗口後執行dir指令, 原窗口會關閉. cmd /k start dir 會打開一個新窗口後執行dir指令, 原窗口不會關閉.

例以下圖, 輸入 cmd /k start C:/Philips/SIServer/PostStartupScript.bat
而後會彈出新的窗口, 執行bat腳本.

相關文章
相關標籤/搜索