包含特定名称的文件夹中的Power Shell显示文件

Pynewbie

我有一个pdf文件名列表,这些文件已逐行存储在文本文件中,如下所示。

322223491.pdf
322223492.pdf
322223493.pdf

文本文件的名称为inclusions.txt

我将其传递给变量:

$inclusion = get-content .\inclusions.txt

现在我要检查并显示文件夹(C:\users\xyz)中是否包含$inclusions变量中传递的文件,我该怎么做?

PS C:\users\xyz> Get-childitem 

命令显示以下内容

Mode      LastWritetime  Name

Name列是我感兴趣的属性,在这里我想比较我的包含列表,如果在列表中找到它,那么我想在Powershell终端中显示它们

PS C:\users\xyz> Get-childitem | Select-Object -Property Name

据我所知,我不知道如何通过将其与$inclusions变量进行比较来进一步显示过滤后的数据

此外,如果它们与包含文本文件中的名称匹配,我想删除这些文件。因此,如果名称与包含列表中的名称相同,则遍历该文件夹中的所有文件的最终目标就是进行比较,如果是,则删除这些特定文件。

任何帮助,将不胜感激。

非常感谢

Mathias R. Jessen

使用Where-Object到过滤器上的条件:

Get-ChildItem |Where-Object { $inclusion -contains $_.Name }

如果您只对文件名本身感兴趣,可使用Select-Object -ExpandProperty来仅获取每个文件的名称:

Get-ChildItem |Where-Object { $inclusion -contains $_.Name } |Select-Object -ExpandProperty Name

如果要基于某个文件夹是否包含中的一个或多个文件来执行操作$inclusion,请使用以下if语句:

$folderPath = "C:\users\xyz\folder\of\interest"
if(@(Get-ChildItem $folderPath |Where-Object {$inclusion -contains $_.Name}).Count -ge 1)
{
    Write-Host "Folder $folderPath contains at least one of the inclusion files"
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章