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 ) )
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 .bat
Datei 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?
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 ) )
@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.