Verwenden .bat-Datei rekursiv in einer Schleife durch Ordner und ergattern .die class-Dateien
HALLO alle,
Dies ist, was ich versuche zu tun. Ich habe eine .bat-Datei, die in einem argument, das ist nichts anderes als ein Ordner-Namen. Was ich zuerst tun ist, gehen Sie eine Ebene nach oben (cd ..). Jetzt in diesem Verzeichnis habe ich 3 Ordner und in jedem Ordner mit sub-Ordner und Ordner haben .die class-Dateien in Ihnen.
Was ich tun will ist rekursiv Durchlaufen Sie die Ordner und die .class-Dateien. Sobald dies erledigt ist, will ich echo das Zielverzeichnis für die .class-Datei als auch als echo der name von the.class Datei.
So c:\temp\potter\myclass.class. Ich würde echo aus c:\temp\potter\ und myclass.
Ich bin in der Lage, dies zu tun, indem eine separate bat-Datei, die funktioniert. Wenn ich aber integrieren diese mit der rekursiven Funktion scheint es zu brechen.
Dies ist, was ich Tue:
:: 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...
Jedoch bekomme ich nur die Ausgabe in einem Verzeichnis, während ich mehrere Verzeichnisse mit .class-Dateien. Dies scheint nicht rekursiv-Schleife.
Dies ist die Ausgabe die ich bekomme:
Schritt 3...
Volle Speicherort der Datei
C:\NKCV\Projekt\MyActivities\6_Selenium\htmlTestCasesConve
rted2JUnit\iexplore\flow2\testCase_app2.classOrdner
C:\NKCV\Projekt\MyActivities\6_Selenium\htmlTestCasesConverte
d2JUnit\iexplore\flow2Dateiname testCase_app2
Schritt 3 abgeschlossen...
fehlende argument!
Nutzung htmltestCaseLocation
zB.,
"C:\NKCV\Project\MyActivities\6_Selenium\htmlTestCases"
Könnte jemand bitte lassen Sie mich wissen, was läuft hier falsch?
Dank.
InformationsquelleAutor user320550 | 2010-04-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wirklich Sie verwenden sollten, Ant oder Maven zum ausführen von JUnit-tests, oder machen Sie es reines JUnit Weg und organisieren Sie alle Ihre tests in Suites und führen Sie die suite über die JUnit-Befehlszeile, aber um das zu Durchlaufen, alle Dateien in einer batch-Datei, verwenden Sie einfach den Befehl wie dieser:
Ersetzen Sie einfach das echo mit einem Aufruf, dass sich etwas tut, die Sie benötigen. Hinweis: Sie müssen nennen Sie die variable im Fall es ist ein Leerzeichen im Pfadnamen.
InformationsquelleAutor Yishai