The_Immortal
20-03-2016, 21:43
Приветствую!
Необходимо через утилиту 7za.exe проверить все файлы расширения docx в каталоге и подкаталогах на целостность. Из получившегося списка необходимо выделить список (имена) файлов, у которых возникли ошибки или предупреждения.
Запуск утилиты произвожу таким образом:
7za t c:\DirToCheck\*.docx -bse0
Получаю такой результат:
7-Zip (a) [64] 15.14 : Copyright (c) 1999-2015 Igor Pavlov : 2015-12-31
Scanning the drive for archives:
3 files, 3045799 bytes (2975 KiB)
Testing archive: c:\DirToCheck\bad.docx
--
Path = c:\DirToCheck\bad.docx
Type = zip
Physical Size = 145588
Sub items Errors: 7
Testing archive: c:\DirToCheck\good.docx
--
Path = c:\DirToCheck\good.docx
Type = zip
Physical Size = 17139
Everything is Ok
Testing archive: c:\DirToCheck\warning.docx
WARNINGS:
There are data after the end of archive
--
Path = c:\DirToCheck\warning.docx
Type = zip
WARNINGS:
There are data after the end of archive
Physical Size = 20567
Tail Size = 2862505
Everything is Ok
Archives: 3
OK archives: 1
Archives with Errors: 1
Archives with Warnings: 1
Warnings: 1
Sub items Errors: 7
Из этого всего мне нужно получить лишь список следующих файлов:
c:\DirToCheck\bad.docx
c:\DirToCheck\warning.docx, потому как у этих файлов есть ошибки (Error) или предупреждения (Warning).
Теперь пытаюсь сделать это в скрипте:
for /f "delims=" %a in ('dir c:\DirToCheck\*.doc /b /s /a-d') do 7za t "%a" -bse0 | FIND "Warn"Здесь мне необходимо добавить как-то в условие FIND "Err", а также в случае нахождения одного из этих двух слов, перенаправлять имя файла в log.txt. Помогите, пожалуйста, это организовать.
Спасибо!
Необходимо через утилиту 7za.exe проверить все файлы расширения docx в каталоге и подкаталогах на целостность. Из получившегося списка необходимо выделить список (имена) файлов, у которых возникли ошибки или предупреждения.
Запуск утилиты произвожу таким образом:
7za t c:\DirToCheck\*.docx -bse0
Получаю такой результат:
7-Zip (a) [64] 15.14 : Copyright (c) 1999-2015 Igor Pavlov : 2015-12-31
Scanning the drive for archives:
3 files, 3045799 bytes (2975 KiB)
Testing archive: c:\DirToCheck\bad.docx
--
Path = c:\DirToCheck\bad.docx
Type = zip
Physical Size = 145588
Sub items Errors: 7
Testing archive: c:\DirToCheck\good.docx
--
Path = c:\DirToCheck\good.docx
Type = zip
Physical Size = 17139
Everything is Ok
Testing archive: c:\DirToCheck\warning.docx
WARNINGS:
There are data after the end of archive
--
Path = c:\DirToCheck\warning.docx
Type = zip
WARNINGS:
There are data after the end of archive
Physical Size = 20567
Tail Size = 2862505
Everything is Ok
Archives: 3
OK archives: 1
Archives with Errors: 1
Archives with Warnings: 1
Warnings: 1
Sub items Errors: 7
Из этого всего мне нужно получить лишь список следующих файлов:
c:\DirToCheck\bad.docx
c:\DirToCheck\warning.docx, потому как у этих файлов есть ошибки (Error) или предупреждения (Warning).
Теперь пытаюсь сделать это в скрипте:
for /f "delims=" %a in ('dir c:\DirToCheck\*.doc /b /s /a-d') do 7za t "%a" -bse0 | FIND "Warn"Здесь мне необходимо добавить как-то в условие FIND "Err", а также в случае нахождения одного из этих двух слов, перенаправлять имя файла в log.txt. Помогите, пожалуйста, это организовать.
Спасибо!