Делаю я операции с картинками, jpg , мониторю папку где лежат картинки , добавляю пути и названия всех файлов в log.txt и уже дальше спокойно обрабатываю
но папку с картинками часто невольно засирает да и старые картинки по необходимости остаются ,
собственно вопрос: как добавить в log.txt только те картинки которых небыло ранее?
Как я это вижу:
делаем 2 лог файла, log.txt и newlog.txt
log.txt - все что было записано ранее
в newlog.txt добавляется все что есть в папке на данный момент, затем сравнивается с log.txt , всю разницу записывает в result.txt
такое возможно? Как это сделать подскажите?
p.s. к примеру вот такое содержимое log.txt
Цитата:
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
CMD/BAT - Как сравнить разницу в двух текстовых документах и вывести разницу в новый текстовый
-
DJ Mogarych
Re: CMD/BAT - Как сравнить разницу в двух текстовых документах и вывести разницу в новый текстовый
Powershell:
Код:
Вопрос только в том, всегда ли в newlog.txt будет больше строк, чем в log.txt, потому что в примере выше будет записываться любая разница между файлами.
Если нужно, чтобы добавлялись только те, которые есть в newlog.txt, но нет в log.txt, но не наоборот, тогда так:
Код:
Код:
Код: Выделить всё
(compare (gc D:\temp\log.txt) (gc D:\temp\newlog.txt)).inputobject |Out-File D:\temp\result.txtВопрос только в том, всегда ли в newlog.txt будет больше строк, чем в log.txt, потому что в примере выше будет записываться любая разница между файлами.
Если нужно, чтобы добавлялись только те, которые есть в newlog.txt, но нет в log.txt, но не наоборот, тогда так:
Код:
Код: Выделить всё
((compare (gc D:\temp\log.txt) (gc D:\temp\newlog.txt)).where{$_.SideIndicator -eq '=>'}).inputobject |Out-File D:\temp\result.txt-
mrusklon
Re: CMD/BAT - Как сравнить разницу в двух текстовых документах и вывести разницу в новый текстовый
точно, надо просто обновлять log.txt , выходит удаляем log.txt , а newlog.txt переименовываем в log.txt , выходит у нас будет всегда "большой" файл для сравнения с малым
или я не то понял? Или может оптимизировать можно как то?
или я не то понял? Или может оптимизировать можно как то?
-
DJ Mogarych
Re: CMD/BAT - Как сравнить разницу в двух текстовых документах и вывести разницу в новый текстовый
В первом варианте запишется любая разница, любые строки, уникальные для обоих файлов.
Во втором примере запишутся только уникальные строки, которые содержатся в newlog.txt.
Во втором примере запишутся только уникальные строки, которые содержатся в newlog.txt.
-
mrusklon
Re: CMD/BAT - Как сравнить разницу в двух текстовых документах и вывести разницу в новый текстовый
что то не работает сам батник, что я делаю не так?
создал cmd.bat ,
поместил в него
Код:
но окно не запускается даже (или настолько быстро что не видно) , все файлы созданы по указанному пути , log и newlog наполнил небольшим содержимым для теста
создал cmd.bat ,
поместил в него
Код:
Код: Выделить всё
@echo off
((compare (gc D:\temp\log.txt) (gc D:\temp\newlog.txt)).where{$_.SideIndicator -eq '=>'}).inputobject |Out-File D:\temp\result.txt
pauseно окно не запускается даже (или настолько быстро что не видно) , все файлы созданы по указанному пути , log и newlog наполнил небольшим содержимым для теста
-
DJ Mogarych
Re: CMD/BAT - Как сравнить разницу в двух текстовых документах и вывести разницу в новый текстовый
надо создать cmd.ps1 и запускать его по правой кнопке мышки -> выполнить в Powershell.
@echo off надо убрать
Или сделать такой "батник":
Код:
@echo off надо убрать
Или сделать такой "батник":
Код:
Код: Выделить всё
powershell -noprofile -command "((compare (gc D:\temp\log.txt) (gc D:\temp\newlog.txt)).where{$_.SideIndicator -eq '=>'}).inputobject |Out-File D:\temp\result.txt"-
mrusklon
Re: CMD/BAT - Как сравнить разницу в двух текстовых документах и вывести разницу в новый текстовый
понял , все фунциклирует , дальше разберусь сам , спасибо!