|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] обработка bat-ником списков из txt-файла |
|
|
CMD/BAT - [решено] обработка bat-ником списков из txt-файла
|
Новый участник Сообщения: 22 |
задача:
Дано: скрипт, копирующий файлы из папки orig в папки test1, test2, test3 и т.д. Цитата:
брать строку адреса для копирования из файла txt (пусть будет copy_to.txt) т.к. приведён тестовый батник, в реале требуется копировать в n-ное количество мест, адреса которых не подчинятся столь строгой логике, т.е. нет возможности применить маску... структура списка подразумевается построчная (один путь = одна строка) возможен замыкающий элемент списка типа "end" для завершения цикла Цитата:
и ещё один вопрос, как получить список тех самых путей в ТХТ файл? если известно что у них есть одна общая особенность - подпапка с одинаковым названием (решение с привязкой батника к названию папки сразу, не катит - требуется высокоинтеллектуальная обработка путей, т.к. не все из них должны быть "отоварены") в принципе, последнюю задачу можно свести к обработке группы ярлыков в отдельной папке, получить данную группу ярлыков очень просто с помощью встроенной функции поиска и отправки ярлыков на рабочий стол ))) задача остаётся открытой для случаев, когда список ярлыков перестаёт помещаться на рабочем столе ))) ____________________________________________________________________________________________________ ________ решение для задачи №1 Цитата gora:
Цитата amel27:
|
|||||
Отправлено: 15:34, 07-04-2011 |
Новый участник Сообщения: 36
|
Профиль | Отправить PM | Цитировать Подсказка: тебе нужно использовать call :read_settings
и создать функцию :read_settings set SETTINGSFILE=%1 rem Проверка существования файла if not exist %SETTINGSFILE% ( echo FAIL: Файл с настройками отсутствует exit /b 1 ) rem Обработка файла c настройками rem Здесь: rem eol=# указывает на то, что содержимое строки начиная с символа # rem и до ее конца может быть пропущено как комментарий. rem rem delims== указывает, что разделителем значений является символ = rem rem tokens=1,2 приводит к тому, что в переменную %%i будет занесен первый rem токен, а в %%j - второй. rem for /f "eol=# delims== tokens=1,2" %%i in (%SETTINGSFILE%) do ( rem В переменной i - ключ rem В переменной j - значение rem Мы транслируем это в переменные окружения set %%i=%%j ) exit /b 0 |
------- Отправлено: 17:52, 07-04-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 22
|
Профиль | Отправить PM | Цитировать HellWolf06, спасибо конечно за веру в меня ))) но я умею только VBA и то на уровне создания активных кнопочек в экселе, обладающих весьма ограниченным функционалом ) примерно 60% написанного впитал, но для чего именно это нужно и к какой части вопроса моего это относится... могу предположить что к последнему... но для меня нет очевидных моментов с выводом в файл, например... это пожалуй самая моя больная тема т.к. я это так и не выяснил для себя даже в VBA ))) (т.е. как работать с внешними данными)
поэтому просьба считать меня совсем тупым и плясать от того, что написав выше означенные скрипты я выжал максимум из своих возможностей ))) /грубо говоря умею юзать прямые функции типа copy и start/ |
Последний раз редактировалось sharky lions, 10-04-2011 в 02:26. Отправлено: 02:10, 08-04-2011 | #3 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата sharky lions:
@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 |
|
Отправлено: 11:41, 08-04-2011 | #4 |
Новый участник Сообщения: 22
|
Профиль | Отправить PM | Цитировать gora, не знаю других слов благодарности кроме "ОГРОМНОЕ СПАСИБО!" но их явно не достаточно )))
скрипт работает на ура ))) пояснения к коду максимально доходчивые для начинающих, за что, отдельный респект ))) для перекодировки в "dos 866", юзал "dcd"... (на случай если под рукой у кого-то не окажется другого перекодировщика, их навалом) |
|
Последний раз редактировалось sharky lions, 10-04-2011 в 02:25. Отправлено: 01:03, 10-04-2011 | #5 |
Новый участник Сообщения: 22
|
Профиль | Отправить PM | Цитировать пока решена только первая часть задачи...
|
Отправлено: 00:51, 11-04-2011 | #6 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата sharky lions:
![]() Про ярлыки идея вообще непонятна, да и работать с ними (создавать, изменять и т.п.) из бат файла, без сторонних утилит, не получится. Попробуйте четко сформулировать задачу, не скупясь на подробности и примеры, ибо, правильно сформулированная задача - это половина ее решения. |
|
Отправлено: 08:20, 11-04-2011 | #7 |
Новый участник Сообщения: 36
|
Профиль | Отправить PM | Цитировать sharky lions,
я тоже знаю VBScript и batch, но с той функцией которую я тебе дал и сам не разобрался) |
------- Отправлено: 14:12, 11-04-2011 | #8 |
Новый участник Сообщения: 22
|
Профиль | Отправить PM | Цитировать в общем, надо применить цикл FOR с ниже обозначенным набором операторов
Цитата:
с создать файл "DIR_PATH.txt" в котором построчно перечисляются найденные значения переменной %I в формате: C:\***\DIR_NAME где *** означает любое количество каталогов(директорий) в пути до искомой директории "DIR_NAME" при этом желательно чтобы "DIR_PATH.txt" был в UNICODE, если это возможно, конечно... |
|
Последний раз редактировалось sharky lions, 13-04-2011 в 03:51. Отправлено: 01:44, 13-04-2011 | #9 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата sharky lions:
|
|
Отправлено: 09:04, 13-04-2011 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|