Получить powershell для отображения всех путей, где определенный файл можно найти на диске. Powershell где находится


Windows PowerShell

Дополнительную гибкость командной строке придает Windows PowerShell – полнофункциональная командная оболочка, в которую помимо стандартных утилит командной строки включены встроенные cmdlet-команды и возможности программирования. По умолчанию PowerShell не устанавливается.

Чтобы установить ее, выполните следующие действия:

  1. Щелкните кнопку Диспетчер сервера (Server Manager) на панели быстрого запуска или щелкните кнопку Пуск (Start) и выберите команды Администрирование (Administrative Tools) и Диспетчер сервера (Server Manager).
  2. В диспетчере сервера выберите узел Компоненты (Features) и щелкните ссылку Добавить компоненты (Add Features).
  3. Пролистайте список компонентов и выберите Windows PowerShell. Щелкните Далее (Next) и Установить (Install).

Оболочка PowerShell из комплекта поставки может быть не самой новой. Проверьте центр загрузки на сайте Майкрософт па предмет наличия более новой версии. Установив PowerShell, вы обнаружите команду для ее запуска в меню Пуск (Start).

Если вы хотите вызвать PowerShell из командной строки, помните, что соответствующий исполняемый файл (powershell.exe) находится в папке %SystemRoot%\System32\WindowsPowerShell\Версия, где Версия – номер установленной версии PowerShell, например, v.1.0 или v.1.1.

Запустив PowerShell, введите в командной строке имя cmdlet-команды, и она запустится, как любая команда. Команды cmdlet можно также запускать из сценариев. Названия cmdlet-команд состоят из пар «глагол-существительное». Глагол говорит о действии cmdlet-команды, а существительное указывает на объект этого действия. Например, команда get-variable возвращает имена и значения переменных среды Windows PowerShell.

Обычно в именах cmdlet-команд используются следующие глаголы:

  • Get Запрашивает специфический объект или подмножество типа объекта, например, выбранный почтовый ящик или всех пользователей почтовых ящиков.
  • Set Модифицирует параметры объекта.
  • Enable Включает параметр.
  • Disable Выключает параметр.
  • New Создает новый экземпляр объекта, например, почтового ящика.
  • Remove Удаляет экземпляр объекта.

Примеры команд

Чтобы просмотреть полный список cmdlet-команд, введите в командной строке PowerShell команду:

Чтобы получить справку по конкретной команде, введите help и имя команды, например,

У cmdlet-команд есть настраиваемые псевдонимы, которые можно использовать для запуска cmdlet-команд. Чтобы просмотреть список псевдонимов, введите в командной строке PowerShell

С помощью следующей команды вы создадите псевдоним для любой команды:

new-item -path alias: Псевдоним -value: Полный Путь Команды

new-item -path alias: Псевдоним -value: Полный Путь Команды

Здесь Псевдоним – имя создаваемого псевдонима, а ПолныйПутьКоманды – полный путь к команде. Например:

new-item -path alias:sm -value:c:\windows\system32\compmgmtlauncher.exe

new-item -path alias:sm -value:c:\windows\system32\compmgmtlauncher.exe

В этом примере создается псевдоним sm для запуска диспетчера сервера. Чтобы использовать этот псевдоним при работе с Windows PowerShell, просто введите в командной строке sm и нажмите Enter.

logi.cc

Что такое PowerShell?

Многие пользователи знают о командной строке, но очень немногие слышали о Windows PowerShell. В некотором смысле PowerShell является инструментом, который призван заменить командную строку и обеспечить более мощные возможности для управления операционной системой Windows. В этой статье мы попытаемся объяснить доступно, что представляет собой этот инструмент, почему он настолько мощный и кто, как правило, использует его чаще всего.

Что такое PowerShell?

Для лучшего понимания сначала мы должны понять, что такое оболочка. В информатике оболочкой называют пользовательский интерфейс, который обеспечивает доступ к различным службам операционной системы. Оболочка может быть на основе командной строки или может включать в себя графический пользовательский интерфейс (GUI).

Windows PowerShell является оболочкой, разработанной Microsoft для целей автоматизации задач и управления конфигурацией. Эта мощная оболочка основана на фреймворке .NET и включает в себя оболочку командной строки и язык сценариев.

Поверх стандартной оболочки командной строки также может быть Windows PowerShell ISE. ISE выступает как интегрированная среда сценариев – это графический пользовательский интерфейс, который позволяет создавать различные сценарии без необходимости вводить все команды в командной строке.

