Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.89
Badger
91 / 91 / 4
Регистрация: 25.06.2012
Сообщений: 278
#1

Сравнение содержимого набора файлов - CMD/BAT

08.10.2012, 15:34. Просмотров 2308. Ответов 4
Метки нет (Все метки)

Есть файлы sp1.* (01-23) и sp2.* (01-23). В них находятся наборы из 6 цифр:
113548
328465
257710
и так далее...

Записи сравниваются между файлами sp1.01 и sp2.01, потом с расширением *.02 и т.д.
Строки из файла sp1.01, которых нет в файле sp2.01 записываются в файл sp_rez.01

Не могу сделать перебор расширений, вот так работать не хочет:

Bash
1
2
3
4
5
6
@echo off
for /l %%a in (01,1,23) do (
     for /f "delims=" %%i in (sp1.%%a) do (
          find "%%i" < sp2.%%a || echo %%i >> sp_rez.%%a
)
)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2012, 15:34
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сравнение содержимого набора файлов (CMD/BAT):

Сравнение содержимого набора текстовых файлов
Уважаемые знатоки, не откажите в помощи новичку! Задача такова - необходимо...

Сравнение содержимого двух файлов
Какой командой можно сравнить содержимое двух файлов и вывести результат в...

Сравнение содержимого двух текстовых файлов построчно
Доброго всем дня. Есть три текстовых файла. В первом 1.txt - список &quot;зеленых&quot;...

Проверка существования файлов, создание файлов и вывод содержимого файлов на принтер
Создать BAT-файл который поддерживает создание файлов проверку их и вывод на...

Переименование PDF-файлов в имена, берущиеся из содержимого этих файлов
Всем доброго времени суток!:) Подскажите, пожалуйста, как переименовать файл с...

Сравнение содержимого двух папок
Доброго времени суток всем. Помогите написать батник. Сам в этом не селен....

4
Dragokas
Эксперт WindowsАвтор FAQ
16927 / 7012 / 852
Регистрация: 25.12.2011
Сообщений: 10,808
Записей в блоге: 16
08.10.2012, 16:15 #2
С нулем так легко не выкрутится. А так все верно.
Bash
1
2
3
4
5
6
7
8
9
10
@echo off
setlocal EnableDelayedExpansion
for /l %%a in (1,1,23) do (
    if %%a LSS 10 (set ext=0%%a) else (set ext=%%a)
    for /f "delims=" %%i in (sp1.!ext!) do (
          >nul find "%%i" < sp2.!ext! || echo %%i >> sp_rez.!ext!
    )
)
pause>nul
goto :oef
1
Badger
91 / 91 / 4
Регистрация: 25.06.2012
Сообщений: 278
08.10.2012, 17:41  [ТС] #3
Спасибо! А зачем перенаправление >nul в шестой строке?
Bash
1
 >nul find "%%i"
Добавлено через 13 минут
Почему то пропускает создание результата *.01, начинает со второго и до конца.
А что делает >nul разобрался, но лучше без него, т.к. видно, что что то делается
0
Dragokas
Эксперт WindowsАвтор FAQ
16927 / 7012 / 852
Регистрация: 25.12.2011
Сообщений: 10,808
Записей в блоге: 16
08.10.2012, 20:42 #4
Я проверял. У меня все работает правильно. Чем так 01 отличается от всех остальных.
Может содержимое файла особенное. Нужно смотреть. Если не получится, выкладывайте наживку сюда.
Может у Вас там буква О всесто нуля в имени файла.

А если нужно, чтобы что-нибуть показывало, то лучше уж разницу, а не совпадающие записи:
Bash
1
2
3
4
5
6
7
8
9
10
11
@echo off
setlocal EnableDelayedExpansion
del /f /q sp_rez.*
for /l %%a in (1,1,23) do (
    if %%a LSS 10 (set ext=0%%a) else (set ext=%%a)
    for /f "delims=" %%i in (sp1.!ext!) do (
          >nul find "%%i" < sp2.!ext! || (echo %%i >> sp_rez.!ext!& echo sp1.!ext! - %%i)
    )
)
pause>nul
goto :oef
1
Badger
91 / 91 / 4
Регистрация: 25.06.2012
Сообщений: 278
09.10.2012, 11:41  [ТС] #5
Цитата Сообщение от Badger Посмотреть сообщение
пропускает создание результата *.01
Разобрался... перепутал местами сравниваемые файлы ps1 и sp2.
0
09.10.2012, 11:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2012, 11:41
Привет! Вот еще темы с решениями:

Сравнение содержимого архива и папки
Собственно сабж. Как сравнить содержимое архива и папки? Была мысль создавать 2...

Сравнение файлов в папке и создание папок с именами файлов
Нужно пройтись по папке, если есть картинка с названием, но нет папки с таким...

Сравнение содержимого двух папок и вывод на экран различия
Имеются две папки (1,2) Помогите создать батник, что бы он мог сравнить две...

Обработка файлов на основе их содержимого
Добрый день. Интересует возможность обработки файлов (удаление\перемещение) на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru