2016-04-22 67 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