gpt4 book ai didi

windows - 如何在 PowerShell 中比较两个文件夹并创建缺失的子文件夹

转载 作者:可可西里 更新时间:2023-11-01 11:23:14 24 4
gpt4 key购买 nike

大家好,

在 PowerShell 中,我想比较两个文件夹; [Folder1] 和 [Folder2],以及 [Folder1] 中缺少的每个文件夹,在 [Folder2] 中创建它。我该怎么做?

例如:

> tree .
├───Folder1
│ ├───A0
│ ├───A1
│ ├───B0
│ └───B1
└───Folder2
├───A0
├───A1
└───B1

这是我到目前为止尝试过的:

我已经分配了我的源文件夹和目标文件夹,并检索了每个文件夹的列表,如下所示:

$Source = "C:\Temp\Folder1"
$Destination = "C:\Temp\Folder2"
$SrcObj = Get-ChildItem $Source
$DestObj = Get-ChildItem $Destination

然后我比较了这两个文件夹,如下所示:

Compare-Object -ReferenceObject $SrcObj -DifferenceObject $DestObj

结果如下:

InputObject  SideIndicator
----------- -------------
B1 <=

鉴于上面的输出,我认为我可以将 Compare-Object 命令的输出直接传送到 New-Item cmdlet,但这似乎对我不起作用。

我怎样才能实现我的目标 - 即创建目标目录中缺少的“B1”文件夹?

最佳答案

按照你的方法,只朝着目的地的方向你可以这样做:

$Source      = "C:\Temp\Folder1"
$Destination = "C:\Temp\Folder2"
$SrcObj = Get-ChildItem $Source -Dir
$DestObj = Get-ChildItem $Destination -Dir

Compare-Object -Ref $SrcObj -Diff $DestObj -Property Name |
Where-Object SideIndicator -eq '<=' |
New-Item -ItemType Directory -Path {Join-Path $Destination $_.Name} -WhatIf

如果输出看起来没问题,删除尾随的 -WhatIf

关于windows - 如何在 PowerShell 中比较两个文件夹并创建缺失的子文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55286925/

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