Первая версия PowerShell была выпущена в ноябре 2006 года для Windows XP, Windows Server 2003 и Windows Vista. Последней является версия 4.0, которая была выпущена в октябре 2013 г. Она идет по умолчанию с Windows 8.1 и Windows Server 2012 R2.

Что можно сделать с помощью PowerShell?

Майкрософт разработала Windows PowerShell в качестве инструмента, который помогает автоматизировать и быстро решать многие утомительные задачи администрирования. Например, вы можете использовать PowerShell, чтобы увидеть все USB-устройства, установленные на одном или нескольких компьютерах в сети, или вы можете настроить требующую много времени задачу на выполнение в фоновом режиме, пока вы делаете другую работу. Можно также определить и завершить процессы, которые не отвечают, или отфильтровать конкретную информацию о компьютерах в сети и экспортировать ее в формате HTML.

Возможности PowerShell позволяют упростить и автоматизировать трудоемкие и повторяющиеся задачи путем создания сценариев и объединения нескольких команд вместе.

Если вы являетесь администратором сети, вы обнаружите, что PowerShell очень полезен при работе с Active Directory. Учитывая, что инструмент содержит сотни настраиваемых команд, которые называются командлеты, вероятность того, что PowerShell может помочь вам стать более продуктивным, очень высока.

Как запустить PowerShell в Windows 8.1?

Если у вас нет плитки PowerShell на начальном экране или ярлыка на рабочем столе, тогда вы можете открыть его с помощью поиска – это один из самых простых способов. Нажмите + Q, введите «powershell», а затем нажмите Enter.

Также вы можете открыть PowerShell в разделе «Приложения» на начальном экране: перейдите на начальный экран и переместите курсор в левый нижний угол, чуть ниже последней плитки в первой колонке. Нажмите на значок со стрелкой, указывающей вниз. Затем нажмите на иконку PowerShell в разделе «Служебные».

Чтобы открыть PowerShell с помощью диалога «Выполнить», нажмите клавиши + R, введите «powershell» и нажмите Enter.

Как запустить PowerShell в Windows 7?

В Windows 7 вы можете найти инструмент по ключевому слову «powershell» в меню «Пуск».

Кроме того, открыть PowerShell через меню «Пуск» можно в разделе «Стандартные».

Очевидно, что упомянутая выше команда в окне «Выполнить» работает и в Windows 7.

Кто обычно использует PowerShell?

Без всякого сомнения, PowerShell является выбором многих ИТ-администраторов. И не зря, ведь инструмент колоссально упрощает операции управления и снижает объем работы в крупных корпоративных сетях.

Предположим, вы управляете большой сетью, содержащей свыше пятисот серверов, и вам нужно внедрить новое решение безопасности, которое зависит от какой-либо службы, которая должна работать на этих серверах. Конечно, вы можете подключиться к каждому серверу и посмотреть, установлена и запущена ли на них необходимая служба. Однако в этом случае ваше руководство вряд ли останется довольным, ведь вам понадобится слишком много времени на выполнение задачи.

С помощью PowerShell вы можете проделать эту работу в течение нескольких минут, так как вся операция может быть выполнена с помощью одного сценария, который соберет информацию о службах, запущенных на указанных серверах и сохранит ее в виде текстового файла, например.

PowerShell позволяет делать гораздо больше, чем можно описать в рамках одной статьи, так что если вы действительно заинтересованы, мы настоятельно рекомендуем вам приобрести и прочитать одну из множества книг, посвященных возможностям этого инструмента.

windowstips.ru

Что такое Windows Power Shell, и для чего он нужен

Пользователи, находящиеся в процессе изучения начального экрана Windows 8.1 или Windows 7, нередко запускают в работу совсем незнакомые им приложения. Одним из таковых является Power Shell – продукт от компании Microsoft.

Что такое Power Shell

Если кто-то упорно трудился над написанием кода продукта, значит, он кому-то нужен, для кого-то предназначен. Скорее всего, обычный пользователь сможет извлечь минимальную пользу от наличия этого софта, а вот для системного администратора данная программа – отличный помощник.

Power Shell – это современная стандартизированная оболочка командной строки, открывающая доступ к более гибкому управлению компьютером, функционирующим на базе Windows. По сути – та же командная строка, но возможности гораздо шире.

Функционал инструмента администрирования

