Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] пройтись по всем подпапкам и запустить опр. команду (http://forum.oszone.net/showthread.php?t=245030)

nbafree 19-10-2012 14:01 2008537

пройтись по всем подпапкам и запустить опр. команду
 
Нужно создать скрипт который должен в опред. пути пройтись по всем подпапкам и запустить опр. команду.
и записывать результат этой команды в файл.
Т.е отчте можно так сказать.

Iska 19-10-2012 16:08 2008624

Что значит «пройтись»? Какую именно команду? «Результат» — stdout приложения?

vserd 20-10-2012 01:18 2008855

Если кратко:
cmd /k help
Команды: DIR, ECHO,
Операторы: >>, >, 1>>, 2>>

nbafree 20-10-2012 22:32 2009220

Мне нужен цикл.
Вы можете показать пример.
Я синтаксисом CMD не знаком.
Вот цикл на С++ аналог его я хочу написать в CMD.

int счетчик_папок =0; \\Узнать етото счетчик надо из кол-ва подпапок по пути C:\\Myfolder
for(int i=0;i!=cчетчик папок;i++)
{
cout<<i<<endl;
}

Как-так.Спасибо!

Iska 21-10-2012 01:00 2009319

nbafree, понятней не стало. Особливо учитывая то, что Ваш цикл на C++ пуст.

nbafree 21-10-2012 05:20 2009370

Почему пуст?Он выводит на экран значение интовой переменной i.
количество итераций равной счетчику папок.
Тогда так.Есть SVN в папке C:\\repos\ и там много репозиториев.
есть утилита svnlook.exe котроя с пом. команды svnlook info PATH_OF_REPO выводить на экран информацию о репозитории(напрюктопоследний раз коммител и кол-во ревизий)
svnlook info PATH_OF_REPO>info.txt записывает файл нужную инфу.
Вот мне нужно в подпапках где есть много репозиториев (C:\\repos\) вызывать эту команду записывать инфу о каждом из них.

Iska 21-10-2012 11:51 2009455

Цитата:

Цитата nbafree
Почему пуст?Он выводит на экран значение интовой переменной i.
количество итераций равной счетчику папок. »

Уважаемый коллега,
читать дальше »
не будете ли Вы любезны ещё раз окинуть непредвзятым взглядом приведённый Вами цикл и ответить себе на вопрос: сколько раз он отработает? Ибо, в моём представлении, цикл от нуля до нуля отработает ровно ноль раз. Вопрос риторический.


Цитата:

Цитата nbafree
Тогда так.Есть SVN в папке C:\\repos\ и там много репозиториев.
есть утилита svnlook.exe котроя с пом. команды svnlook info PATH_OF_REPO выводить на экран информацию о репозитории(напрюктопоследний раз коммител и кол-во ревизий)
svnlook info PATH_OF_REPO>info.txt записывает файл нужную инфу.
Вот мне нужно в подпапках где есть много репозиториев (C:\\repos\) вызывать эту команду записывать инфу о каждом из них. »

Правильно ли я понимаю, что нужно получить перечень папок только первого уровня вложенности в «C:\repos» и выполнить для каждой из них указанную/указанные команды?
Код:

for /d %%i in ("C:\repos\*.*") do (
    echo %%i
    svnlook.exe info "%%~i" >"%%~i-info.txt"
)

Или неправильно понимаю?

nbafree 21-10-2012 14:08 2009526

Цитата:

Цитата nbafree
\\Узнать етото счетчик надо из кол-ва подпапок по пути C:\\Myfolder »

Это я вначале ноль установил так для красоты :)
а i должен равнять кол-ву папок.
Извиняюсь за корявое объснение.

Да это то что надо!!!
И можно еще вопрос что означает вот эта запись %~i ?

Iska 21-10-2012 15:00 2009563

Цитата:

Цитата nbafree
И можно еще вопрос что означает вот эта запись %~i ? »

Я не писал пакетный файл, а делал всё непосредственно в командной строке, посему, при написании поста, банально забыл добавить ещё один «%» в последнюю переменную. Должно быть «"%%~i-info.txt"» (я поправил пост выше).

«%%~i» означает — «Взять значение переменной цикла перебора «i» и удалить из неё, если есть, обрамляющие кавычки».


Время: 13:20.

Время: 13:20.
© OSzone.net 2001-