2016-05-15 40 views
0

我有一行一行一行地存儲在文本文件中的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 

是隻要我有我的周圍的頭,我不知道如何繼續進行,以顯示過濾後的數據通過對比它瓦特ith $inclusions變量。

此外,我想刪除文件,如果他們匹配包含文本文件中的名稱。因此,如果名稱與包含列表中的名稱相同,那麼這是最終目標遍歷文件夾比較中的所有文件,如果是,則刪除這些特定文件。

任何幫助,將不勝感激。

非常感謝

回答

0

使用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" 
} 
+0

非常感謝Mathias。它像一個魅力。感謝你的幫助 :) – Pynewbie

相關問題