Exclude dupes: parameters

Discussion related to "Everything" 1.5 Alpha.
Post Reply
anmac1789
Posts: 668
Joined: Mon Aug 24, 2020 1:16 pm

Exclude dupes: parameters

Post by anmac1789 »

Hello I have a question regarding using ! to exclude multiple properties of duplicates for example, do I use ; or , or do I separate the properties with ; semicolon in conjunction with : colon or a comma ?

!dupe:name;dm;da
dupe:!name;!dm;da
dupe:!name;dm;da

dupe:name:,dm:,da:
dupe:name:;,dm:;,da:

where do I put the ! ? what is the proper syntax? Maybe its the variety of ways that is confusing me...
void
Developer
Posts: 16672
Joined: Fri Oct 16, 2009 11:31 pm

Re: Exclude dupes: parameters

Post by void »

The documentation always specify a semicolon (;) delimited list.
However, you can use ; or , as a separator.

! at the start of the search term (before dupe:) means NOT, which will invert what results are matched.

Use a ! before a property name to find properties that are NOT duplicated.



Find files with the same size and name:
dupe:size;name



Find files with the same size, but with a different name:
dupe:size;!name

The !name here means NOT name duplicated

Typically, you would never use ! on the first property.



Find files that have a unique size and name:
or, in other words, find files that don't share the same size and name with another file.
!dupe:size;name

This is the same as:
unique:size;name
anmac1789
Posts: 668
Joined: Mon Aug 24, 2020 1:16 pm

Re: Exclude dupes: parameters

Post by anmac1789 »

void wrote: Mon Jan 02, 2023 7:14 am The documentation always specify a semicolon (;) delimited list.
However, you can use ; or , as a separator.

! at the start of the search term (before dupe:) means NOT, which will invert what results are matched.

Use a ! before a property name to find properties that are NOT duplicated.



Find files with the same size and name:
dupe:size;name



Find files with the same size, but with a different name:
dupe:size;!name

The !name here means NOT name duplicated

Typically, you would never use ! on the first property.



Find files that have a unique size and name:
or, in other words, find files that don't share the same size and name with another file.
!dupe:size;name

This is the same as:
unique:size;name
How come I can't use ! on the 1st property ? I was searching for folders: dupe:!dm;da;name and I got this result which really confused me (see screenshot)
Screenshot 2023-01-02 023539.jpg
Screenshot 2023-01-02 023539.jpg (319.42 KiB) Viewed 3193 times

When I tried !dupe:size;name, this is what I got:

Screenshot 2023-01-02 024041.jpg
Screenshot 2023-01-02 024041.jpg (131.42 KiB) Viewed 3191 times

From what I understand, folders: dupe:name;!dm;!da means, find all folders where it has the same name but different date modified AND different date accessed. Instead, I am still finding folders for which has the same name and also the same date modified and date accessed.

Screenshot 2023-01-02 025127.jpg
Screenshot 2023-01-02 025127.jpg (181.91 KiB) Viewed 3189 times
void
Developer
Posts: 16672
Joined: Fri Oct 16, 2009 11:31 pm

Re: Exclude dupes: parameters

Post by void »

There's a logic issue here.

! is not working after dupe: (before a property name)

I am working on a fix..
anmac1789
Posts: 668
Joined: Mon Aug 24, 2020 1:16 pm

Re: Exclude dupes: parameters

Post by anmac1789 »

