使用if语句(批处理文件)循环遍历目录中的文件

时间:2020-02-19 14:28:59

标签: for-loop batch-file compilation

我试图创建一个bat文件来编译目录中的所有.java文件,并运行名为Main的类(并输出到tulemused.txt),我能够对单个.java文件执行此操作设置了名称,但我不知道如何充分使用批处理脚本来遍历所有文件。

@ECHO on

FOR /d %%f DO IF NOT %%f=="compile.bat" javac -encoding utf-8 %%f

java -Dfile.encoding=UTF8 Main > tulemused.txt

@ECHO off

这就是我走的距离

2 个答案:

答案 0 :(得分:0)

尝试一下:

@ECHO on
 FOR /r %%f In (*) DO IF NOT "%%~nf"=="compile.bat" javac -encoding utf-8 "%%~f" 
java -Dfile.encoding=UTF8 Main >tulemused.txt 

答案 1 :(得分:0)

发现这种方法效果更好,因为Java希望立即编译所有类,但是归功于Wasif修复了原始循环

@ECHO on
set string=javac -encoding utf-8
 FOR /r %%f In (*.java) DO call :concat %%~nf
%string%
set /P name="What is the name of the class with the main method? "
java -Dfile.encoding=UTF8 %name% >result.txt
pause

:concat
set string=%string% %1.java