2016-04-22 5 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 AAAA 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

Hello Mkement0 Это прекрасно работает. Большое вам спасибо за ввод: D – EVO

+0

@EVO Пожалуйста, подтвердите, что вы выбрали и прокомментировали правильный ответ в зависимости от того, что сработало для вас. – ssaviers

Смежные вопросы