java - 将 Java 程序的多个输出传送到多个文件

标签 java command-line

我有一组文件,标记为 file1.java、file2.java、...

我想将文件的输出通过管道传输到与每个java文件对应的.txt文件,例如output1.txt、output2.txt等。

我知道我可以通过以下方式做到这一点:

javac file1.java
java file1 > output1.txt

但是,有没有办法对给定目录中的所有文件执行此操作? (而不是手动执行)

最佳答案

这是一个很好的 for 循环 example :

命令行用法:

for /f %f in ('dir /b c:\') do echo %f

批处理文件使用:

for /f %%f in ('dir /b c:\') do echo %%f

如果目录包含名称中带有空格的文件,则需要更改 for/f 命令使用的分隔符。例如,您可以使用管道字符。

for /f "delims=|" %%f in ('dir /b c:\') do echo %%f

如果目录名称本身名称中有空格,则可以在 for 上使用 usebackq 选项:

for /f "usebackq delims=|" %%f in (`dir /b "c:\program files"`) do echo %%f

如果需要使用输出重定向或命令管道,请使用转义字符 (^):

for /f "usebackq delims=|" %%f in (dir /b "c:\program files" ^| findstr /i microsoft) do echo %%f

它显示了命令行+批处理循环示例。然后您将获得文件名,并且可以对这些文件名运行一些命令,例如 javac 和 java。

尝试将其分解为小任务: 获取文件列表(全部或仅 .class) 循环遍历每个文件并对它们调用 javac 和 java

Google 是您最好的 friend - 搜索“DOS 批处理”+您需要的内容

关于java - 将 Java 程序的多个输出传送到多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20255270/

相关文章:

Linux:从命令行打开 URL,然后等待指定的时间,然后关闭 Web 浏览器

ruby - 使用ruby删除多行终端输出

c - 在命令行程序中将选项与非选项参数分开

java - ArrayList<HashMap<String, Object> 按 ListView 单元格的 KEY 值排序

java - 将 Java BufferedImage 发送到 Android 位图

java - Marshall/Unmarshall 嵌套映射与 JaxB

linux - 下载完整目录及子目录命令

python - 使用实时命令行输出触发脚本

Java - 在矩阵行或列上应用 vector 方法

java - Maven 编译器插件空指针