Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] обработка bat-ником списков из txt-файла

Ответить
Настройки темы
CMD/BAT - [решено] обработка bat-ником списков из txt-файла

Новый участник


Сообщения: 22
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: sharky lions
Дата: 17-04-2011
Описание: дополнение
задача:
Дано:
скрипт, копирующий файлы из папки orig в папки test1, test2, test3 и т.д.

Цитата:
copy C:\Users\user\Desktop\Orig\*.* C:\Users\user\Desktop\test1 /y
copy C:\Users\user\Desktop\Orig\*.* C:\Users\user\Desktop\test2 /y
...
Требуется:
брать строку адреса для копирования из файла txt (пусть будет copy_to.txt)
т.к. приведён тестовый батник, в реале требуется копировать в n-ное количество мест,
адреса которых не подчинятся столь строгой логике, т.е. нет возможности применить маску...

структура списка подразумевается построчная (один путь = одна строка) возможен замыкающий элемент списка типа "end" для завершения цикла

Цитата:
C:\Users\user\Desktop\test1
C:\Users\user\Desktop\test2
...
D:\*\*\*\testn
end
заранее огромное спасибо!



и ещё один вопрос, как получить список тех самых путей в ТХТ файл? если известно что у них есть одна общая особенность - подпапка с одинаковым названием (решение с привязкой батника к названию папки сразу, не катит - требуется высокоинтеллектуальная обработка путей, т.к. не все из них должны быть "отоварены")

в принципе, последнюю задачу можно свести к обработке группы ярлыков в отдельной папке, получить данную группу ярлыков очень просто с помощью встроенной функции поиска и отправки ярлыков на рабочий стол ))) задача остаётся открытой для случаев, когда список ярлыков перестаёт помещаться на рабочем столе )))


____________________________________________________________________________________________________ ________
решение для задачи №1
Цитата gora:
Код: Выделить весь код
@Echo Off
:: Файл-список. Список директорий без завершающих слешей.
:: Если в списке используется кириллица, то кодировка файл-списка должна быть DOS (866)
Set filelist=e:\Temp 1\copy_to.txt
:: Исходная папка 
Set folder=C:\Users\user\Desktop\Orig
For /F "tokens=* usebackq" %%i In ("%filelist%") Do xCopy "%folder%\*" "%%i" /Y /I >Nul
»
решение для задачи №2

Цитата amel27:
Код: Выделить весь код
dir/s/b/ad "c:\*папка"|findstr/ie "\\папка">file.txt
»

Отправлено: 15:34, 07-04-2011

 

Новый участник


Сообщения: 22
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата amel27:
т.е. для заявленной задачи перебора ВСЕХ подходящих под условие папок эта фича не подходит - проще перебрать и обработать все элементы PATH в цикле FOR... если именно это и надо, в чём у меня нет уверенности... »
если это находится внутри цикла FOR то как раз перебор всех возможных вариантов возможен - почитай справку по этим операторам ))) перебор проводится не этим набором операторов, этот набор операторов предназначен для вывода пути к первому найденному файлу и буквы диска... т.е. для папки расположенной по адресу "C:\temp\test" выводит путь "\temp\test\" и букву диска "C:", что в итоге даёт искомое, "C:\temp\test"

упрощённый алгоритм следующий:
Код: Выделить весь код
начало цикла
поиск объекта (в данном случае названия папок/файлов)
применение к найденной папке операторов %~dp$PATH:I
вывод значения в строку № i текстового файла (где i - универсальная переменная применяемая в счётчике циклов в VBA,
                                                      как правило, имеющая значения 1,2,3,4....n-2,n-1,n)
конец цикла
скорее всего первые две строки алгоритма в коде батника будут выглядеть как одна строка, я разделил на строки исходя из логики VBA скрипта, т.е. на VBA я бы написал скрипт в 3 этапа, которые вполне независимо обкатываются ))) но в батнике немного другая логика, например, ряд задач я бы не смог решить одной строкой кода, как местные гуру...

Отправлено: 23:36, 14-04-2011 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] обработка bat-ником списков из txt-файла

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] обработка *.txt Михаил11 Скриптовые языки администрирования Windows 5 29-03-2011 10:00
CMD/BAT - [решено] Созд.*.txt по имени файла, с перемещением *.txt и файла в папку с именем файла. OSArev Скриптовые языки администрирования Windows 2 30-01-2011 11:58
CMD/BAT - [решено] Замена файла boot.ini с помощью bat файла Chekis9100a Скриптовые языки администрирования Windows 3 24-11-2010 08:17
Обработка лог-файла на C++ Guest Программирование и базы данных 17 23-03-2004 01:11




 
Переход