Getting only a repeating files from directory and subdirectories
I'm trying to do script for finding non-unique files.
The script should take one .csv file with data: name of files, LastWriteTime and Length. Then I try to make another .csv based on that one, which will contain only those objects whose combination of Name+Length+LastWriteTime is NON-unique.
I tried following script which uses $csvfile
containing files list:
$csvdata = Import-Csv -Path $csvfile -Delimiter '|'
$csvdata |
Group-Object -Property Name, LastWriteTime, Length |
Where-Object -FilterScript { $_.Count -gt 1 } |
Select-Object -ExpandProperty Group -Unique |
Export-Csv $csvfile2 -Delimiter '|' -NoTypeInformation -Encoding Unicode
$csvfile
was created by:
{
Get-ChildItem -Path $mainFolderPath -Recurse -File |
Sort-Object $sortMode |
Select-Object Name, LastWriteTime, Length, Directory |
Export-Csv $csvfile -Delimiter '|' -NoTypeInformation -Encoding Unicode
}
(Get-Content $csvfile) |
ForEach-Object { $_ -replace '"' } |
Out-File $csvfile -Encoding Unicode
But somehow in another $csvfile2
there is only the one (first) non-unique record. Does anyone have an idea how to improve it so it can list all non-unique records?
powershell csv unique get-childitem
add a comment |
I'm trying to do script for finding non-unique files.
The script should take one .csv file with data: name of files, LastWriteTime and Length. Then I try to make another .csv based on that one, which will contain only those objects whose combination of Name+Length+LastWriteTime is NON-unique.
I tried following script which uses $csvfile
containing files list:
$csvdata = Import-Csv -Path $csvfile -Delimiter '|'
$csvdata |
Group-Object -Property Name, LastWriteTime, Length |
Where-Object -FilterScript { $_.Count -gt 1 } |
Select-Object -ExpandProperty Group -Unique |
Export-Csv $csvfile2 -Delimiter '|' -NoTypeInformation -Encoding Unicode
$csvfile
was created by:
{
Get-ChildItem -Path $mainFolderPath -Recurse -File |
Sort-Object $sortMode |
Select-Object Name, LastWriteTime, Length, Directory |
Export-Csv $csvfile -Delimiter '|' -NoTypeInformation -Encoding Unicode
}
(Get-Content $csvfile) |
ForEach-Object { $_ -replace '"' } |
Out-File $csvfile -Encoding Unicode
But somehow in another $csvfile2
there is only the one (first) non-unique record. Does anyone have an idea how to improve it so it can list all non-unique records?
powershell csv unique get-childitem
Select-Object -ExpandProperty Group -Unique
->Select-Object -ExpandProperty Group | Select-Object -Property * -Unique
– Ansgar Wiechers
Jan 20 at 0:04
Yay it work! Thank you I didnt consider using Select-Object to times. Good lesson for me!
– Maks
Jan 20 at 0:15
add a comment |
I'm trying to do script for finding non-unique files.
The script should take one .csv file with data: name of files, LastWriteTime and Length. Then I try to make another .csv based on that one, which will contain only those objects whose combination of Name+Length+LastWriteTime is NON-unique.
I tried following script which uses $csvfile
containing files list:
$csvdata = Import-Csv -Path $csvfile -Delimiter '|'
$csvdata |
Group-Object -Property Name, LastWriteTime, Length |
Where-Object -FilterScript { $_.Count -gt 1 } |
Select-Object -ExpandProperty Group -Unique |
Export-Csv $csvfile2 -Delimiter '|' -NoTypeInformation -Encoding Unicode
$csvfile
was created by:
{
Get-ChildItem -Path $mainFolderPath -Recurse -File |
Sort-Object $sortMode |
Select-Object Name, LastWriteTime, Length, Directory |
Export-Csv $csvfile -Delimiter '|' -NoTypeInformation -Encoding Unicode
}
(Get-Content $csvfile) |
ForEach-Object { $_ -replace '"' } |
Out-File $csvfile -Encoding Unicode
But somehow in another $csvfile2
there is only the one (first) non-unique record. Does anyone have an idea how to improve it so it can list all non-unique records?
powershell csv unique get-childitem
I'm trying to do script for finding non-unique files.
The script should take one .csv file with data: name of files, LastWriteTime and Length. Then I try to make another .csv based on that one, which will contain only those objects whose combination of Name+Length+LastWriteTime is NON-unique.
I tried following script which uses $csvfile
containing files list:
$csvdata = Import-Csv -Path $csvfile -Delimiter '|'
$csvdata |
Group-Object -Property Name, LastWriteTime, Length |
Where-Object -FilterScript { $_.Count -gt 1 } |
Select-Object -ExpandProperty Group -Unique |
Export-Csv $csvfile2 -Delimiter '|' -NoTypeInformation -Encoding Unicode
$csvfile
was created by:
{
Get-ChildItem -Path $mainFolderPath -Recurse -File |
Sort-Object $sortMode |
Select-Object Name, LastWriteTime, Length, Directory |
Export-Csv $csvfile -Delimiter '|' -NoTypeInformation -Encoding Unicode
}
(Get-Content $csvfile) |
ForEach-Object { $_ -replace '"' } |
Out-File $csvfile -Encoding Unicode
But somehow in another $csvfile2
there is only the one (first) non-unique record. Does anyone have an idea how to improve it so it can list all non-unique records?
powershell csv unique get-childitem
powershell csv unique get-childitem
edited Jan 20 at 10:35
Ansgar Wiechers
143k13129187
143k13129187
asked Jan 19 at 23:59
MaksMaks
103
103
Select-Object -ExpandProperty Group -Unique
->Select-Object -ExpandProperty Group | Select-Object -Property * -Unique
– Ansgar Wiechers
Jan 20 at 0:04
Yay it work! Thank you I didnt consider using Select-Object to times. Good lesson for me!
– Maks
Jan 20 at 0:15
add a comment |
Select-Object -ExpandProperty Group -Unique
->Select-Object -ExpandProperty Group | Select-Object -Property * -Unique
– Ansgar Wiechers
Jan 20 at 0:04
Yay it work! Thank you I didnt consider using Select-Object to times. Good lesson for me!
– Maks
Jan 20 at 0:15
Select-Object -ExpandProperty Group -Unique
-> Select-Object -ExpandProperty Group | Select-Object -Property * -Unique
– Ansgar Wiechers
Jan 20 at 0:04
Select-Object -ExpandProperty Group -Unique
-> Select-Object -ExpandProperty Group | Select-Object -Property * -Unique
– Ansgar Wiechers
Jan 20 at 0:04
Yay it work! Thank you I didnt consider using Select-Object to times. Good lesson for me!
– Maks
Jan 20 at 0:15
Yay it work! Thank you I didnt consider using Select-Object to times. Good lesson for me!
– Maks
Jan 20 at 0:15
add a comment |
1 Answer
1
active
oldest
votes
You need to use -Property * -Unique
to get a list of unique objects. However, you cannot use -Property
and -ExpandProperty
at the same time here, because you want the latter parameter to apply to the input objects ($_
) and the former parameter to apply to an already expanded property of those input objects ($_.Group
).
Expand the property Group
first, then select the unique objects:
... |
Select-Object -ExpandProperty Group |
Select-Object -Property * -Unique |
...
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54272418%2fgetting-only-a-repeating-files-from-directory-and-subdirectories%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You need to use -Property * -Unique
to get a list of unique objects. However, you cannot use -Property
and -ExpandProperty
at the same time here, because you want the latter parameter to apply to the input objects ($_
) and the former parameter to apply to an already expanded property of those input objects ($_.Group
).
Expand the property Group
first, then select the unique objects:
... |
Select-Object -ExpandProperty Group |
Select-Object -Property * -Unique |
...
add a comment |
You need to use -Property * -Unique
to get a list of unique objects. However, you cannot use -Property
and -ExpandProperty
at the same time here, because you want the latter parameter to apply to the input objects ($_
) and the former parameter to apply to an already expanded property of those input objects ($_.Group
).
Expand the property Group
first, then select the unique objects:
... |
Select-Object -ExpandProperty Group |
Select-Object -Property * -Unique |
...
add a comment |
You need to use -Property * -Unique
to get a list of unique objects. However, you cannot use -Property
and -ExpandProperty
at the same time here, because you want the latter parameter to apply to the input objects ($_
) and the former parameter to apply to an already expanded property of those input objects ($_.Group
).
Expand the property Group
first, then select the unique objects:
... |
Select-Object -ExpandProperty Group |
Select-Object -Property * -Unique |
...
You need to use -Property * -Unique
to get a list of unique objects. However, you cannot use -Property
and -ExpandProperty
at the same time here, because you want the latter parameter to apply to the input objects ($_
) and the former parameter to apply to an already expanded property of those input objects ($_.Group
).
Expand the property Group
first, then select the unique objects:
... |
Select-Object -ExpandProperty Group |
Select-Object -Property * -Unique |
...
edited Jan 20 at 10:52
answered Jan 20 at 10:33
Ansgar WiechersAnsgar Wiechers
143k13129187
143k13129187
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54272418%2fgetting-only-a-repeating-files-from-directory-and-subdirectories%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Select-Object -ExpandProperty Group -Unique
->Select-Object -ExpandProperty Group | Select-Object -Property * -Unique
– Ansgar Wiechers
Jan 20 at 0:04
Yay it work! Thank you I didnt consider using Select-Object to times. Good lesson for me!
– Maks
Jan 20 at 0:15