使用PowerShell进行搜索

使用PowerShell进行搜索,powershell,Powershell,我正在尝试编写一个PowerShell脚本,用于搜索同名的文件和文件夹。我能够搜索并找到文件夹,我的问题是,如何在不使用文件扩展名作为搜索的一部分的情况下,将搜索文件与下面给出的代码合并到同一行中 Get-WmiObject win32_logicalDisk -Filter "DriveType = 3" | Select-Object DeviceID | ForEach-Object {Get-ChildItem ($_.DeviceID + "\") -include "A

我正在尝试编写一个
PowerShell
脚本,用于搜索同名的文件和文件夹。我能够搜索并找到文件夹,我的问题是,如何在不使用文件扩展名作为搜索的一部分的情况下,将搜索文件与下面给出的代码合并到同一行中

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

你可以试试这个。如果不想向下导航子文件夹,只需搜索找到的每个驱动器的根目录,请删除
-Recurse

Get-WmiObject Win32_LogicalDisk -Filter DriveType = "3" |
    Select-Object DeviceID | ForEach-Object {
        Get-ChildItem ($_.DeviceID + '\') -Recurse | Where-Object {
            $_.Name -Match "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.*'} 

对不起,我仍然不确定你到底想搜索什么。您能提供一些示例吗?这将匹配名称包含
AA
作为子字符串的任何文件或文件夹,这可能太过宽松了。您好,Mkement0这非常有效。非常感谢您的投入:D@EVO请确认您选择了正确的答案,并根据对您有用的内容进行了评论。我应用了此代码。Get-WmiObject win32_logicalDisk-Filter DriveType=“3”|选择对象设备ID | ForEach对象{Get childitem($\设备ID+'\'))-recurse |?{$\设备名称-匹配“AA”}它与我所寻找的完美配合。好的,但是请考虑“MKLMunt0回答”,因为它可能比我的评论要便宜。如果文件没有扩展名,我假定它不会以这种方式找到。@ Savies:AudioA< <代码> >参数应该与文件/文件夹名称匹配,并完全命名为<代码> AA AA<代码>;
'AA.*'
参数应包含具有相同文件名根目录但具有(任意)扩展名的文件/文件夹名称。@Mklement0,很抱歉我对该网站还不太熟悉。谢谢你的回答,它工作得很好@埃沃:不用担心,我们都是新来的;很高兴听到它对你有用。