powershell - 比较来自不同目录的文件夹名称并将两个结果输出到 csv - PowerShell
问题描述
我有两个目录“A”和“B”。“A”中有文件夹 abc,def,ghi,jkl,“B”中有 ghi,jkl,mno。我需要在 Csv 中如下输出:-
我是 PowerShell 的新手,所以在谷歌上搜索了文件夹比较并写了下面的脚本
$SourceFolder = "A"
$ArchiveFolder = "B"
$Folder1 = Get-childitem $SourceFolder
$Folder2 = Get-childitem $ArchiveFolder
Compare-Object $Folder1 $Folder2 -PassThru
但是上面的代码只是给出了差异,而不是上面需要的格式。
解决方案
如果我理解这个问题,这可能是这样做的一种方法:
$SourceFolder = "X:\A"
$ArchiveFolder = "X:\B"
$Folder1 = Get-ChildItem -Path $SourceFolder -Directory
$Folder2 = Get-ChildItem -Path $ArchiveFolder -Directory
$result = Compare-Object -ReferenceObject $Folder1 -DifferenceObject $Folder2 -Property Name -IncludeEqual |
Sort-Object 'SideIndicator' | ForEach-Object {
$folder = $_.Name
switch ($_.SideIndicator) {
'<=' { $a = $folder; $b = $null; $m = 'N' }
'==' { $a = $folder; $b = $folder; $m = 'Y' }
'=>' { $a = $null; $b = $folder; $m = 'N' }
}
[PsCustomObject]@{'A'= $a ; 'B' = $b; 'Matching' = $m }
}
#output on screen
$result
# output to CSV file
$result | Export-Csv -Path 'X:\TheOutput.csv' -NoTypeInformation
屏幕输出:
AB匹配 - - -------- ABC N 定义 N 吉吉Y jkl jkl Y mno N
推荐阅读
- ios - 在标记顶部显示自定义视图
- sql - 如何使用 VBA MS Access 在表中插入变量
- haskell - 在内存中保存状态 [Haskell 服务器]
- docker - 由于 java.net.UnknownHostException: kubernetes.default.svc 在单节点 kubernetes 集群上的 spark-examples 作业失败
- ruby-on-rails - 如何在 Savon 中编写中间件?
- c# - 在 log4net 的文件名中附加日志信息
- flutter - 安装在设备/模拟器上的发布 apk 时 Flutter 崩溃
- angular - 我正在尝试在产品列表中应用 ng-animate 动画/过渡,但我陷入了困境,任何帮助都会得到帮助
- android - RecyclerView - 创建项目分隔线时移动布局
- java - 如何将 GMT +09:00 转换为当地时间?