|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Сортировка файлов по результату Errorlevel |
|
|
CMD/BAT - [решено] Сортировка файлов по результату Errorlevel
|
Новый участник Сообщения: 6 |
Профиль | Отправить PM | Цитировать Добрый вечер!
Возникла острая потребность в скрипте, который будет создавать папку с текущей датой, перемещать туда архивы с файлами с регионального ресурса, распаковывать и копировать на локальные. Есть вероятность того, что в архиве будут "битые" файлы, нахождение которых в базе недопустимо, для этого бьюсь с той частью скрипта, которая, по моим скромным задумкам, должна тестировать архивы посредством архиватора и далее раскладывать их на , условно, "хорошие" и "плохие", пытаюсь для этого использовать переменную Errorlevel, разумеется. безуспешно ******************************************************************** set InDir=d:\test\d\ set log=d:\test\log.txt echo "Start" >>%log% for /f %i in ('dir %InDir% /b') do ("C:\Program Files\7-Zip\7z.exe" t -r %InDir%%i IF %ERRORLEVEL% neq 0 goto BAD else goto OK) :OK xcopy d:\test\d\ d:\test\c\ok >>%log% :BAD xcopy d:\test\d\ d:\test\c\Bad >>%log% pause ******************************************************************** Спасибо!! |
|
Отправлено: 01:58, 21-03-2015 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата Herheinz:
@Echo Off SetLocal EnableDelayedExpansion set InDir=s:\test\d\ set log=s:\test\log.txt echo "Start" >%log% For /F "tokens=* delims=" %%i In ('dir /S /A:-D /B "%InDir%" 2^>Nul') Do ( "C:\Program Files\7-Zip\7z.exe" t -r -ba "%%i">Nul Echo "%%i" !ERRORLEVEL! IF !ERRORLEVEL! neq 0 (Call :BAD "%%i") else (Call :OK "%%i") ) Pause :OK Echo Archive is OK %1 >>%log% rem xcopy s:\test\d\ s:\test\c\ok >>%log% GoTo :EOF :BAD Echo Archive is BAD %1 >>%log% rem xcopy s:\test\d\ s:\test\c\Bad >>%log% GoTo :EOF |
|
Отправлено: 06:54, 21-03-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать @echo off set "InDir=d:\test\d\" set "log=d:\test\log.txt" >"%log%" echo "Start" pushd "%InDir%" for /f "delims=" %%i in ('dir/a-d/b') do ( "C:\Program Files\7-Zip\7z.exe" t -r "%%i"|>nul find/i "Everything is Ok"&& call:# "%%i" ok|| call:# "%%i" bad ) popd pause& exit/b :# >>"%log%" xcopy/y "%~1" "..\c\%2\"& goto:eof |
Отправлено: 13:11, 21-03-2015 | #3 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать 2 gora: спасибо, но что то тут не так.
вот результат ЛОГа: ""Start" Archive is OK "d:\test\d\test.LZH" Archive is OK "d:\test\d\test.rar" Archive is OK "d:\test\d\test.zip" Archive is OK" Вся беда в том что архив test.LZH заведомо поврежден и не может быть в порядке(( |
Отправлено: 14:44, 21-03-2015 | #4 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата Herheinz:
|
||
Отправлено: 14:49, 21-03-2015 | #5 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать |
Отправлено: 10:02, 22-03-2015 | #6 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Herheinz, результат:
"Start"
Archive is OK "s:\test\d\35234t6.7z"
Archive is OK "s:\test\d\d_sl2_150321_12-12.7z"
Archive is OK "s:\test\d\pr.7z"
Archive is BAD "s:\test\d\Temp 1.7z"
Archive is OK "s:\test\d\Temp11.7z"
Archive is BAD "s:\test\d\test.lzh"
Archive is OK "s:\test\d\Test_7zip.7z"
7-Zip Ver 9.38 beta |
Последний раз редактировалось gora, 22-03-2015 в 10:24. Отправлено: 10:10, 22-03-2015 | #7 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать gora, поменял версию, теперь ErrorLevel всегда выдает 7, что приводит к тому, что ВСЕ архивы становятся плохими
(во вложении скрин с ходом выполнения команды в cmd) |
Отправлено: 15:00, 22-03-2015 | #8 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата Herheinz:
Цитата Herheinz:
Цитата справка:
Цитата:
|
||||
Отправлено: 15:07, 22-03-2015 | #9 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать gora,
Цитата gora:
Цитата gora:
http://www.fayloobmennik.net/4717292 Цитата gora:
rem @Echo Off SetLocal EnableDelayedExpansion set InDir=d:\test\d\ set log=d:\test\log.txt echo "Start" >>%log% For /F "tokens=* delims=" %%i In ('dir /S /A:-D /B "%InDir%" 2^>Nul') Do ( "C:\Program Files\7-Zip\7z.exe" t -r -ba %InDir%\"%%i">Nul Echo "%%i" !ERRORLEVEL! IF !ERRORLEVEL! neq 0 (Call :BAD "%%i") else (Call :OK "%%i") ) Pause :OK Echo Archive is OK %1 >>%log% rem xcopy s:\test\d\ s:\test\c\ok >>%log% GoTo :EOF :BAD Echo Archive is BAD %1 >>%log% rem xcopy s:\test\d\ s:\test\c\Bad >>%log% GoTo :EOF |
|||
Отправлено: 15:12, 22-03-2015 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - [решено] Автоматическая сортировка файлов по папкам | kako12 | Microsoft Windows 8 и 8.1 | 8 | 08-06-2013 21:07 | |
CMD/BAT - сортировка файлов по папкам по дате в названии | insearches | Скриптовые языки администрирования Windows | 1 | 03-02-2013 17:03 | |
PowerShell - Сортировка файлов по подстроке | kostich | Скриптовые языки администрирования Windows | 12 | 15-12-2012 13:27 | |
CMD/BAT - Сортировка файлов по расширению | cyber_ua | Скриптовые языки администрирования Windows | 9 | 07-10-2012 23:16 | |
Медиа - [решено] Сортировка файлов по номеру, имени и т.д. | medvedkovo | Microsoft Windows 7 | 2 | 19-01-2011 01:34 |
|