Функционал софта внушителен. С его помощью можно управлять службами, аккаунтами, хранилищами файлов, процессами и даже серверами. Оболочка открывает доступ к работе с объектами COM, NET, XML, запуску внешних команд, созданию и выполнению собственных сценариев, проделыванию иных операций.

Оболочка Power Shell имеет собственный набор команд, как и консоль CMD, называемых командлетами. Синтаксис языка, определения командлетов и их параметров в этой программе отличается от привычного, хотя утилита способна распознавать многие команды CMD.

Прекрасно понимаемые Power Shell команды вроде cd, dir, copy и им подобные в этой оболочке являются псевдонимами или, как принято говорить, алиасами, служащими просто для удобства. Пример: команда dir, вводимая пользователем с целью просмотра файловой системы, соответствует командлету Get-ChildItem.

Как разобраться в программе

Человеку, незнакомому с основами командной строки, постигнуть тонкости работы с утилитой будет непросто. К сожалению, простых и понятных справочников по данной теме немного.

Решаясь начать изучение скриптового языка Power Shell, целесообразно ознакомиться с руководством, созданным Франком Кохом, или обратиться к справочной системе самой программы. Последняя является довольно мощной, с большим количеством конкретных примеров. Основная информация здесь откроется для просмотра после ввода командлета Get-Help.

Список всех доступных команд выводит командлет Get-Command. Связка get-help-командлет применяется с целью получения справки по конкретному алиасу. Пример: справка по использованию get-process (отвечает за вывод списка текущих процессов) будет выведена командой get-help-process. Передав ей параметры -example, -detailed, -online или –full, пользователь сможет получить сведенья обо всех его нюансах подробно.

  поделитесь с друзьями:

 ВКонтакте

 OK

 Facebook

 Google+

 Twitter

wd-x.ru

Как в скрипте PowerShell определить его местоположение

Как в скрипте PowerShell определить его местоположение

Предположим, что в скрипте требуется определить текущие параметры, такие как имя файла или директория, из которой скрипт был запущен. Сделать это можно разными способами, но проще всего воспользоваться автоматическими переменными, в которых хранятся сведения о состоянии PowerShell.

Так в переменной $PSScriptRoot хранится текущая директория, из которой был запущен скрипт, а в переменной $PSCommandPath — полный путь и имя файла скрипта. Для примера создадим скрипт такого содержания и выполним его:

″PSScriptRoot is $PSScriptRoot″ ″PSCommandPath is $PSCommandPath″

 

Также для определения местоположения можно воспользоваться переменной $MyInvocation. Эта переменная имеет свойство MyCommand, в котором содержатся сведения о выполняемой команде. Заменим содержимое скрипта и выполним его:

$MyInvocation.MyCommand | fl *

 

Примечание. Если попробовать получить значение переменных $PSScriptRoot, $PSCommandPath и $MyInvocation из консоли, то вы ничего не получите. Эти переменные заполняются только для скриптов и функций.

Таким образом, $MyInvocation.MyCommand.Path содержит полный путь и имя скрипта, $MyInvocation.MyCommand.Name — имя файла. Ну а текущую директорию можно получить командой:

$MyInvocation.MyCommand.Path | Split-Path -Parent

Для примера добавим в скрипт следующие команды и выполним его:

Full name is $($MyInvocation.MyCommand.Path) Name is $($MyInvocation.MyCommand.Name) Current directory is $($MyInvocation.MyCommand.Path | Split-Path -Parent)

 

Переменная $MyInvocation имеет одну особенность, о которой надо помнить. Для наглядности создадим два скрипта, первый:

$MyInvocation | fl * .\script2.ps1

и второй:

$MyInvocation | fl *

Т.е. в первом скрипте мы выводим содержимое переменной $MyInvocation, затем из него же вызываем второй скрипт, в котором также выводим $MyInvocation. Запускаем первый скрипт и смотрим результат. Как видите, содержимое переменной для первого и второго скрипта отличается. Дело в том, что в $MyInvocation хранятся данные о вызывающем объекте, поэтому для второго скрипта оказались заполненными свойства ScriptName, PSScriptRoot и PSCommandPath, которые как раз указывают на первый скрипт, из которого была запущена текущая команда.

 

Полный список автоматических переменных и их подробное описание можно получить командой about_Automatic_Variables.

windowsnotes.ru

Windows PowerShell - что это? PowerShell Windows XP

Windows PowerShell - современная оболочка командной строки, использующаяся в этой операционной системе. Впервые она была включена в состав Windows 7 в 2009 году. В последней, десятой версии этой ОС она уже практически вытеснила традиционную оболочку cmd.exe, которая использовалась во всем семействе NT. В нашей статье мы расскажем об общих принципах ее работы и способе установки на Windows XP.

Командная строка Windows

Оболочка командной строки существовала во всех операционных системах Microsoft. Правда, совершенствование графического интерфейса по мере выхода новых версий задвигало ее на второй план. По крайней мере, с точки зрения полезности для обычного пользователя. Умение работать с командной строкой всегда относилось к прерогативе системных администраторов. Дело в том, что возможности, которые она позволяет использовать (например, для конфигурирования сети) никогда не имели соответствующего графического интерфейса.

Широкое распространение в корпоративной среде и возрастающая сложность сетевой архитектуры требовали внедрения новых инструментов администрирования и автоматизации, что и привело к созданию разработчиками из Редмонда Windows PowerShell. Что это дает пользователю и администратору?

С точки зрения пользователя, редко использующего командную строку, ничего не изменится. А вот в руки сетевого администратора попадает удобный инструмент, позволяющий автоматизировать часть ежедневных операций и работать с удаленными машинами.

Задачи и особенности PowerShell

Windows PowerShell разработана на основе платформы .NET Framework, и Microsoft изначально позиционировал новую оболочку как инструмент для профессионального администрирования. Основным отличием в документации указывается возможность работы с объектами .NET, что существенно выделяет ее на фоне аналогов. Специалисты, работавшие над новым программным продуктом, подошли к делу творчески.

Для обеспечения совместимости и унификации команд с оболочками командной строки, применяемыми в том числе и в других ОС, был проведен глубокий анализ. Результатом стало существенное расширение синтаксиса команд в Windows PowerShell. Что это дает администратору сложных сетей, объяснять не надо.

Многие высокопроизводительные серверы работают на ОС Linux, в то время как клиентские машины на Windows. Унификация синтаксиса позволяет администрировать оба сектора сети с помощью идентичных команд, что снижает нагрузку на IT персонал.

Windows 7 и развитие PowerShell

Как мы уже говорили, эта операционная система стала первой, в состав которой вошел инструментарий PowerShell. В Windows 7 использовалась версия 2.0, в связке с .Net Framework 4.0. По мере совершенствования командной оболочки и роста ее возможностей Microsoft выпускала пакеты Management Framework, которые позволяли обновлять ее до актуального состояния. Основные изменения при этом касались интегрируемой среды сценариев Windows Powershell. Что это значит, покажем на цифрах.

Версия редактора скриптов ISE 2.0 включала 20 модулей и 350 интегрированных команд, в версии 3.0 их число выросло до 71 модуля и 2305 команд. Безусловно, такой рост производительности положительно сказался на административных возможностях оболочки. Наличие интегрированной среды сценариев, позволяющей взаимодействовать с объектами операционной системы и по функциональности похожей на язык программирования, делает этот продукт прекрасным рабочим инструментом.

Неудивительно, что в Windows 10 новая оболочка вышла на первое место. И хотя cmd.exe по-прежнему присутствует в системе, инструментом для работы с командной строкой по умолчанию становится PowerShell. Microsoft делает ставку на эту оболочку и развивает ее, продолжая добавлять новые возможности. Вполне вероятно, что следующие версии ОС полностью лишатся классической командной строки, которая уступит место более современному и гибкому инструментарию.

Установка в Windows XP

После выхода «семерки» изначально не имевшая в своем составе PowerShell Windows XP получила возможность ее установки в виде пакета обновлений. Необходимый для работы .NET Framework 3.5 инсталлировался отдельно. Такой шаг Microsoft объясняется необходимостью внедрения нового инструмента администрирования в широко распространенную на тот момент ОС.

Для установки требовалось наличие в операционной системе третьего сервисного пакета обновлений. Таким образом, установить эту оболочку можно было только на поддерживаемую в актуальном состоянии версию ХР. Для системных администраторов, по традиции не жалующих большие кумулятивные обновления, это было дополнительным призывом к действию.

Дальнейшие обновления для ХР компанией не выпускались. Показав возможности Windows PowerShell, и что это дает администратору, Microsoft указала корпоративным пользователям путь, который был предпочтительнее для нее. Все, кто хотел расширить возможности внутренней сети, должны были переходить на более современные операционные системы.

Несмотря на окончание технической поддержки ХР в 2014 году, эта система, по разным оценкам, до сих занимает от 7 до 10 процентов среди всех установленных Windows. В какой-то степени тут сказывается и влияние новой командной оболочки, позволяющей удаленно обслуживать эти машины.

В заключение

Мы рассказали только немного общей информации о современной командной оболочке Windows. Детально ознакомиться с ее возможностями может каждый желающий, открыв для себя мир командной строки.

fb.ru

powershell - Powershell, поставщик файловой системы, фильтрация Get-ChildItem... где находятся официальные документы?

tl; dr -Filter использует .NET-реализацию FsRtllsNameInExpression, которая задокументирована в MSDN вместе с базой данных соответствия шаблону. Алгоритм неинтуитивный по соображениям совместимости, и вам, вероятно, следует избегать использования этой функции. Кроме того,.NET имеет множество ошибок в своей реализации.

-Filter не использует фильтрующую систему, предоставленную PowerShell, то есть не использует систему фильтрации, описанную Get-Help about_Wildcard. Скорее, он передает фильтр в Windows API. Поэтому фильтрация работает так же, как и в любой другой программе, использующей Windows API, например cmd.exe.

Вместо этого PowerShell использует FsRtlIsNameInExpression -подобный алгоритм для сопоставления шаблонов Filter. Алгоритм основан на старом поведении MS-DOS, поэтому он пронизан предостережениями, которые сохраняются в устаревших целях. Обычно говорят, что у него три общих специальных символа. Точное поведение является сложным, но оно более или менее похоже на следующее:

  • *: Соответствует любому числу символов (ноль включительно)
  • ?: соответствует точно одному символу, исключая последний период в имени
  • .: если последний период в шаблоне привязывается к последнему периоду в имени файла или к концу имени файла, если у него нет периода; может также соответствовать буквальному периоду

Чтобы усложнить ситуацию, Windows добавила три дополнительных специальных символа, которые ведут себя точно так же, как и старые специальные символы MS-DOS. Оригинальные специальные символы теперь имеют немного другое поведение для учета более гибких файловых систем.

  • " эквивалентен MS-DOS . (DOS_DOT и ANSI_DOS_DOT в ntifs.h)
  • < эквивалентен MS-DOS ? (DOS_QM и ANSI_DOS_QM в ntifs.h)
  • > эквивалентен MS-DOS * (DOS_STAR и ANSI_DOS_STAR в ntifs.h)

Довольно много источников, похоже, обращаются к < и >. Пугающе, Microsoft путает их в своей реализации .NET, что означает, что они также отменены в PowerShell. Кроме того, все три символа совместимости недопустимы с -Filter, поскольку System.IO.Path ошибочно обрабатывает "<> как недопустимые, несимвольные символы. (Это позволяет .*?.) Это способствует пониманию того, что -фильтр является неполным, неустойчивым и ошибочным. Вы можете увидеть реализацию .NET(глючной) алгоритма на GitHub.

Это дополнительно усложняется поддержкой алгоритма для 8.3 файлов совместимых файлов, иначе называемых "короткими" именами файлов. (Вероятно, вы видели их раньше: они выглядят примерно так: SOMETH~1.TXT) Файл соответствует шаблону, если его полное имя файла или совпадает с его коротким именем файла. FrankFranchise имеет больше информации об этом предостережении в своем ответе.

Ранее связанная статья MSDN на FsRtlIsNameInExpression содержит самую последнюю документацию по совпадению шаблонов имен файлов Windows, но она не является особенно подробной. Для более подробного объяснения того, как соответствие используется для работы с MS-DOS и как это влияет на современное соответствие, эта статья блога MSDN является лучшим источником Я нашел. Вот основная идея:

  • Каждое имя файла было равно 11 байтам.
    • Первые 8 байтов хранят тело имени файла, с правом пробела с пробелами
    • Последние 3 байта сохраняют расширение, с правом пробела с пробелами
  • Буквы были преобразованы в верхний регистр.
  • Буквы, числа, пробелы и некоторые символы соответствуют только самим себе.
  • ? соответствует любому одиночному символу, кроме пробелов в расширении
  • . заполнит оставшуюся часть первых 8 байтов пробелами, затем переместится на 9-й байт (начало расширения)
  • * заполнит оставшуюся часть текущего раздела (тело или расширение) вопросительными знаками, затем перейдите к следующему разделу (или концу шаблона)

Преобразования будут выглядеть так:

11 User 12345678901 ------------ ----------- ABC.TXT > ABC TXT WILDCARD.TXT > WILDCARDTXT ABC.??? > ABC ??? *.* > ??????????? *. > ???????? ABC. > ABC

