从目录和子目录中仅获取重复文件

最高

我正在尝试查找非唯一文件的脚本。

该脚本应使用一个包含数据的.csv文件:文件名,LastWriteTime和Length。然后,我尝试基于该.csv创建另一个.csv,该.csv仅包含Name + Length + LastWriteTime组合为非唯一的那些对象。

我尝试使用$csvfile包含文件列表的以下脚本

$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 由以下人员创建:

{
    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

但是不知何故,$csvfile2只有一个(第一个)非唯一记录。有谁知道如何改进它,以便可以列出所有非唯一记录?

安斯加·威彻斯(Ansgar Wiechers)

您需要使用-Property * -Unique获取唯一对象的列表。但是,您不能在此处同时使用-Property-ExpandProperty,因为您希望将后一个参数应用于输入对象($_),并将前一个参数应用于这些输入对象的已经扩展的属性($_.Group)。

首先展开属性Group,然后选择唯一的对象:

... |
Select-Object -ExpandProperty Group |
Select-Object -Property * -Unique |
...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

chmod 仅当前目录中的文件,而不是子目录和主目录中的文件

如何获取文件的父目录和子目录

如何从文件中获取子目录列表,然后在目录中创建这些子目录?

获取目录及其子目录中的文件数

如何从Java中的路径获取目录和子目录中的文件数?

计算目录和子目录中的文件数

对目录和子目录中的每个文件执行操作

同时处理目录和子目录中的文件

通过目录和子目录中的文件的脚本

Linux shell 选择目录和子目录中的文件

每个目录和子目录中的可疑 .htaccess 文件

在目录和子目录中搜索丢失的文件

在目录和所有子目录中获取Java文件

子目录中的文件?

从目录中获取子目录

如何使用Java的目录流仅在目录中而不是其他子目录中获取文件/子目录

仅使用python查找子目录中的文件

从某些子目录中删除仅匹配的文件

从目录和所有子目录获取所有文件,但不包含一个子目录

如何获取子目录中包含特定目录字符串的子目录中python文件的路径

获取用于伪造的子目录中的文件列表

Visual Studio 2015和Gulp:获取所有子目录中的所有文件

主机文件中的子目录和子域

仅同步某些目录和其中的某些子目录

Linux-仅打印目录和子目录的文件名

如何仅列出删除目录和子目录的文件名

获取所有TXT文件列表中的目录和子目录,并把它添加到列表

使用纯c ++(跨平台)获取特定路径中的所有目录/文件和子目录

如何遍历子目录和子目录中的文件,然后在 bash 中打印文件名