Powershell文件比较

时间:2018-04-01 17:07:55

标签: powershell

我正在尝试比较两个目录以查找目录之间的任何差异(额外文件,丢失文件,额外目录等)。我在下面使用的脚本生成输出,但我想让脚本执行的操作是打印出任何额外文件或额外目录的完整路径,而不仅仅是文件或目录本身。

所以在这里,Test1文件夹有两个额外的目录和Test目录中没有的两个额外文件。因此,在输出中,我希望看到完整路径,而不仅仅是目录和文件的名称。

当前输出 -

ExtraDir1

ExtraDir2

额外文件1

额外文件2

期望的输出 -

/用户/ JB /文档/ PowerShell的/测试1 / ExtraDir1

/用户/ JB /文档/ PowerShell的/测试1 / ExtraDir2

/用户/ JB /文档/ PowerShell的/ ExtraFile1

/用户/ JB /文档/ PowerShell的/测试1 / ExtraDir2 / ExtraFile2

$Source = Get-ChildItem -Recurse -path /Users/jb/Documents/PowerShell/Test
$Target = Get-ChildItem -Recurse -path /Users/jb/Documents/PowerShell/Test1

Compare-Object -ReferenceObject $Source -DifferenceObject $Target | %{
if ($_.SideIndicator -eq "=>") {"$($_.InputObject) "}
} >> ./Results/ExtraDir.txt

1 个答案:

答案 0 :(得分:1)

使用Get-ChildItem的{​​{3}}输入对象获取完整路径:

Compare-Object -ReferenceObject $Source -DifferenceObject $Target | %{
  if ($_.SideIndicator -eq "=>") {"$($_.InputObject.FullName) "}
} >> ./Results/ExtraDir.txt