Windows: Rekursives Suchen und Ausführen von Stapeldateien über die Befehlszeile

0

Ich habe ein Projekt mit verschachtelten Ordnern.

Ich möchte in der Lage sein, Verzeichnisse rekursiv nachzuschlagen, bis eine "build.bat" -Datei gefunden und ausgeführt wird.

Wie kann ich das von der Kommandozeile aus machen? (dh keine Batch-Datei selbst).

Hintergrund (optional): Der Versuch, die Compiler- und makeprg-Einstellungen von vim zu nutzen, um eine Erstellungsdatei auszuführen, die sich irgendwo im Projekt befindet, und die Ausgabe an Quick-Tips umzuleiten.

anon
quelle

Antworten:

1

Angenommen, ein bestimmter Projektstammordner ist d:\Remoteund es ist Ihr aktuelles Arbeitsverzeichnis. Dann (von meinem Eingabeaufforderungsfenster kopiert und eingefügt):

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"

Beachten Sie, dass mehr als eine Datei gefunden werden kann. Wenn @echoentfernt, werden alle gefundenen 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 (erforderliche Lektüre):

JosefZ
quelle