mrusklon
@mrusklon
если долго мучится - что нибудь получится

Как сравнить разницу в двух текстовых документах и вывести разницу в новый текстовый документ?

Делаю я операции с картинками, jpg , мониторю папку где лежат картинки , добавляю пути и названия всех файлов в log.txt и уже дальше спокойно обрабатываю
но папку с картинками часто невольно засирает да и старые картинки по необходимости остаются ,
собственно вопрос: как добавить в log.txt только те картинки которых небыло ранее?

Как я это вижу:
делаем 2 лог файла, log.txt и newlog.txt
log.txt - все что было записано ранее
в newlog.txt добавляется все что есть в папке на данный момент, затем сравнивается с log.txt , всю разницу записывает в result.txt

такое возможно? Как это сделать подскажите?

p.s. вот такое содержимое log.txt
spoiler
c:\Program Files\Windows Sidebar\Gadgets\PicturePuzzle.Gadget\Images\setting_back.png
c:\Program Files\Windows Sidebar\Gadgets\PicturePuzzle.Gadget\Images\shuffle_down.png
c:\Program Files\Windows Sidebar\Gadgets\PicturePuzzle.Gadget\Images\shuffle_over.png
c:\Program Files\Windows Sidebar\Gadgets\PicturePuzzle.Gadget\Images\shuffle_up.png
c:\Program Files\Windows Sidebar\Gadgets\PicturePuzzle.Gadget\Images\tile16.png
c:\Program Files\Windows Sidebar\Gadgets\PicturePuzzle.Gadget\Images\tile_bezel.png
c:\Program Files\Windows Sidebar\Gadgets\PicturePuzzle.Gadget\Images\tile_drop_shadow.png
c:\Program Files\Windows Sidebar\Gadgets\PicturePuzzle.Gadget\Images\timer_down.png
c:\Program Files\Windows Sidebar\Gadgets\PicturePuzzle.Gadget\Images\timer_over.png
c:\Program Files\Windows Sidebar\Gadgets\PicturePuzzle.Gadget\Images\timer_up.png
c:\Program Files\Windows Sidebar\Gadgets\RSSFeeds.Gadget\drag.png
c:\Program Files\Windows Sidebar\Gadgets\RSSFeeds.Gadget\icon.png
c:\Program Files\Windows Sidebar\Gadgets\RSSFeeds.Gadget\images\buttonDown_Off.png
c:\Program Files\Windows Sidebar\Gadgets\RSSFeeds.Gadget\images\buttonDown_On.png
c:\Program Files\Windows Sidebar\Gadgets\RSSFeeds.Gadget\images\buttonUp_Off.png
c:\Program Files\Windows Sidebar\Gadgets\RSSFeeds.Gadget\images\buttonUp_On.png
c:\Program Files\Windows Sidebar\Gadgets\RSSFeeds.Gadget\images\flyoutBack.png
  • Вопрос задан
  • 68 просмотров
Решения вопроса 2
@res2001
Developer, ex-admin
Просто проверяйте есть ли текущий файл в логе, если нет добавляйте.
Как-то так:
for %%a in (c:\test\*.jpg) do (
  findstr /c:"%%~fa" log.txt || echo.%%~fa>log.txt
)

Если log.txt обещает вырастать до БОЛЬШИХ размеров, это может заметно снизить производительность и такой способ мало пригоден. Если log.txt не будет сильно расти, то вполне пойдет.
В случае большого количества файлов нужен другой вариант. Могу предложить такой: все новые файлы просто переносим в другой каталог. Т.е. в рабочем каталоге не будет старых файлов. В этом случае можно ничего не проверять - появился файл, добавили в лог и перенесли его. При этом в лог можно писать уже новый путь к файлу, что бы обработчик лога нормально находил файлы.
Ответ написан
wisgest
@wisgest
Слесарь холодной обработки металла
По первоначальному вопросу см. Как вычесть один фаил из другого?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
windiff (MS):


Usage:

	windiff [options] path1 [path2]

Options:

-D	Compare one directory only.
-F[flags] savefile	Save composite file to 'savefile'.  
The 'flags' may consist of one or more of I (identical), L (left), R (right), F (moved leFt), 
G (moved riGht), S (Similar left), A (similiAr right), X (exit after saving list).
(e.g. -FLF saves list of Left or moved-leFt lines).

типа
WinDiff.Exe /FRLIX diff.txt a.txt b.txt
получите diff.txt

F флаги у вас могут быть нужны другие...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы