Я пытаюсь создать функцию, которая будет показывать мне все пути, в которых находится определенное имя файла. Функция будет принимать один параметр, который является именем файла.
Результатом может быть либо список всех путей, либо сообщение о том, что в системе такого файла нет.
Я новичок в Powershell, и пока не получаю синтаксис.
Я пробовал это:
Get-ChildItem -Path -Include notepad.exe
Но это бросило сообщение об ошибке. Я сейчас пытаюсь:
$i="notepad.exe"
Foreach ($i in Get-ChildItem c:\ -Recurse){echo -Path}
Начал, что сейчас, он все еще работает, не знаю, что произойдет, на самом деле.
РЕДАКТИРОВАТЬ: echo'd огромное количество строк, которые просто говорят "-Path" ...
Кто-нибудь может помочь с этой проблемой? Кстати, я использую Powershell 1.0.
Итак, чтобы объяснить, что я хочу видеть при выполнении этой команды, вот пример того, что я ожидаю после поиска * .txt:
C: /foo.txt
C: /A/foobar.txt
C: /A1/foo.txt
И так далее, перечисляя путь ко всем файлам .txt на моем жестком диске. Только пути, по одному на строку, дополнительная информация не требуется.
EDIT2:
Я сделал это. Я оставлю этот вопрос тем, кто ищет это в будущем.
Я использовал следующую функцию (этот конкретный пример предоставит вам список всех .zip-файлов на вашем жестком диске, отредактируйте, где необходимо):
Get-ChildItem -Path c:\ -Include "*.zip" -Recurse -Force -Name > c:\listOfPaths.txt
Это создало файл с именем listOfPaths.txt в моей папке C: \, и он содержал список всех вхождений любого файла, заканчивающегося .zip во всех подпапках моего жесткого диска.
Бит "c: \" не упоминается, но я не против.
EDIT3:
спасибо capar за более полную версию.
Вот код capar (или как я его получил, поскольку Get-Children не работает в 1.0)
Get-ChildItem -Path c:\ -Recurse *.txt | Select-Object -Property FullName