Привет всем,
Это то, что я пытаюсь сделать. У меня есть файл .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 \ htmlTestCasesConve
rted2JUnit \ 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"
Может кто-нибудь, пожалуйста, дайте мне знать, что здесь не так?
Спасибо.