我有一组文件,标记为 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/