Попробуйте что-то вроде этого:
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 ) )
У меня есть клиент 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, которые не начинаются с "." и выполнить вышеуказанную команду для каждого из них?
Попробуйте что-то вроде этого:
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 thanks mate it worked
cvs -d :pserver:CSCHOSTING\ytyagi2@blahblah-pd-deploy2:/blahblah/repository login 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 popd ) )
Just used login command at first which prompts for password and removed "c" before popd. I don't know much about it so can't say. But yes it worked fine. Can i record output to a text file stored on same path as .bat file.