gpt4 book ai didi

file - 使用PowerShell比较文件夹和内容

转载 作者:行者123 更新时间:2023-12-03 10:09:12 25 4
gpt4 key购买 nike

我有两个带有xml文件的文件夹。与另一个文件夹(folder1)相比,一个文件夹(folder2)包含更新的和新的xml文件。我需要知道与folder1相比,folder2中的哪些文件是新的/更新的,并将它们复制到第三个文件夹(folder3)。在PowerShell中完成此操作的最佳方法是什么?

最佳答案

好的,我不会为您编写整个代码(这样做有什么乐趣?),但我会让您入门。

首先,有两种方法可以进行内容比较。懒惰/几乎正确的方法,它比较文件的长度;以及准确但涉及更多的方式,即比较每个文件内容的哈希值。

为了简单起见,让我们以简单的方式比较文件大小。

基本上,您需要两个代表源文件夹和目标文件夹的对象:

$Folder1 = Get-childitem "C:\Folder1"
$Folder2 = Get-childitem "C:\Folder2"

然后,您可以使用 Compare-Object查看哪些项目不同...
Compare-Object $Folder1 $Folder2 -Property Name, Length
通过仅比较每个集合中文件对象的名称和长度,它将为您列出所有不同的内容。

您可以将其通过管道传递给 Where-Object过滤器,以选择左侧不同的内容...
Compare-Object $Folder1 $Folder2 -Property Name, Length | Where-Object {$_.SideIndicator -eq "<="}
然后将其通过管道传递到 ForEach-Object以复制到所需位置:
Compare-Object $Folder1 $Folder2 -Property Name, Length  | Where-Object {$_.SideIndicator -eq "<="} | ForEach-Object {
Copy-Item "C:\Folder1\$($_.name)" -Destination "C:\Folder3" -Force
}

关于file - 使用PowerShell比较文件夹和内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6526441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com