大家好,,
在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“文件夹?
发布于 2019-03-22 03:29:00
跟随你的方法,并且只在你能做的方向上:
$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
发布于 2019-03-22 02:32:26
尝尝这个
$DirSource="C:\temp\Folder1"
$DirDestination="C:\temp\Folder2"
Get-ChildItem $DirSource -directory -Recurse | %{New-Item $_.FullName.Replace($DirSource, $DirDestination) -ItemType Directory -Force}
https://stackoverflow.com/questions/55286925
复制相似问题