大家好,
这就是我想要做的.我有一个.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...
Run Code Online (Sandbox Code Playgroud)
但是我只得到一个目录的输出,而我有多个目录有.class文件.这似乎没有递归循环.
这是我得到的输出:
第3步......
完整文件位置C:\ NKCV\Project\MyActivities\6_Selenium\htmlTestCasesConve rt2JUnit\iexplore\flow2\testCase_app2.class
文件夹位置C:\ NKCV\Project\MyActivities\6_Selenium\htmlTestCasesConverte d2JUnit\iexplore\flow2
文件名testCase_app2
第3步完成......
缺少参数!
用法htmltestCaseLocation
例如,"C:\ NKCV\Project\MyActivities\6_Selenium\htmlTestCases"
谁能告诉我这里有什么问题?
谢谢.
Yis*_*hai 14
实际上你应该使用Ant或Maven来运行JUnit测试,或者以纯JUnit方式执行它并将所有测试组织到套件中并通过JUnit命令行运行套件,但是为了迭代批处理文件中的所有文件,只需像这样使用for命令:
for /R %%i in (*.class) do echo "%%i"
Run Code Online (Sandbox Code Playgroud)
只需将呼叫替换为您需要的呼叫即可.请注意,如果路径名中有空格,则需要引用变量.