Как я могу перебрать все подпапки FolderA и выполнить команду, чтобы проверить измененные файлы

2037
Yashu

У меня есть клиент 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, которые не начинаются с "." и выполнить вышеуказанную команду для каждого из них?

-1

2 ответа на вопрос

0
Berend

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

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 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.

Конечно, измените команду cvs так, чтобы она выводила данные в файл, например, cvs -q blahblah> c: \ temp \ output.txt Berend 10 лет назад 0