2016-04-04 57 views
1

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

$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 
+1

想要重新实现robocopy功能只复制已更改的文件吗? – majkinetor

回答

0

使用​​,如果你想要做的事之后(如复制更新一到目的地)存储他们在一个变量,并创建相应的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) 
+0

“测量对象”的好例子,但这种方法极易出错。 'source'可以有1000个1MB的文件,'WMIS'可以有10个100MB的文件,现在看起来它们是一样的 –

+1

^同意,你可以遍历并创建一个包含文件名/大小的散列表并比较它们如果你愿意的话。 – nkasco