全部,
这就是我想要做的。我有一个.bat文件,它接受一个只是文件夹名称的参数。我先做的是升级(cd ..)。现在在这个目录中我有3个文件夹,每个文件夹都有子文件夹,其中包含.class文件。
我想做的是递归遍历文件夹并获取.class文件。完成后,我想回显.class文件的目标文件夹,并回显the.class文件的名称。
所以c:\ temp \ potter \ myclass.class。我会回应c:\ temp \ potter \和myclass。
我可以通过编写一个有效的单独bat文件来完成此操作。但是当我将它与递归函数集成时,它似乎就会破坏。
这就是我正在做的事情:
:: call the junit classes... and save the results
echo step 3...
cd %1
cd ..
for /r %%a in (*.class) do set Var=%%a
echo Full file location %Var%
for %%i in ("%Var%") do Set CF=%%~dpi
Set CF=%CF:~0,-1%
:LOOP
If "%CF:~-1,1%"=="\" GoTo :DONE
Set CF=%CF:~0,-1%
GoTo :LOOP
:DONE
Set CF=%CF:~0,-1%
echo Folder Location %CF%
::cd %CF%
For %%j in ("%Var%") Do Set name=%%~nxj
:: -6 because of Quotations
Set name=%name:~0,-6%
echo File Name %name%
echo step 3 complete...
但是我只得到一个目录的输出,而我有多个目录有.class文件。这似乎没有递归循环。
这是我得到的输出:
第3步......
完整档案位置 C:\ NKCV \项目\ MyActivities \ 6_Selenium \ htmlTestCasesConve rted2JUnit \ IEXPLORE \流2 \ testCase_app2.class
文件夹位置 C:\ NKCV \项目\ MyActivities \ 6_Selenium \ htmlTestCasesConverte d2JUnit \ IEXPLORE \流2
文件名testCase_app2
第3步完成......
缺少参数!
用法htmltestCaseLocation
例如, “C:\ NKCV \项目\ MyActivities \ 6_Selenium \ htmlTestCases”
有谁能告诉我这里有什么问题?
感谢。
答案 0 :(得分:14)
真的应该使用Ant或Maven来运行JUnit测试,或者以纯JUnit方式执行它并将所有测试组织到套件中并通过JUnit命令行运行套件,但是为了迭代批处理中的所有文件文件,只需使用这样的for命令:
for /R %%i in (*.class) do echo "%%i"
只需将呼叫替换为您需要的呼叫即可。请注意,如果路径名中有空格,则需要引用变量。