Wie kann ich alle Unterordner von FolderA durchlaufen und einen Befehl ausführen, um geänderte Dateien zu überprüfen

2086
Yashu

Ich habe einen cvs-Client, über den ich eine Liste der geänderten Dateien in einem Verzeichnis abrufen kann. Zum Beispiel:

My workspace(Top folder) -" D/MyWorkspace"  My Project A(Sub Folder) - D/MyWorkspcace/AProject 

Andere Projekte befinden sich im selben Ordner, z. B. D / MyWorkspcace / BProject, D / MyWorkspcace / CProject usw.

Was ich derzeit an dieser offenen Eingabeaufforderung mache, benutze den cvs login-Befehl, der mich zur Eingabe eines Kennworts und bei der Anmeldung auffordert. Ich gehe in jedes Verzeichnis einzeln und benutze den Befehl wie

"D:\MyWorkspcace\AProject> cvs -q diff --brief c" (In der Eingabeaufforderung)

Dadurch erhalten Sie eine Liste der geänderten Dateien im aktuellen Verzeichnis.

Auf diese Weise wiederhole ich es für meine 5 Projekte, um die Liste der modifizierten Dateien in allen Projekten zu erhalten.

Gibt es eine Möglichkeit, eine .batDatei zu erstellen, die alle Unterordner von MyWorkspcace durchläuft, die nicht mit einem "." Beginnen. und den obigen Befehl für jeden von ihnen ausführen?

-1

2 Antworten auf die Frage

0
Berend

Versuchen Sie etwas so:

Setlocal EnableDelayedExpansion  for /d /r %%d in (*.*) do ( set folder=%%~nxd set first=!folder:~0,1! if not !first! == . ( pushd "%%d" cvs -q diff --brief c popd ) ) 
0
Yashu

@Berend danke Kumpel es hat funktioniert

cvs -d: pserver: CSCHOSTING \ ytyagi2 @ blahblah-pd-deploy2: / blahblah / repository login Setlocal EnableDelayedExpansion für / d / r %% d in ( . ) do (set Ordner = %% ~ nxd set first =! Ordner: ~ 0,1! Wenn nicht! Zuerst! ==. (Pushd "%% d" cvs -q diff --brief popd))

Es wurde nur der login-Befehl verwendet, der zur Eingabe eines Kennworts auffordert und "c" vor popd entfernt. Ich weiß nicht viel darüber und kann es nicht sagen. Aber es hat gut funktioniert. Kann ich die Ausgabe in eine Textdatei aufnehmen, die im selben Pfad wie die .bat-Datei gespeichert ist.

Klar, ändern Sie den Befehl cvs so, dass er die Ausgabe in eine Datei leitet, z. B. cvs -q blahblah> c: \ temp \ output.txt Berend vor 9 Jahren 0