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

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

Ответить
Настройки темы
CMD/BAT - Сравнение конечного количества файлов с начальным

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


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

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


Добрый день. я написал батник который обрабатывает файлы , после каждой обработки у файла появляется опроеделенный префикс соответвующий этапу обработки, если в какой то момент произошла ошибка обработки то он уже не поулчит нужный префикс и соответвенно не будет учавствовать в последующей обработки и в конце файлов которые прошли несколько ступеней обработки может быть меньше чем начальное количество. соответвсенно у меня вопрос как получить список тех файлов которые есть в начале но которых нет в конце обработки.
я так понимаю что начале можно записать файлы в лог
Код: Выделить весь код
set log=%CD%\logfile.log
for /f "delims=" %%d in ('dir/b/od "%FILEPATH%\%FILEMASK0%"') do (>>%log% echo %%~nd )
а дальше что нужно делать?

Отправлено: 15:35, 13-12-2016

 

Ветеран


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

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


composter, очень сумбурное описание.

Отправлено: 15:56, 13-12-2016 | #2



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

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


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


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

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


постараюсь по понянтнее. нужно получить первональный список файлов. дальше 2 варианта
-после обратботки получить список конечных файлов, сравнить их , если во 2 списке нет каких то файлов из 1, то создать 3 список и их туда добавить.
-после обработки сравить конечные файлы с 1 списком, и те файлы которые есть в папке вычеркнуть из 1 списка.

Отправлено: 16:23, 13-12-2016 | #3


Ветеран


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

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


composter,
а обязательно списки нужны или чисто операции с файлами?
Код: Выделить весь код
@echo off
set "d1=papka1"
set "d2=papka2"
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
.

Отправлено: 02:00, 14-12-2016 | #4


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


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

Профиль | Отправить 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
вначале в папку 444 переместилл 6 файлов из них 4 в 555, потом наоборот - результат ничего не изменилось после запуска скрипта

Отправлено: 13:36, 14-12-2016 | #5


Ветеран


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

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


composter,
а скрипт написан не для дет. сада и не является догмой, это инструмент, которым надо уметь работать. Поубирать echo для боевого запуска, убрать комментарий внутри условия.
Зачем браться за написание кодов, просить помощи, а самому не знать и не видеть банальных элементарных вещей. Делайте все руками, bat не для вас.

Отправлено: 15:11, 14-12-2016 | #6


Ветеран


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

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


alpap, я бы не отказался, если бы Вы перевели мне на русский ТЗ, ибо я так толком и не понял озвученное.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:19, 14-12-2016 | #7


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


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

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


Вложения
Тип файла: zip pu-au-dwg-dxf-wblock-pu-au.zip
(2.0 Kb, 4 просмотров)

попробуюю еще раз.
в начале я имею файлы
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


Ветеран


Contributor


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

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


composter, На фиг Зачем те списки, если в норме после обработки первый список должен быть пустым?
Я понимаю задачу так (рассматриваю на уровне отдельного файла):
батник
1. берёт в папке файл (хотелось бы знать маску файлов, чтобы при обработке не взять лишнего),
2. запускает обработку, после обработки файл переименовывается, исходный файл не хранится, что само по себе плохо. Кстати, обработанный файл остаётся в той же папке ?(что мне тоже не нравится). При сбое что происходит, переименованный файла не появляется а исходный файл уничтожается? или исходный остаётся на месте? А если сбой произошел, что делать? Принять к сведению и ничего не делать? Или надо разобраться с файлом и всё-таки его обработать?
Я уверен, что ваша задача разрешима без большого напряжения, но чётко распишите, что у вас происходит, то, что вам надо знать, какие файлы не обработаны, понятно, но ваши пассажи насчёт списков сбивают с толку.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:12, 14-12-2016 | #9


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


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

Профиль | Отправить 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



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход