2016-04-22 65 views
-1

我想寫一個PowerShell腳本,將兩個文件文件夾同名搜索。我可以搜索並找到文件夾,我的問題是,如何將搜索文件與下面給出的代碼放在同一行中,而不使用文件的擴展名作爲搜索的一部分。搜索使用PowerShell

Get-WmiObject win32_logicalDisk -Filter "DriveType = 3" | 
    Select-Object DeviceID | 
    ForEach-Object {Get-ChildItem ($_.DeviceID + "\") -include "AA AA" -Recurse} 
+1

對不起,林仍然不知道究竟你要搜索的內容。你能提供一些例子嗎? –

回答

1

我假設你正在尋找的文件/文件夾無論是從字面上AA AA命名或有AA AA爲文件名,其次是任何文件擴展名(例如,AA AA.txt)。

如果是的話,試試這個:

Get-WmiObject win32_logicalDisk -Filter "DriveType = 3" | 
    Select-Object DeviceID | 
    ForEach-Object {Get-ChildItem ($_.DeviceID + "\") -Recurse -Include 'AA AA', 'AA AA.*'} 
+0

如果文件沒有擴展名,我認爲它不會以這種方式找到? – ssaviers

+0

@ssaviers:「AA AA」參數應該與文件/文件夾名稱完全匹配並完全命名爲「AA AA」; 'AA AA。*'參數應該覆蓋具有相同文件名_root_但具有(任何)擴展名的文件/文件夾名稱。 – mklement0

+0

@ Mklement0,對於誤解我很抱歉,我現在還沒有用到這個網站。謝謝你的答案,它完美的工作! – EVO

1

你可以試試這個。如果您不想停止導航子文件夾並僅搜索找到的每個驅動器的根目錄,請刪除-Recurse

Get-WmiObject Win32_LogicalDisk -Filter DriveType = "3" | 
    Select-Object DeviceID | ForEach-Object { 
     Get-ChildItem ($_.DeviceID + '\') -Recurse | Where-Object { 
      $_.Name -Match "AA AA" 
     } 
    } 
+0

這將匹配其名稱包含「AA AA」作爲_substring_的任何文件或文件夾,這可能過於寬容。 – mklement0

+0

你好Mkement0這個完美的作品。非常感謝您的輸入:D – EVO

+0

@EVO請確認您選擇並評論正確答案,具體取決於您的工作。 – ssaviers