大家好,
以下是我想要做的事情。我有一个.bat文件,它需要输入一个文件夹名称作为参数。首先,我会回到上一级目录(cd ..)。现在,在这个目录下,我有3个文件夹,每个文件夹都有子文件夹,并且其中包含.class文件。
我想要递归地遍历这些文件夹并获取.class文件。完成后,我想要输出.class文件的目标文件夹以及.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\Project\MyActivities\6_Selenium\htmlTestCasesConverted2JUnit\iexplore\flow2\testCase_app2.class 文件夹位置 C:\NKCV\Project\MyActivities\6_Selenium\htmlTestCasesConverted2JUnit\iexplore\flow2 文件名testCase_app2 步骤3完成... 缺少参数! 使用htmltestCaseLocation 例如, "C:\NKCV\Project\MyActivities\6_Selenium\htmlTestCases"
请问有什么问题吗?
谢谢。