用于运行 java 命令的批处理文件

batch file for runing a java command

我必须 运行 对 windows 目录中的数百个 .docx 文件执行以下命令,以便将它们转换为 .txt。

java -jar tika-app-1.3.jar -t somedocfile.doc > converted.txt

我想知道是否有任何自动方法,例如编写“.bat”文件来执行此操作。

是的,您可以批量完成。为了帮助您,我没有想到一个示例,但是由于您无论如何都是 运行 java 命令,您也可以通过 java 来完成。这是一个示例,说明如何 运行 来自 java 的 CMD 命令。希望这有帮助。

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


try {
        executeCMD("java -jar tika-app-1.3.jar -t " + <YOUR_DOC_FILE> + " > " + <TXT_NAME_OF_FILE> );
    }catch(Exception e){
        e.printStackTrace();
    }


private void executeCMD(String command) throws Exception{
    Process process = Runtime.getRuntime().exec(command);
    printMsg(command + " stdout:", process.getInputStream());
    printMsg(command + " stderr:", process.getErrorStream());
    process.waitFor();
    if(process.exitValue() != 0)
        System.out.println(command + "exited with value " + process.exitValue());
}


private void printMsg(String name, InputStream ins) throws Exception {
    String line = null;
    BufferedReader in = new BufferedReader(new InputStreamReader(ins));
    while((line = in.readLine()) != null){
        System.out.println(name + " " + line);
    }
}

更新

好的,这是我昨天想不到的更简单的批处理方式:D

for /r %%i in (*.doc) do java -jar tika-app-1.3.jar -t %%~ni > %%~ni.txt

它读取执行目录中的所有 *.doc 文件,“~n”也是为了仅列出文件名(在您的示例中 "somedocfile" ),否则它会做一些事情喜欢 "C://...../somedocfile.doc" 并且更改扩展名可能很烦人。