![]() |
Как сравнить разницу в двух текстовых документах и вывести разницу в новый текстовый
Делаю я операции с картинками, jpg , мониторю папку где лежат картинки , добавляю пути и названия всех файлов в log.txt и уже дальше спокойно обрабатываю
но папку с картинками часто невольно засирает да и старые картинки по необходимости остаются , собственно вопрос: как добавить в log.txt только те картинки которых небыло ранее? Как я это вижу: делаем 2 лог файла, log.txt и newlog.txt log.txt - все что было записано ранее в newlog.txt добавляется все что есть в папке на данный момент, затем сравнивается с log.txt , всю разницу записывает в result.txt такое возможно? Как это сделать подскажите? p.s. к примеру вот такое содержимое log.txt Цитата:
|
Powershell:
Код:
(compare (gc D:\temp\log.txt) (gc D:\temp\newlog.txt)).inputobject |Out-File D:\temp\result.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 |
точно, надо просто обновлять log.txt , выходит удаляем log.txt , а newlog.txt переименовываем в log.txt , выходит у нас будет всегда "большой" файл для сравнения с малым
или я не то понял? Или может оптимизировать можно как то? |
В первом варианте запишется любая разница, любые строки, уникальные для обоих файлов.
Во втором примере запишутся только уникальные строки, которые содержатся в newlog.txt. |
что то не работает сам батник, что я делаю не так?
создал cmd.bat , поместил в него Код:
@echo off |
надо создать cmd.ps1 и запускать его по правой кнопке мышки -> выполнить в Powershell.
@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" |
понял , все фунциклирует , дальше разберусь сам , спасибо!
|
Время: 23:26. |
Время: 23:26.
© OSzone.net 2001-