Make a custom property that encompasses two pre-existing properties
Make a custom property that encompasses two pre-existing properties
I am trying to sort my pictures and videos by the date they were created. For pictures this is the "Date taken" property, for videos this is the "media created" property. Pictures have no "media created" data and videos have no "date taken" data.
A single column that could be used to order all videos and pictures in one go would be really helpful. I renamed the custom property Custom_property_0=DateOriginal. It would be great if this property would list "date taken" information for photos and "media created" info for videos. But I'm not sure where to go from here? Any advice would be greatly appreciated!
A single column that could be used to order all videos and pictures in one go would be really helpful. I renamed the custom property Custom_property_0=DateOriginal. It would be great if this property would list "date taken" information for photos and "media created" info for videos. But I'm not sure where to go from here? Any advice would be greatly appreciated!
Re: Make a custom property that encompasses two pre-existing properties
try this
<regex:tostring:datetaken:(.+)|regex:tostring:mediacreated:(.+)>
Then Add Column -> Search -> Regular Expression Match 0 (or 1)
I have not tested these date-taken and media-created properties, so I hope I have them named correctly.
<regex:tostring:datetaken:(.+)|regex:tostring:mediacreated:(.+)>
Then Add Column -> Search -> Regular Expression Match 0 (or 1)
I have not tested these date-taken and media-created properties, so I hope I have them named correctly.
Re: Make a custom property that encompasses two pre-existing properties
As raccoon suggestions, with the following search:
<regex:tostring:datetaken:(.+) | regex:tostring:datemediacreated:(.+)>
Sort with Add Column -> Search -> Regular Expression Match 1
I'll add a mediacreated alias.
(media created is the same as date encoded)
<regex:tostring:datetaken:(.+) | regex:tostring:datemediacreated:(.+)>
Sort with Add Column -> Search -> Regular Expression Match 1
I'll add a mediacreated alias.
(media created is the same as date encoded)
Last edited by void on Fri Feb 04, 2022 11:18 pm, edited 1 time in total.
Reason: added spaces to break | operator
Reason: added spaces to break | operator
Re: Make a custom property that encompasses two pre-existing properties
Racoon and Void, Thank you both very much for your time. I found that worked by contrast seemed to only return photos (.jpg) and not videos (.mov).
Code: Select all
<regex:tostring:datetaken:(.+)>|<regex:tostring:datemediacreated:(.+)>
Code: Select all
<regex:tostring:datetaken:(.+)|regex:tostring:datemediacreated:(.+)>
Last edited by NotNull on Fri Feb 04, 2022 6:17 pm, edited 1 time in total.
Reason: Added codetags [</>] for clarity.
Reason: Added codetags [</>] for clarity.
Re: Make a custom property that encompasses two pre-existing properties
Good find. (bug)
@void: <regex:abc|regex:xyz> only finds "abc" and ignores "xyz". Looks like a parser conflict with pipes touching regex, quoted or unquoted. My intuition is that Everything operators should take precedence exiting the regex, like space does.
works: <<regex:abc>|<regex:xyz>>
doesnt: <regex:abc|regex:xyz>
doesnt: <regex:"abc"|regex:"xyz">
@Jesse6: I also recommend double-wrapping that alternation in another set of angle braces <> so that the pattern will work independent of your global OR>AND; AND>OR operator precedence setting. At least in case other readers intend to use this method.
"E:\Media\" <<regex:tostring:datetaken:(.+)>|<regex:tostring:datemediacreated:(.+)>>
@void: <regex:abc|regex:xyz> only finds "abc" and ignores "xyz". Looks like a parser conflict with pipes touching regex, quoted or unquoted. My intuition is that Everything operators should take precedence exiting the regex, like space does.
works: <<regex:abc>|<regex:xyz>>
doesnt: <regex:abc|regex:xyz>
doesnt: <regex:"abc"|regex:"xyz">
@Jesse6: I also recommend double-wrapping that alternation in another set of angle braces <> so that the pattern will work independent of your global OR>AND; AND>OR operator precedence setting. At least in case other readers intend to use this method.
"E:\Media\" <<regex:tostring:datetaken:(.+)>|<regex:tostring:datemediacreated:(.+)>>
Re: Make a custom property that encompasses two pre-existing properties
regex: eats the |
Use spaces to break the search into two terms.
regex:tostring:datetaken:(.+) | regex:tostring:datemediacreated:(.+)
regex:
Use spaces to break the search into two terms.
regex:tostring:datetaken:(.+) | regex:tostring:datemediacreated:(.+)
regex:
Re: Make a custom property that encompasses two pre-existing properties
Hi,
because I think it fits this topic:
Is it possible to compare 2 columns
whether identical data (date and time) are present and
output them in another column, whether there is a difference?
(Ideally, one could include the column "Media Created" (datemediacreated:) at the same time, if possible...).
I am thinking here, for example, of the following:
Returns 1 if value1 is exactly the same as value2, 0 otherwise.
Example: #exact:abc,abc => 1
Example: #exact:abc,Abc => 0
This would have the advantage, for example, that you could determine which .JPG images
one could subsequently adjust the modification date to the EXIF date.
Unfortunately, my knowledge is far from sufficient for this.
Thanks.
because I think it fits this topic:
Is it possible to compare 2 columns
Code: Select all
- dm: column "Date Modified" "value1"
AND
- datetaken: column "Date Taken" "value2"
output them in another column, whether there is a difference?
(Ideally, one could include the column "Media Created" (datemediacreated:) at the same time, if possible...).
I am thinking here, for example, of the following:
Code: Select all
#exact:<value1,value2>
Example: #exact:abc,abc => 1
Example: #exact:abc,Abc => 0
This would have the advantage, for example, that you could determine which .JPG images
one could subsequently adjust the modification date to the EXIF date.
Unfortunately, my knowledge is far from sufficient for this.
Thanks.
Re: Make a custom property that encompasses two pre-existing properties
I am working on solutions to this.
Hopefully, dm:==datetaken:
For now, there is:
eval:#dm:==#datetaken:
which will list files where date modified is the same as date taken.
Please note this search is slow, please use other filters for the best performance.
eval:
Hopefully, dm:==datetaken:
For now, there is:
eval:#dm:==#datetaken:
which will list files where date modified is the same as date taken.
Please note this search is slow, please use other filters for the best performance.
eval:
Re: Make a custom property that encompasses two pre-existing properties
2void
I am very pleased that you are working on a solution here.
I have just tried your suggestion and would have expected this query to show the .JPG files,
where the date taken differs from the date modified.
Unfortunately, this is not the case and I don't know why.
Can you please check.
Thank you!
I am very pleased that you are working on a solution here.
I have just tried your suggestion and would have expected this query to show the .JPG files,
where the date taken differs from the date modified.
Code: Select all
d: dm:lastweek regex:tostring:datetaken:(.+) | regex:tostring:datemediacreated:(.+) !eval:#dm:==#datetaken:
Unfortunately, this is not the case and I don't know why.
Can you please check.
Thank you!
Re: Make a custom property that encompasses two pre-existing properties
The dates are probably out a few milliseconds. (not shown in Everything)
Please try the following to match days:
eval:#dm:/864000000000==#datetaken:/864000000000
and for hours:
eval:#dm:/36000000000==#datetaken:/36000000000
and for minutes:
eval:#dm:/600000000==#datetaken:/600000000
For comparing dates only in the current timezone:
eval:#<:#getyear:<#dm:>==#getyear:<#datetaken:>#>: eval:#<:#month:<#dm:>==#month:<#datetaken:>#>: eval:#<:#day:<#dm:>==#day:<#datetaken:>#>:
Please try the following to match days:
eval:#dm:/864000000000==#datetaken:/864000000000
and for hours:
eval:#dm:/36000000000==#datetaken:/36000000000
and for minutes:
eval:#dm:/600000000==#datetaken:/600000000
For comparing dates only in the current timezone:
eval:#<:#getyear:<#dm:>==#getyear:<#datetaken:>#>: eval:#<:#month:<#dm:>==#month:<#datetaken:>#>: eval:#<:#day:<#dm:>==#day:<#datetaken:>#>:
Last edited by void on Tue Feb 08, 2022 10:13 am, edited 1 time in total.
Reason: fixed syntax
Reason: fixed syntax
Re: Make a custom property that encompasses two pre-existing properties
Thanks!
This is how it looks to me.
Otherwise I would - at the very end - combine the 3 commands,
i.e. date and time should be compared per image...(and the "date taken" should still be displayed in the column).
This is how it looks to me.
Otherwise I would - at the very end - combine the 3 commands,
i.e. date and time should be compared per image...(and the "date taken" should still be displayed in the column).
Re: Make a custom property that encompasses two pre-existing properties
Looks like Everything is not reading the the date taken property for these files correctly.
Could you please send one of these files to support@voidtools.com
Could you please send one of these files to support@voidtools.com
Re: Make a custom property that encompasses two pre-existing properties
Done.void wrote: ↑Mon Feb 07, 2022 10:17 am Could you please send one of these files to support@voidtools.com
This is what FastStone Image Viewer for windows - Version 7.5 and Total Commander shows ("EXIF: Date/Time" and "Date modified"):
Re: Make a custom property that encompasses two pre-existing properties
2void
I'm sorry, I had unfortunately overlooked that in my settings (properties) only the 'Date Taken' of D:\Bilder\**.jpg was indexed.
The search was, however, carried out in the path: D:\Pictures\2022\. --- ("Bilder" (German) corresponds to "Pictures/Images" in English).
Due to your related hint in an email, I have basically changed my settings to the following, namely
Properties -> Date Taken:
This is the final variant for me: eval:#dm:/600000000!=#datetaken:/600000000
I'm sorry, I had unfortunately overlooked that in my settings (properties) only the 'Date Taken' of D:\Bilder\**.jpg was indexed.
The search was, however, carried out in the path: D:\Pictures\2022\. --- ("Bilder" (German) corresponds to "Pictures/Images" in English).
Due to your related hint in an email, I have basically changed my settings to the following, namely
Properties -> Date Taken:
Code: Select all
FROM: D:\Bilder**.jpg
TO: D:\**.jpg
I have tested these variants, which were also mentioned in your emails:void (author) wrote:(D:\**.jpg will match any jpg file under the D: drive <where as d:\*.jpg would only match jpg files directly in the root of the D: drive>)
Code: Select all
D:\Pictures\2022\ eval:#dm:/864000000000!=#datetaken:/864000000000 --> days unequal
D:\Pictures\2022\ eval:#dm:/36000000000!=#datetaken:/36000000000 --> hours unequal
D:\Pictures\2022\ eval:#dm:/600000000!=#datetaken:/600000000 --> minutes unequal
Grouping: <days unequal|hours unequal|minutes unequal>
D:\Pictures\2022\ <eval:#dm:/864000000000!=#datetaken:/864000000000|eval:#dm:/36000000000!=#datetaken:/36000000000|eval:#dm:/600000000!=#datetaken:/600000000>
This is the final variant for me: eval:#dm:/600000000!=#datetaken:/600000000
Code: Select all
D:\Pictures\2022\ eval:#dm:/600000000!=#datetaken:/600000000
Thank you very much again for your support!void (author) wrote:<eval:#dm:/864000000000!=#datetaken:/864000000000|eval:#dm:/36000000000!=#datetaken:/36000000000|eval:#dm:/600000000!=#datetaken:/600000000>
This would be the same as:
eval:#dm:/600000000!=#datetaken:/600000000
Everything is dividing the date-modified and date-taken filetime (100 nanoseconds since 01/01/1601) by 600,000,000
Effectively converting the filetimes to minutes since 01/01/1601.
This should read as:
date-modified in minutes since 01/01/1601
is NOT EQUAL to
date-taken in minutes since 01/01/1601
This will not match files where the number of minutes is the same.
It will match files where the minutes, hours, days, months or years differ.
Seconds and milliseconds will be ignored.
Re: Make a custom property that encompasses two pre-existing properties
Hi,
I don't understand why these queries only show me .JPG files, but not videos, eg.
Everything 1.5.0.1300a (x64) - Properties - [x] Include files - [x] Fast Sort
Can someone please give me a clue.
Thank you!
Code: Select all
dm:thisweek regex:tostring:datetaken:(.+) | regex:tostring:datemediacreated:(.+)
dm:1.2.2022..11.2.2022 regex:tostring:datetaken:(.+) | regex:tostring:datemediacreated:(.+)
note: trailing space
Code: Select all
Name/Ext Size Date Attr
VID-20220208-WA0000.mp4 20 436 180 08.02.2022 07:58 -a--
VID-20220209-WA0003.mp4 953 625 09.02.2022 15:29 -a--
Code: Select all
Date Taken: D:\**.jpg
Media Created: D:\**.3gp;D:\**.amr;D:\**.asf;D:\**.asx;D:\**.avi;D:\**.flv;D:\**.ifo;D:\**.mkv;D:\**.mov;D:\**.mp4; ...
Thank you!
Re: Make a custom property that encompasses two pre-existing properties
If you search for:
VID-20220208-WA0000.mp4
Does Everything show a date for this file in the Media Created column?
VID-20220208-WA0000.mp4
Does Everything show a date for this file in the Media Created column?
Re: Make a custom property that encompasses two pre-existing properties
Does Everything show a date for the Windows Property System Media created property?
- In Everything, right click the Media Created column header and click Remove Column.
- Right click the result list column header and click Add columns....
- Click Windows Property System on the left.
- Search for:
media created - Select Media created (System.Media.DateEncoded)
- Click OK.
- In Everything, search for:
VID-20220208-WA0000.mp4 - Does Everything show a date for this file in the Media created column?
Re: Make a custom property that encompasses two pre-existing properties
No, this file does not have a media created date and therefore does not show it in the column.
Unfortunately, I had mistakenly chosen the wrong time period -> in January I had videos that had a date.
WhatsApp videos very often don't have a "media created" date and I was misled by that (there were several WhatsApp videos in February).
Code: Select all
Windows Property System
Name: Medium erstellt; Type: Property System; Canonical Name: System.Media.DateEncoded ("German")
WhatsApp videos very often don't have a "media created" date and I was misled by that (there were several WhatsApp videos in February).
Re: Make a custom property that encompasses two pre-existing properties
Thank you for these new comparison possibilities!
Here are two more pictures - these queries were used:
Here are two more pictures - these queries were used:
Code: Select all
D:\Pictures\2022\ eval:#dm:/600000000!=#datetaken:/600000000
D:\Pictures\2022\ dm:!=date-taken:
D:\Pictures\2022\ dm:==date-taken:
Re: Make a custom property that encompasses two pre-existing properties
Are you seeing an unexpected result in Everything?
Sorry, I couldn't tell from your screenshots.
Sorry, I couldn't tell from your screenshots.
Re: Make a custom property that encompasses two pre-existing properties
No, all is fine!
I mainly just wanted to show the differences between the two searches in the
image "2022-03-15_dm !=date-taken vs eval #dm 600000000 !=#datetaken 600000000.png".
2022-03-15_dm !=date-taken vs eval #dm 600000000 !=#datetaken 600000000.png
In the image in dark mode (display in Total Commander), all files are listed and a subdivision is drawn.
If you compare these files with the evaluation in Everything you can see that the results are correct.
Code: Select all
1. D:\Pictures\2022\ eval:#dm:/600000000!=#datetaken:/600000000
... This will not match files where the number of minutes is the same.
... It will match files where the minutes, hours, days, months or years differ.
... --> !!! Seconds and milliseconds will be IGNORED. !!! <--
... =========================================
Result: 3 Pictures
Name/Ext Exif-Date Taken (DE) Date modified
20220131_183958.jpg 31.01.2022_18.24.57 31.01.2022 18:39:58
20220131_114035_Kopie1.jpg 31.01.2022_09.40.35 31.01.2022 11:40:35
20220123_105932.jpg 21.01.2022_08.29.32 23.01.2022 11:42:26
Code: Select all
2. D:\Pictures\2022\ dm:!=date-taken:
The seconds and milliseconds are also checked here!
===================================================
Result: 7 Pictures (All pictures!)
Name/Ext Exif-Date Taken (DE) Date modified
20220207_091200.jpg 07.02.2022_09.12.00 07.02.2022 09:12:37
20220206_165139.jpg 06.02.2022_16.51.39 06.02.2022 16:51:40
20220202_211706.jpg 02.02.2022_21.17.06 02.02.2022 21:17:07
20220202_130408.jpg 02.02.2022_13.04.08 02.02.2022 13:04:09
20220131_183958.jpg 31.01.2022_18.24.57 31.01.2022 18:39:58
20220131_114035_Kopie1.jpg 31.01.2022_09.40.35 31.01.2022 11:40:35
20220123_105932.jpg 21.01.2022_08.29.32 23.01.2022 11:42:26
Code: Select all
D:\Pictures\2022\ dm:==date-taken:
Code: Select all
Name/Ext Exif-Date Taken (DE) Date modified
20220206_165139.jpg 06.02.2022_16.51.39 06.02.2022 16:51:40 Original
Change to: 06.02.2022_16.51.39 06.02.2022 16:51:39 ! dm:==date-taken: -> OK