如何使用Get-ChildItem从文件夹A中选择不在文件夹B中的文件

时间:2016-06-27 08:37:50

标签: powershell get-childitem

我的问题是如何打印文件夹A中文件的名称,文件夹B中不存在不同的文件扩展名。

文件夹A中的文件具有.xlsx文件扩展名,文件夹B中的文件具有.txt文件扩展名。

这是一个直观的表示:

enter image description here

文件夹A包含3个.xlsx文件。

enter image description here

文件夹B有2个.txt文件。

我想要的输出是打印GHI.xlsx文件名,因为文件夹B中不存在。

以下是我目前正在做的事情:

#Get list of files
$Files = Get-ChildItem '\C:\My Documents\Folder A\*.xlsm' `
    -Exclude 'C:\My Documents\Folder B\*.txt'

foreach($File in $Files) {
    $Filename = $File.BaseName
    echo  $Filename
}

1 个答案:

答案 0 :(得分:1)

您可以使用Where-Object cmdlet

过滤BaseName属性
$folderA = Get-ChildItem 'C:\My Documents\Folder A' -File
$folderB = Get-ChildItem 'C:\My Documents\Folder B' -File | 
   select -ExpandProperty BaseName)

$folderA | Where-Object BaseName -NotIn $folderB | 
    select -ExpandProperty Name