![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Сравнение конечного количества файлов с начальным |
|
CMD/BAT - Сравнение конечного количества файлов с начальным
|
Новый участник Сообщения: 20 |
Добрый день. я написал батник который обрабатывает файлы , после каждой обработки у файла появляется опроеделенный префикс соответвующий этапу обработки, если в какой то момент произошла ошибка обработки то он уже не поулчит нужный префикс и соответвенно не будет учавствовать в последующей обработки и в конце файлов которые прошли несколько ступеней обработки может быть меньше чем начальное количество. соответвсенно у меня вопрос как получить список тех файлов которые есть в начале но которых нет в конце обработки.
я так понимаю что начале можно записать файлы в лог а дальше что нужно делать? |
|
Отправлено: 15:35, 13-12-2016 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать composter, очень сумбурное описание.
|
Отправлено: 15:56, 13-12-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать постараюсь по понянтнее. нужно получить первональный список файлов. дальше 2 варианта
-после обратботки получить список конечных файлов, сравнить их , если во 2 списке нет каких то файлов из 1, то создать 3 список и их туда добавить. -после обработки сравить конечные файлы с 1 списком, и те файлы которые есть в папке вычеркнуть из 1 списка. |
Отправлено: 16:23, 13-12-2016 | #3 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать composter,
а обязательно списки нужны или чисто операции с файлами? . |
Отправлено: 02:00, 14-12-2016 | #4 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать ну можно не списки ,а в переменную записать все названия файлов.
просто первоначальные файлы (они же файлы из 1 списка) во время 1 обработки переименовываются и файлов с таким именем не существует. порпробовал ваш код chcp 1251 set "d1=C:\333\444" set "d2=C:\333\555" for /f "delims=" %%a in ('dir/a-d/b "%d1%"') do if not exist "%d2%\%%a" echo copy ^(Копируем недостающие^) "%d1%\%%a" в "%d2%\" echo Удаляем все совпадающие по имени файлы: for /f "delims=" %%a in ('dir/a-d/b "%d2%"') do echo del "%d1%\%%a" pause |
|
Отправлено: 13:36, 14-12-2016 | #5 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать composter,
а скрипт написан не для дет. сада и не является догмой, это инструмент, которым надо уметь работать. Поубирать echo для боевого запуска, убрать комментарий внутри условия. Зачем браться за написание кодов, просить помощи, а самому не знать и не видеть банальных элементарных вещей. Делайте все руками, bat не для вас. |
Отправлено: 15:11, 14-12-2016 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать alpap, я бы не отказался, если бы Вы перевели мне на русский ТЗ, ибо я так толком и не понял озвученное.
|
Отправлено: 15:19, 14-12-2016 | #7 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать попробуюю еще раз.
в начале я имею файлы 1a.dwg 2a.dwg 3a.dwg 4a.dwg 5a.dwg после первой опереации они переименовываются ___111___1a.dwg ___111___2a.dwg ___111___3a.dwg ___111___4a.dwg ___111___5a.dwg после каждой поледущей операции у меня появляются файлы ___222___1a.dwg ___222___2a.dwg ___222___3a.dwg ___222___4a.dwg ___222___5a.dwg в конце всех операций я перименовываю ихк начальному варианту , но дело в том что в результате ошибок у меня потются файлы и в конце может получиться 1a.dwg 4a.dwg 5a.dwg соответвевенно мне нужно полчить список в котором будут отсутвующие файлы а в частности 2a.dwg 3a.dwg если кому интересно то сейчас мой скрипт выгляди вот так |
Отправлено: 17:46, 14-12-2016 | #8 |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать composter,
Я понимаю задачу так (рассматриваю на уровне отдельного файла): батник 1. берёт в папке файл (хотелось бы знать маску файлов, чтобы при обработке не взять лишнего), 2. запускает обработку, после обработки файл переименовывается, исходный файл не хранится, что само по себе плохо. Кстати, обработанный файл остаётся в той же папке ?(что мне тоже не нравится). При сбое что происходит, переименованный файла не появляется а исходный файл уничтожается? или исходный остаётся на месте? А если сбой произошел, что делать? Принять к сведению и ничего не делать? Или надо разобраться с файлом и всё-таки его обработать? Я уверен, что ваша задача разрешима без большого напряжения, но чётко распишите, что у вас происходит, то, что вам надо знать, какие файлы не обработаны, понятно, но ваши пассажи насчёт списков сбивают с толку. |
------- Отправлено: 18:12, 14-12-2016 | #9 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать ну я думал разбить на разные части. но раз вы хотите могу вывалить все сразу.
обрабабатывается на всех этапах только 2 типа файлов *.dwg и *.dxf , на выходе остается только 1 тип файла *.dwg содается список№1 (как я писал выше напиремер 1a.dwg , 2a.dwg, 3a.dwg , 4a.dwg ,5a.dwg) у меня в каждом скрипте происходит обработка файла и замена префикса , например если было "___111___1a.dwg" то после обработки добавится файл "___222___1a.dwg" если по каким то причинам произошла ошибка во время иполненися скрипта автокадом , то просто не появится файл "___222___1a.dwg , а значит в дальнейшей обработки он участвовать не будет . в конце файлы переименовываются в исходные имена (просто убирается префикс). еесли возникла при обработке ошибка , это значит что на выходе я получу 3(например) обработанных файла вместо 5(например). создается список№2 (1a.dwg , 4a.dwg ,5a.dwg) создается список№3 , недостающих файлов (2a.dwg, 3a.dwg ) значит мне нужно получить последнюю версию 2 файлов которые не доконца прошли обработку. допустим не прошли 2a.dwg и 3a.dwg, найти среди файлов *2a.dwg последний по дате файл и переименовать его в 2a.dwg , потом тоже самое сделать для 3a.dwg . ну и в конце создать лог файл что файлы 2a.dwg и 3a.dwg прошли обработку не до конца (в идеале еще добавить аналз согласно последнему по времени префиксу) на счет копирования/добавления префикса/складирования в одной папки это просто мое решение. если вы считаете что лучше подругому как то сделать то расскажите |
Последний раз редактировалось composter, 14-12-2016 в 20:14. Причина: забыл дописать Отправлено: 19:49, 14-12-2016 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - Подсчет количества ini файлов в папке | XXXp | Скриптовые языки администрирования Windows | 14 | 10-04-2012 02:06 | |
CMD/BAT - [решено] Счетчик количества файлов | Arsenik77 | Скриптовые языки администрирования Windows | 1 | 28-08-2011 11:13 | |
CMD/BAT - Перемещение в папку определенного количества файлов | Arsenik77 | Скриптовые языки администрирования Windows | 1 | 18-07-2011 17:11 | |
Интерфейс - [решено] Переименование большого количества файлов | 7human7 | Microsoft Windows 2000/XP | 7 | 22-11-2008 09:48 | |
Проблема с начальным пакетом... | markizzz | Хочу все знать | 2 | 12-10-2003 18:46 |
|