-1

У меня есть клиент cvs, с помощью которого я могу получить список измененных файлов в каталоге. Например:

My workspace(Top folder) -" D/MyWorkspace"

My Project A(Sub Folder) - D/MyWorkspcace/AProject

В этой же папке находятся другие проекты, такие как D/MyWorkspcace/BProject, D/MyWorkspcace/CProject и так далее.

Что я делаю в настоящее время в этой командной строке open, используйте команду cvs login, которая запрашивает у меня пароль и логин. Я иду в каждый каталог один за другим и использую команду как

"D:\MyWorkspcace\AProject> cvs -q diff --brief c" (в командной строке)

который предоставит мне список измененных файлов в текущем каталоге.

Таким образом, я повторяю это для моих 5 проектов, чтобы получить список измененных файлов во всех проектах.

Есть ли способ создать файл .bat который проходит через все подпапки MyWorkspcace, которые не начинаются с "." и выполнить вышеуказанную команду для каждого из них?

2 ответа2

0

Попробуйте что-то вроде этого:

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

@ Беренд спасибо, приятель, это сработало

cvs -d:pserver:CSCHOSTING\ytyagi2 @ blahblah-pd-deploy2:/blahblah/ вход в репозиторий Setlocal EnableDelayedExpansion для / d / r %% d в (.) do (установить папку = %% ~ nxd установить первым =!Папка:~ 0,1! если не !первый! == (pushd "%% d" cvs -q diff --brief popd))

Сначала использовала команду входа в систему, которая запрашивает пароль и удаляет "c" перед popd. Я не знаю много об этом, поэтому не могу сказать. Но да, это работало нормально. Могу ли я записать вывод в текстовый файл, сохраненный по тому же пути, что и файл .bat.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .