|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Сравнение конечного количества файлов с начальным |
|
CMD/BAT - Сравнение конечного количества файлов с начальным
|
Новый участник Сообщения: 20 |
Профиль | Отправить PM | Цитировать Добрый день. я написал батник который обрабатывает файлы , после каждой обработки у файла появляется опроеделенный префикс соответвующий этапу обработки, если в какой то момент произошла ошибка обработки то он уже не поулчит нужный префикс и соответвенно не будет учавствовать в последующей обработки и в конце файлов которые прошли несколько ступеней обработки может быть меньше чем начальное количество. соответвсенно у меня вопрос как получить список тех файлов которые есть в начале но которых нет в конце обработки.
я так понимаю что начале можно записать файлы в лог а дальше что нужно делать? |
|
Отправлено: 15:35, 13-12-2016 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать @echo off set "d=papka"& set "rf=dwg" set "d_out=out"& set "err=error" if not exist "%d_out%" md "%d_out%" if not exist "%err%" md "%err%" dir/a-d/b/o-d/tc "%d%"|set/p name=^& cmd/v/c echo !name!^|^>nul find "___555___" ^&^& cmd/v/c move "%d%\!name!" "%d_out%\new.%rf%" ^|^| cmd/v/c move "%d%\!name!" "%err%\new.%rf%" pause "papka" - основная папка со всеми файлами. |
Отправлено: 19:59, 23-12-2016 | #31 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать composter,
Вот решение под Вашу новую постановку
@Echo Off cls chcp 1251 >nul Set "Pgm=C:\Program Files\Autodesk\AutoCAD 2014\accoreconsole.exe" rem Set "Pgm=Z:\Test\test3.bat" Set "In=%CD%" Set "MaskIn="%In%\*.dwg" "%In%\*.dxf"" Set "Pref1=___111___" Set "Pref2=___222___" Set "Pref3=___333___" Set "Pref4=___444___" Set "Pref5=___555___" Set "OutBox=%In%\_Box_Out" Set "TmpBox=%In%\_Box_Tmp" Set "ErrBox=%In%\_Box_Err" md "%OutBox%" 2>nul md "%TmpBox%" 2>nul md "%ErrBox%" 2>nul Set "Scr1=puandau1.scr" Set "Scr2=todxf.scr" Set "Scr3=todwg.scr" Set "Scr4=puandau2.scr" FOR %%s IN ("%Scr1%" "%Scr2%" "%Scr3%" "%Scr4%") DO Copy "%In%\%%s" "%TmpBox%\" >nul Set "ErrLog=%Date%-%Time%" Set "ErrLog=%ErrLog::=_%" Set "ErrLog=%ErrLog:/=_%" Set "ErrLog=%ErrBox%\~%ErrLog:,=.%_Err.Log" FOR %%f IN (%MaskIn%) DO ( Call :DelAll "%%f" Copy "%%f" "%ErrBox%\" >nul Move /Y "%%f" "%TmpBox%\%Pref1%%%~nxf" >nul Call :Job "%TmpBox%\%Pref1%%%~nxf" "%TmpBox%\%Scr1%" "%TmpBox%\%Pref2%%%~nxf" "%%f" Call :Job "%TmpBox%\%Pref2%%%~nxf" "%TmpBox%\%Scr2%" "%TmpBox%\%Pref3%%%~nxf" "%%f" Call :Job "%TmpBox%\%Pref3%%%~nxf" "%TmpBox%\%Scr3%" "%TmpBox%\%Pref4%%%~nxf" "%%f" Call :Job "%TmpBox%\%Pref4%%%~nxf" "%TmpBox%\%Scr4%" "%TmpBox%\%Pref5%%%~nxf" "%%f" If Exist "%TmpBox%\%Pref5%%%~nf.*" ( FOR %%s IN ("%TmpBox%\%Pref5%%%~nf.*") Do Move /Y "%%s" "%OutBox%\%%~nxf" Del "%ErrBox%\%%~nxf" 2>nul ) ) FOR %%s IN ("%Scr1%" "%Scr2%" "%Scr3%" "%Scr4%") DO Del "%TmpBox%\%%s" 2>nul GoTo :Eof :DelAll Del "%TmpBox%\%~n1.*" 2>nul Del "%OutBox%\%~nx1" 2>nul Del "%TmpBox%\%Pref1%%~n1.*" 2>nul Del "%TmpBox%\%Pref2%%~n1.*" 2>nul Del "%TmpBox%\%Pref3%%~n1.*" 2>nul Del "%TmpBox%\%Pref4%%~n1.*" 2>nul Del "%TmpBox%\%Pref5%%~n1.*" 2>nul GoTo :Eof :Job If Exist "%~dpn1.*" ( FOR %%i IN ("%~dpn1.*") DO ( Call "%Pgm%" /i "%%i" /s %2 /l en-US ) If Exist "%~dpn3.*" ( Del "%~dpn1.*" ) Else ( Move /Y "%~dpn1.*" "%ErrBox%\" >nul Echo ----- Исходный файл %4 от %~t1 %~z1b не обработан.>>"%ErrLog%" Echo перемещен "%ErrBox%\%~nx4" >>"%ErrLog%" Echo "%ErrBox%\%~nx1" >>"%ErrLog%" Echo -------------------------------------------------------------------->>"%ErrLog%" ) ) 1. Исходные файлы, .scr файлы помещаются в папку с батником 2. При нормальной обработке обработанные файлы с именами исходных помещаются в папку OutBox 3. При неуспешной обработке исходный файл и последний из имеющихся промежуточных файлов помещаются в папку ErrBox. Сообщение о неуспешной обработке записывается в лог-файл с именем даты-времени обработки. |
------- Последний раз редактировалось megaloman, 24-12-2016 в 20:52. Отправлено: 20:45, 24-12-2016 | #32 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать если ошибок среди файлов нет, то все проходит на ура!!!!
если же есть ошибка то в папке остается файл и файл с перфиксом и лог файл. можно сделать так чтобы файл с префиксом тоже удалялся. и еще можно в конце (после всех операции с файлами) добавить удаление файлов *.dwg и *.dxf из исходной папки (где они изначально находились) (без подпапок), а то в процессе ошибки в некоторых случаях сохраняется кривой файл в папке запуска батника, который нафиг не нужен лог на всякий случай прикладываю |
Отправлено: 13:10, 09-01-2017 | #33 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать composter, не прошло и полгода ...
|
------- Отправлено: 15:20, 09-01-2017 | #34 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|