【问题标题】:Powershell script to recursively search and find file size differences用于递归搜索和查找文件大小差异的 Powershell 脚本
【发布时间】:2016-04-04 18:13:33
【问题描述】:

我有代码可以确定文件/文件夹是否存在于不同的位置,基本上比较两个文件夹。我似乎无法在网上找到任何东西来搜索文件大小差异。我的代码如下,我只需要有关如何递归搜索和查找文件大小差异的帮助。

$source = Get-ChildItem -Recurse -path "C:\Users\Cl\Desktop\Source"
$compare = Get-ChildItem -Recurse -path "C:\Users\Cl\Desktop\WMIS"
Compare-Object -ReferenceObject $source -DifferenceObject $compare -PassThru 

【问题讨论】:

  • 您想重新实现 robocopy 功能以仅复制更改的文件吗?

标签: powershell recursion compareobject


【解决方案1】:

使用measure-object 比较文件大小,然后如果您想在之后做一些事情(例如将更新的文件复制到目标)将它们存储在一个变量中并相应地创建if 语句。您可以使用get-member 查看可以使用的属性。我认为这为您提供了以字节为单位的大小,因此将结果除以“1GB”。试试这样的:

$source = gci "c:\users\c1\desktop\source" -recurse | Measure-Object -property length -sum
#$source = ($source.sum / 1GB)

$compare = gci "c:\users\c1\desktop\WMIS" -recurse | Measure-Object -property length -sum
#$compare= ($compare.sum / 1GB)

【讨论】:

  • Measure-Object 的好例子,但这种方法很容易出错。 source 可能有 1000 个 1MB 文件,WMIS 可能有 10 个 100MB 文件,现在看起来它们是一样的
  • ^ 同意,您可以循环并使用文件名/大小创建一个哈希表,如果您愿意,可以这样比较它们。
猜你喜欢
  • 1970-01-01
  • 2016-08-21
  • 2018-04-10
  • 1970-01-01
  • 2018-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多