Windows: Batchdatei rekursiv über die Befehlszeile suchen und ausführen

Windows: Batchdatei rekursiv über die Befehlszeile suchen und ausführen

Ich habe ein Projekt mit verschachtelten Ordnern.

Ich möchte in der Lage sein, rekursiv in Verzeichnissen nachzuschlagen, bis eine Datei „build.bat“ gefunden wird, und diese dann auszuführen.

Wie kann ich dies über die Befehlszeile tun? (also nicht über die Batchdatei selbst).

Hintergrund (optional): Versuch, die Compiler- und Makeprg-Einstellungen von Vim zu nutzen, um eine irgendwo im Projekt befindliche Build-Datei auszuführen und die Ausgabe auf Quicktips umzuleiten.

Antwort1

Angenommen, es handelt sich um einen bestimmten Projektstammordner d:\Remoteund um Ihr aktuelles Arbeitsverzeichnis. Dann (kopiert und eingefügt aus meinem Eingabeaufforderungsfenster):

d:\Remote>for /F "delims=" %G in ('dir /b /s build.bat') do @echo "%~G"
"d:\Remote\bat\test\build.bat"

Dann könnten Sie einfach entfernen @echo...

Wenn Sie sich in einem anderen Arbeitsverzeichnis befinden:

d:\bat>for /F "delims=" %G in ('dir /b /s "d:\Remote\build.bat"') do @echo "%~G"
"d:\Remote\bat\test\build.bat"

NotizEs können mehrere Dateien gefunden werden. Wenn @echosie entfernt werden, werden alle gefundenen Dateien ausgeführt:

d:\Remote>for /F "delims=" %G in ('dir /b /s cdn.bat') do @echo "%~G"
"d:\Remote\bat\cdn.bat"
"d:\Remote\bat\test\cdn.bat"

Ressourcen(Pflichtlektüre):

verwandte Informationen