2016-04-04 90 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