Ok, I just thought it was bizarre that ! is supposed to exclude whatever term is being excluded from current results. There are many other examples where ! works and others where it fails. So it seems like somethings broken :(

Update: it seems to me like there are mistakes in coding happening somewhere. I've just tested find-dupes:name;!da;!dm for files and this is the output. But the strange part is that it depends on the order of the syntax being inputted. If find-dupes is changed to name;!dm;!da (!dm comes before !da) then the results change. Compare the screenshots below.

Screenshot 2023-01-03 171218.jpg
Screenshot 2023-01-03 171218.jpg (91.27 KiB) Viewed 3105 times

The order has now changed with find-dupes:name;!dm;!da

Screenshot 2023-01-03 171300.jpg
Screenshot 2023-01-03 171300.jpg (76.76 KiB) Viewed 3105 times

Why does the order matter? Can this be improved? My reasoning was that for all 3 parameters in find-dupes: function, each value must be true. Therefore, the results showed duplicate names, which is true, in the 1st code find-dupes:name;!da;!dm, it showed that date accessed must be different as the other picture(s), which is also true. Further, the date modified should also be different from the other pictures, which shows that is untrue and this is where it fails.

In the other example where find-dupes:name;!dm;!da, everything correctly "filters" the results starting from finding the same picture names which have different date modified and different date accessed.

I'm thinking, can unique: or distinct: be combined with dupe: or find-dupes: together with the dc:, dm:, da: with better results ? Please let me know your thoughts. Thank you
void
Developer
Posts: 16672
Joined: Fri Oct 16, 2009 11:31 pm

Re: Exclude dupes: parameters

Post by void »

! before a property will NOT the dupe comparison operation.



For example:

If you search for dupe:name;!size

Everything will sort by name and then size as a secondary sort.

Everything will then go over each item and:
compare the name property with the previous item.
If they don't match skip this file.

compare the size property with the previous item.
If they match skip this file. (notice the ! operator on size inverts the output here)

Finally add the current item to the result list.
(it's a little more complicated but this gives the basic idea of what Everything is doing)



!dupe:name is not the same as dupe:!name
!dupe:name is treated as unique:name
!dupe:name is the exact opposite of dupe:name



I will leave the current ! operator as is for now, even though it is unintuitive, it is really useful for finding duplicate files/folders between different drives/folders.

For example:

dupe:size;!rootname
dupe:size;!column1

These will not show duplicated results when size and rootname/column1 are the same.
(only when size is the same)



If you want to find duplicate names where the date modified is unique, use:

dupe:name unique:name;date-modified

or, if you want to allow date-modified duplicates and only want to view the first date-modified duplicate, use:

dupe:name distinct:name;date-modified
(distinct: with multiple properties requires Everything 1.5.0.1333a or later)
anmac1789
Posts: 668
Joined: Mon Aug 24, 2020 1:16 pm

Re: Exclude dupes: parameters

Post by anmac1789 »

My question is that why does the order of the parameters matter when both of those find-dupes commands have the same search parameters yet they both give different results
void
Developer
Posts: 16672
Joined: Fri Oct 16, 2009 11:31 pm

Re: Exclude dupes: parameters

Post by void »

The order is important.

It is how Everything finds duplicates (or not duplicates)

When you search for: dupe:name;dm;da
Everything will sort by name, then dm, then da.

Everything then uses this sorted list to find duplicates (or not duplicates)
anmac1789
Posts: 668
Joined: Mon Aug 24, 2020 1:16 pm

Re: Exclude dupes: parameters

Post by anmac1789 »

oh man...this changes everything. Pun not intended lol. Is there a way to make the order irrelevant and directly work with the current results?
void
Developer
Posts: 16672
Joined: Fri Oct 16, 2009 11:31 pm

Re: Exclude dupes: parameters

Post by void »

No.

You should be able to use a combination of dupe:, unique: and distinct: to match anything you like.

What duplicated properties are you trying to find? what unique properties are you trying to find? and what distinct properties are you trying to find?
anmac1789
Posts: 668
Joined: Mon Aug 24, 2020 1:16 pm

Re: Exclude dupes: parameters

Post by anmac1789 »

void wrote: Thu Jan 05, 2023 8:28 am No.

You should be able to use a combination of dupe:, unique: and distinct: to match anything you like.

What duplicated properties are you trying to find? what unique properties are you trying to find? and what distinct properties are you trying to find?
Im trying to find a mix of duplicate properties hence I think this is why one command didn't work.
void
Developer
Posts: 16672
Joined: Fri Oct 16, 2009 11:31 pm

Re: Exclude dupes: parameters

Post by void »

Only additive dupe functions are supported.

For example:
dupe:name distinct:name;size

| is not supported with dupe:

For example, the following will not work:
dupe:name | dupe:size



Finding duplicates is done after the search.

If you want to mix dupe: functions, please use file list slots:
  • Search for:
    dupe:name
  • Select all results (Ctrl + A)
  • Copy filenames to the clipboard (Ctrl + Shift + C)
  • Search for:
    filelist1:
  • Hold down Ctrl and click the filelist1: text in the search box.
  • Paste your filenames (Ctrl + V)
  • Click OK.
    ---
  • Search for:
    dupe:size
  • Select all results (Ctrl + A)
  • Copy filenames to the clipboard (Ctrl + Shift + C)
  • Search for:
    filelist2:
  • Hold down Ctrl and click the filelist2: text in the search box.
  • Paste your filenames (Ctrl + V)
  • Click OK.
    ---
  • Search for:
    filelist1: | filelist2:
anmac1789
Posts: 668
Joined: Mon Aug 24, 2020 1:16 pm

Re: Exclude dupes: parameters

Post by anmac1789 »

void wrote: Thu Jan 05, 2023 8:47 am Only additive dupe functions are supported.

For example:
dupe:name distinct:name;size

| is not supported with dupe:

For example, the following will not work:
dupe:name | dupe:size



Finding duplicates is done after the search.

If you want to mix dupe: functions, please use file list slots:
  • Search for:
    dupe:name
  • Select all results (Ctrl + A)
  • Copy filenames to the clipboard (Ctrl + Shift + C)
  • Search for:
    filelist1:
  • Hold down Ctrl and click the filelist1: text in the search box.
  • Paste your filenames (Ctrl + V)
  • Click OK.
    ---
  • Search for:
    dupe:size
  • Select all results (Ctrl + A)
  • Copy filenames to the clipboard (Ctrl + Shift + C)
  • Search for:
    filelist2:
  • Hold down Ctrl and click the filelist2: text in the search box.
  • Paste your filenames (Ctrl + V)
  • Click OK.
    ---
  • Search for:
    filelist1: | filelist2:
ohh i see no wonder I've been trying to use something like this

date-created:!=date-modified:|date-created:!=date-accessed:|date-modified:!=date-accessed:

or

dc:=dm: dc:=da: dm:=da: date-taken:=dc: date-taken:=dm: date-taken:=da:

Why can't | be used with multiple dupe: ? Is (space) supported? Will multiple dupe: be supported? Is there a faster way to enable file list in the current search so I don't have to do all that process again for each file list ? lets say I maxed out 3 properties in dupe1:dc;dm;da and dupe2:name;size.. then that means I have to create a file list for each and combine filelist1 and filelist2 to find the dupes? can a dupe be run after creating a filelist?
void
Developer
Posts: 16672
Joined: Fri Oct 16, 2009 11:31 pm

Re: Exclude dupes: parameters

Post by void »

You can use multiple property:==property: searches with any ops.

The following will work fine:

date-created:!=date-modified:|date-created:!=date-accessed:|date-modified:!=date-accessed:

dc:=dm: dc:=da: dm:=da: date-taken:=dc: date-taken:=dm: date-taken:=da:

It's only the dupe:, unique: and distinct: search functions that are limited.


Why can't | be used with multiple dupe: ?
Because the dupe: function temporarily matches all files/folders and is applied after the search.


Is (space) supported?
Yes.
AND is supported.

The following will work fine:
dupe:name distinct:name;size


Will multiple dupe: be supported?
Only with spaces.


Is there a faster way to enable file list in the current search so I don't have to do all that process again for each file list ?
You can bind a key to save the current selection to a file list slot from Tools -> Options -> Keyboard.


lets say I maxed out 3 properties in dupe1:dc;dm;da and dupe2:name;size.. then that means I have to create a file list for each and combine filelist1 and filelist2 to find the dupes?
You won't need to use file list slots if you are ANDing dupe searches.

You are likely seeing the wrong results here.
Everything is limited to searching for 3 properties only with dupe:

dupe:dc dupe:name
will find duplicate date-created results AND then find duplicated name results.
NOT duplicated date-created and name in one go.
Use dupe:dc;name to find duplicate date-created and name in one go.


can a dupe be run after creating a filelist?
Yes.
anmac1789
Posts: 668
Joined: Mon Aug 24, 2020 1:16 pm

Re: Exclude dupes: parameters

Post by anmac1789 »

Because the dupe: function temporarily matches all files/folders and is applied after the search
Isn't that the intent to find dupes after the search ? But then the dupe: function should match correctly after the search even if the parameters have been switched around..
AND is supported
Do you literally mean the word "AND" such as dupe:size AND dupe:name?
Only with spaces
Is this going to be in a future release?
NOT duplicated date-created and name in one go
Do you mean that separating dupe: searches will resort to it starting with the leftmost dupe then working it's way to the right?
dupe:name dupe:size dupe:dm
1. find dupes of names
2. then find dupes of those filenames which have the same sizes
3. then find the dupes of those same filenames and sizes that have the same date modified?
is this expressing the correct logic?
void
Developer
Posts: 16672
Joined: Fri Oct 16, 2009 11:31 pm

Re: Exclude dupes: parameters

Post by void »

Because the dupe: function temporarily matches all files/folders and is applied after the search
Isn't that the intent to find dupes after the search ?
Yes, that is what is happening.
dupes are found after the search completes.


But then the dupe: function should match correctly after the search even if the parameters have been switched around..
No, the order is still important.

The dupe: functions are applied in order specified after the search completes.


Do you literally mean the word "AND" such as dupe:size AND dupe:name?
I mean the AND operator, which is a space.


Is this going to be in a future release?
dupe: already supports spaces (AND operator)

As mentioned above, there's a difference between:
dupe:name;size
and
dupe:name dupe:size

dupe:name;size will find files where the name and size are the same.

dupe:name dupe:size will find files where the name is the same, and then find files where the size is the same. (so the size duplicates might be found for files with a different name)


Do you mean that separating dupe: searches will resort to it starting with the leftmost dupe then working it's way to the right?
Yes, correct.
dupe: functions are applied after the search in order specified from left to right.


dupe:name dupe:size dupe:dm
1. find dupes of names
2. then find dupes of those filenames which have the same sizes
3. then find the dupes of those same filenames and sizes that have the same date modified?
is this expressing the correct logic?
Close
Everything will:
1). Find dupes of names. (files that aren't name duplicated are removed)
2). Forget about names and find files with the same size. (files that aren't size duplicated are removed)
3). Forget about size and find files with the same date modified. (files that aren't date-modified duplicated are removed)

I think you are expecting Everything to find duplicates of all 3 properties at the same time?
-If so, use dupe:name;size;dm
anmac1789
Posts: 668
Joined: Mon Aug 24, 2020 1:16 pm

Re: Exclude dupes: parameters

Post by anmac1789 »

yes i am thats why sone results confuse me
Post Reply