Доброе время суток!
Мне надо сделать, чтобы без особых напрягов в нужном файле выводился список папок в котором пути корневых папок относительно обрабатываемой начинались с минуса. Остановился на bat-никах, как на самом простом и быстром в работе.
Например, обрабатываем папку С:\Temp\
правильные пути:
С:\Temp\-tmp1\
С:\Temp\-tmp1\folder1\
С:\Temp\-tmp1\-folder-2\
С:\Temp\-tmp2\folder3\folder\
С:\Temp\-tmp3\folder\
не правильные пути:
С:\Temp\tmp1\
С:\Temp\folder1\-folder1\
С:\Temp\tmp-1\-folder-2\
С:\Temp\Temp\Temp\Temp\-folder\
Постарался объяснить как можно доходчивее и правильнее, если что уточняйте.
Этот код выводит все папки из папки C:\Temp\:
del out.txt
for /r C:\Temp\ %%i in (.) do echo %%i >> out.txt
Пробовал варьировать параметр в скобках, но или ничего не работало, или работало не правильно: (C:\-*.), (-*.)
Буду благодарен за подсказку.
Помогите подредактировать bat-ник
Модераторы: Naeel Maqsudov, C_O_D_E
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
for /r /d %%i in (-*) do echo %%i >> out.txt
не то?
не то?

- Timofey
- Сообщения: 32
- Зарегистрирован: 28 апр 2006, 11:42
- Откуда: Владивосток
- Контактная информация:
К сожалению нет.
Во-первых здесь не указана папка которую надо обрабатывать и обрабатывается та в которой лежит *.cmd, во-вторых данный код выводит все пути в которых содержится "-", а мне надо так: если обрабатывается папка "C:\tmp\", то мне надо вывести пути всех папок "C:\tmp\-*", другие "минусы" меня не интересуют.
Данной задачей у меня занимался xStarter, но он работает медленно и начал загонять, т.е. перестал это делать вообще. Я решил всё это дело сделать надёжнее, проще, и быстрее, через CMD.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Нашёл такое решение:
del out.txt
for /r C:\tmp\ %%i in (.) do echo %%i >> out.txt
findstr /b /i /c:"C:\\tmp\\-" out.txt >> exit.txt
Остаётся подредактировать по мелочи и всё готово. Не нравится, что в несколько заходов делается, ещё точки в конце путей надо убирать...
Для чего мне это нужно? Резервная копия документов. У небольшой компании есть сервер с общедоступной папкой, если кто-то удалит документ, то восстановить проблематично, хороший выход - backup. Все документы этого диска копировать не имеет смысла (~50 Gb), по-этому я сделал так, что резервируются только те папки в названии которых в самом начале стоит "-" (логичнее конечно наоборот, но если понасаздают всяких левых папок, то они будут резервироваться, а так юзвери будут осознанно ставить "-"). Ещё одна причина по которой выбран "-" - это то что папки в WinXP сортируются по имени, при этом знак минуса в названии при сортировке игнорируется. Например, "-Новая папка" будет рядом с "Новая папка", но "+Новая папка" или "#Новая папка" будут в самом начале списка.
Потом, файл со списком папок подсовывается WinRAR и у меня получается 2-3 Gb архив с 4-5 Gb нужной инфы на одном из сетевых компьютеров.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
А если честно, я .....ся подгонять всё под нужый формат. Так ничего путнего и не получилось...
Напишу консольку на Си.
Во-первых здесь не указана папка которую надо обрабатывать и обрабатывается та в которой лежит *.cmd, во-вторых данный код выводит все пути в которых содержится "-", а мне надо так: если обрабатывается папка "C:\tmp\", то мне надо вывести пути всех папок "C:\tmp\-*", другие "минусы" меня не интересуют.
Данной задачей у меня занимался xStarter, но он работает медленно и начал загонять, т.е. перестал это делать вообще. Я решил всё это дело сделать надёжнее, проще, и быстрее, через CMD.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Нашёл такое решение:
del out.txt
for /r C:\tmp\ %%i in (.) do echo %%i >> out.txt
findstr /b /i /c:"C:\\tmp\\-" out.txt >> exit.txt
Остаётся подредактировать по мелочи и всё готово. Не нравится, что в несколько заходов делается, ещё точки в конце путей надо убирать...
Для чего мне это нужно? Резервная копия документов. У небольшой компании есть сервер с общедоступной папкой, если кто-то удалит документ, то восстановить проблематично, хороший выход - backup. Все документы этого диска копировать не имеет смысла (~50 Gb), по-этому я сделал так, что резервируются только те папки в названии которых в самом начале стоит "-" (логичнее конечно наоборот, но если понасаздают всяких левых папок, то они будут резервироваться, а так юзвери будут осознанно ставить "-"). Ещё одна причина по которой выбран "-" - это то что папки в WinXP сортируются по имени, при этом знак минуса в названии при сортировке игнорируется. Например, "-Новая папка" будет рядом с "Новая папка", но "+Новая папка" или "#Новая папка" будут в самом начале списка.
Потом, файл со списком папок подсовывается WinRAR и у меня получается 2-3 Gb архив с 4-5 Gb нужной инфы на одном из сетевых компьютеров.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
А если честно, я .....ся подгонять всё под нужый формат. Так ничего путнего и не получилось...
Напишу консольку на Си.
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
а не проще было сразу архивировать раром только то что надо?

- Timofey
- Сообщения: 32
- Зарегистрирован: 28 апр 2006, 11:42
- Откуда: Владивосток
- Контактная информация:
Опять же, нет. Пробовал с разными ключами рар (скажу, что ключей используемых для создания этих копий в раре порядка 12-15 штук), но он не может отобрать то что мне надо. А так как список папок может меняться каждый день (люди то работают на работеИгорь Акопян писал(а):а не проще было сразу архивировать раром только то что надо?

Если честно, то мне тоже не нравится эта цепочка: одна программа запускает по расписанию файл .cmd который лежит там-то, который в свою очередь запускает консольку, которая лежит там-то и потом запускается рар, который создаёт резервную копию. Вот и хотел всё впихнуть в .cmd чтобы запускать и не задумываться о том что и где лежит.
Но не хочет .cmd работать как надо!!! Ну, никак!!!
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
эээ
rar a -r qwe c:\temp\-*
rar a -r qwe c:\temp\-*
