我试图找到使用
Windows Powershell的两个文件夹结构的内容的差异.我使用以下方法来确保文件名相同,但此方法不会告诉我文件的内容是否相同:
$firstFolder = Get-ChildItem -Recurse folder1 $secondFolder = Get-ChildItem -Recurse folder2 Compare-Object -ReferenceObject $firstFolder -DifferenceObject $secondFolder
this ServerFault question中描述的技术适用于区分单个文件,但这些文件夹包含数百个不同深度的文件.
如果你想将比较包装成循环,我会采取以下方法:
原文链接:https://www.f2er.com/windows/370084.html$folder1 = "C:\Users\jscott" $folder2 = "C:\Users\public" # Get all files under $folder1,filter out directories $firstFolder = Get-ChildItem -Recurse $folder1 | Where-Object { -not $_.PsIsContainer } $firstFolder | ForEach-Object { # Check if the file,from $folder1,exists with the same path under $folder2 If ( Test-Path ( $_.FullName.Replace($folder1,$folder2) ) ) { # Compare the contents of the two files... If ( Compare-Object (Get-Content $_.FullName) (Get-Content $_.FullName.Replace($folder1,$folder2) ) ) { # List the paths of the files containing diffs $_.FullName $_.FullName.Replace($folder1,$folder2) } } }
请注意,这将忽略$folder1和$folder2中不存在的文件.