Экстраполирование этого для работы с современными файловыми системами - это, в лучшем случае, неинтуитивный процесс. Например, возьмите директорию, такую ​​как:

Name Compat Name ----------------------------------------------- Apple1.txt APPLE1 .TXT Banana BANANA . Something.txt SOMETH~1.TXT SomethingElse.txt SOMETH~2.TXT TXT.exe TXT .EXE TXT.eexe TXT~1 .EEX Wildcard.txt WILDCARD.TXT

Я довольно много тестировал эти подстановочные знаки в Windows 10 и получил очень непоследовательные результаты, особенно DOS_DOT ("). Если вы проверите их самостоятельно из командной строки, вам, вероятно, потребуется их избежать (например, dir ^>^"^> в cmd.exe для эмуляции MS-DOS *.*).

*.* (everything) <"< (everything) * (everything) < Banana . (everything) " (everything) *. Banana <" Banana *g.txt Something.txt <g.txt Something.txt <g"txt (nothing) *1.txt Apple1.txt, Something.txt <1.txt Apple1.txt, Something.txt <1"txt (nothing) *xe TXT.eexe, TXT.exe <xe (nothing) *exe TXT.eexe, TXT.exe <exe TXT.exe ??????.??? Apple1.txt, Asdf.tx, Banana, TXT.eexe, TXT.exe >>>>>>.>>> Apple1.txt, Asdf.tx, TXT.eexe, TXT.exe >>>>>>">>> Banana ????????.??? (everything) >>>>>>>>.>>> (everything except Banana) >>>>>>>>">>> Banana ???????????.??? (everything) >>>>>>>>>>>.>>> (everything except Banana) >>>>>>>>>>>">>> Banana ?????? Banana >>>>>> Banana ??????????? Banana >>>>>>>>>>> Banana ???????????? Banana ???? (nothing) >>>> (nothing) Banana??. Banana Banana>>. Banana Banana>>" Banana Banana????. Banana Banana>>>>. Banana Banana>>>>" Banana Banana. Banana Banana" Banana *txt Apple1.txt, Something.txt, SomethingElse.txt, Wildcard.txt <txt Apple1.txt, Something.txt, SomethingElse.txt, Wildcard.txt *t Apple1.txt, Something.txt, SomethingElse.txt, Wildcard.txt <t (nothing) *txt* Apple1.txt, Something.txt, SomethingElse.txt, TXT.eexe, TXT.exe, Wildcard.txt <txt< Apple1.txt, Something.txt, SomethingElse.txt, Wildcard.txt *txt< Apple1.txt, Something.txt, SomethingElse.txt, Wildcard.txt <txt* Apple1.txt, Something.txt, SomethingElse.txt, TXT.eexe, TXT.exe, Wildcard.txt

Примечание. С точки зрения написания алгоритм соответствия WINE дает значительно разные результаты при тестировании этих "gotchas". Протестировано с помощью WINE 1.9.6.

Как вы можете видеть, обратные совместимые шаблоны MS-DOS неясны и ошибочны. Даже Microsoft внедрила их неправильно хотя бы один раз, и неясно, является ли их текущее поведение в Windows преднамеренным. Поведение " кажется совершенно случайным, и я ожидал, что результаты двух последних тестов будут заменены.

qaru.site

powershell - Получить powershell для отображения всех путей, где определенный файл можно найти на диске

Я пытаюсь создать функцию, которая покажет мне весь путь, где находится определенное имя файла. Функция будет принимать один параметр, являющийся именем файла. Результатом будет либо список всех путей, либо сообщение о том, что в системе нет такого файла.

Я новичок в Powershell, и я пока не получаю синтаксис. Я пробовал это:

Get-ChildItem -Path -Include notepad.exe

Но это вызвало сообщение об ошибке. Я сейчас пытаюсь:

$i="notepad.exe" Foreach ($i in Get-ChildItem c:\ -Recurse){echo -Path}

Начну с того, что теперь он все еще работает, не знаю, что произойдет, действительно.

EDIT: echo'd огромное количество строк, которые просто говорят "-Path"...

Может ли кто-нибудь помочь в решении этой проблемы? Кстати, я запускаю Powershell 1.0.

Итак, чтобы объяснить, что я хочу видеть при выполнении этой команды, вот пример того, что я ожидаю после поиска *.txt:

C:/foo.txt C:/A/foobar.txt С:/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

qaru.site