как обрабатывать строки в PowerShell

Windows PowerShell

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

Эту разработку впервые интегрировали в последние ОС Windows. Для младших разработок операционных систем ее можно скачать и установить. Она разработана на базисе Microsoft NET Framework и тесно связана с ней. Дополнительно Windows PowerShell имеет доступ к WMI, COM и ADSI. Для удобств администраторов возможно и выполнение в командной строке распространенных команд, что создает единое окружение для выполнения разнообразных задач как в локальном виде, так и удаленно.

Разработчики снабдили оболочку специальным языком, соответствующим стандарту .NET Framework. В ней каждая команда называется "cmdlet" или "командлет". Командлет подразумевает функцию, выполняющую конкретную задачу. Это может быть извлечение содержимого из папки или обновление записи в реестре. Командлет может иметь определенные параметры, изменяющие и дополняющие результаты работы выполняемой команды.

В состав оболочки Windows PowerShell разработчики из Microsoft включили более 100-а команд: возможно и самостоятельное создание разнообразных команд пользователем, но необходимо при этом строго использовать стандарты, представленные .NET, такие как C# или Visual Basic .NET.

Команда представляется в виде «глагол-существительное». Это способствует легкому изучению, единообразию и расширению языка команд. При этом глагол предполагает совершаемое действие, а существительное указывает на объект, с которым будет произведено это действие . Командлет Get-ChildItem, например, читает список, содержащийся в контейнере или каталоге. Выполнить команду легко - достаточно ввести ее в строку команд Windows PowerShell и кликнуть по клавише ввода. Итог выполнения команды сразу покажется под строкой с выполняемой командой.

Оболочка с PowerShell поставляется потребителю с набором файлов, содержащих подробную справочную информацию. Для изучения языка и возможностей указанного продукта, вам нужно научиться пользоваться этим справочником. Получить список всех содержащихся команд в оболочке можно, вставив в командную строку командлет Get-Command. В выведенном списке вы увидите все доступные команды и синтаксис их ввода, но не увидите описание их возможностей. Для подробных сведений о каждой команде необходимо ввести командлет Get-Help. При ее выполнении вы сможете увидеть подробную справку только о ней самой. Получить описание конкретной команды можно, введя за командой Get-Help ее название.

Если после Get-Help ввести Get-Command, то он уже будет параметром для Get-Help и в списке будет выведены сведения, нужные командам для их функционирования. Системным администраторам часто приходится читать файлы с текстом. Тогда посмотрим команды с Get. Воспользуемся Get-Help Get. Мы увидим, что работу с файлами обеспечивает команда Get-Content. После выполнения командлета Get-Help с дополнительным параметром Get-Content, мы узнаем подробности об ее работе.

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


Как обрабатывать строки в PowerShellPower Shell является расширяемым средством автоматизации и выпускается в составе большого количества версий операционной системы Windows. Power Shell обеспечивает удобный доступ к ADSI, WMI и COM, а также делает возможным выполнение команд командной строки для создания такого единого окружения, которое позволило бы выполнять определенный ряд задач, как на локальных, так и на удаленных системах. В данной статье рассмотрим вопрос "как обрабатывать строки в PowerShell?" и используем полученные знания на практике.

Благодаря представленным в Windows Power Shell операторам "-like", "-mutch", "-replace", даже люди, которые не слишком близко и хорошо знакомы с процессами программирования, смогут достаточно быстро и удобно сопоставлять строки и выполнять их замену. Также, следует заметить, что в командной строке достаточно интересно и просто экспериментировать с регулярными выражениями .NET, нежели в случае с использованием тех языков сценариев, которые являются традиционными.

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

Get-Process | Out-File -FilePath D:\TMP\proclist.txt

можно направить список системных процессов в файл "proclist.txt", расположенный в папке "TMP" на диске "D".

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

Get-Item File.txt | Replace-FileString
-Pattern 'know' -Replacement ‘known’

заменит слово "know" на "known" в файле "File.txt".

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

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


Командлеты PowerShell

Командлеты PowerShellWindows PowerShell - расширенное средство автоматизации, разработанное Microsoft. Это расширение для ОС Windows, состоит из оболочки, имеющей интерфейс командной строки, и специального языка сценариев. Все это является неотъемлемым, встроенным компонентом операционной системы Windows и, начиная с Windows 7, обязательно поставляется вместе с ней. С помощью данного компонента администратору предоставляется возможность составлять сценарии для выполнения рутинных административных задач.

Для новичков привожу самые основные командлеты PowerShell, с которыми следует ознакомиться в первую очередь:

GET-HELP. Первый и самый основной командлет - вызов справки. С его помощью вы сможете проверить правильность синтаксиса, просмотреть пример использования и подробное описание любого командлета PowerShell.

GET-CONTENT. Чтение содержимого файлов. Наиболее часто применяется новичками, пытающимися изучить PowerShell. Любой сможет прочитать файл, передав его командлету "Get-Content".

GET-SERVICE. Командлет перечислит вам все службы, имеющиеся на данном компьютере. Так-же возможно получить информацию о каждой конкретной службе или всех имеющихся службах. Так, например, вы сможете увидеть какие службы запущены и остановлены.

STOP-SERVICE и START-SERVICE. Остановка и запуск служб - очень важный этап работы администратора в Windows. Эти командлеты PowerShell упрощают администрирование, так как отпадает необходимость открытия консоли ММС. С помощью этих команд можно останавливать или запускать имеющиеся службы как на серверной части, так и на удаленных компьютерах.

GET-PROCESS. Вам необходимо знать, какие процессы запущены, как на сервере, так и на удаленном ПК? Этот командлет введет вас в курс всех событий. Вам будет предоставлена следующая информация: имя, ID процесса, путь к данному исполняемому файлу, название компании, версия файла и количество памяти, занятое процессом.

STOP-PROCESS. Командлет остановит указанный процесс, как на сервере, так и на удаленном компьютере. Он возьмет ID процесса или его имя и завершит данный процесс. Особо полезно принять такое решение в случае зависания программы, когда та не отвечает.


Переменные PowerShell

peremennie PowerShell

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

Переменные, находящиеся в составе PowerShell, представляют собой не переменные среды, а являются переменными этой программной оболочки. Эти переменные в своем составе могут содержать не только обыкновенный текст. Переменные PowerShell имеют свойства хранить в себе целые объекты, например, переменная может содержать объект NET.Framework. Переменная в оболочке PowerShell так-же может хранить объект String или "число" - им может быть Int (integer). Благодаря таким возможностям переменных, PowerShell приобрела исключительную и большую гибкость.

В оболочке PowerShell перед именем переменной принято ставить знак доллара - $. Переменная получает значение через присваивающий оператор и для этого логично используется символ "=". Создать переменную можно очень просто, достаточно присвоить такой переменной какое-то значение. Например, выполнив команду:
$Name = «News»
мы создадим новую переменную с простым именем $Name и зададим ей значение из строки. Кавычки укажут PowerShell, что созданной переменной присвоено строковое значение.

Фактически переменные в PowerShell являются объектами. Следует отметить, особо не углубляясь в мелкие детали, что содержать объекты могут как обычные данные (в дальнейшем свойства), так и операции (в дальнейшем методы), разрешенные производить над ними. В приведенном раньше примере переменная $Name будет фигурировать как объект String. Как и все объекты, этот объект имеет свойства и с ним можно производить действия с использованием методов. Объект String имеет определенное свойство Length и оно может отобразить число символов в заданной строке. Если к объекту String применить метод ToUpper, то он даст копию строки, где все символы будут переконвертированы в верхний регистр. Как обратиться к свойствам или методам? Нужно просто использовать символ точка ".", который ставится после названия нужной переменной. Когда есть необходимость вызвать свойства, то скобки использовать нет необходимости, а вот при при вызове методов их нужно применить. Так, выполнив команду:
$Name.Length
мы получим значение 4, так как переменная $Name содержит четыре символа (News). Команда:
$Name.ToUpper()
возвратит нам значение NEWS.

Смотри видео на YouTube: "Как обрабатывать строки в PowerShell".

Какая задача потребовала от вас более глубоких знаний работы со строками PowerShell?

1 013 просмотров

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (9 оценок, среднее: 5,00 из 5)
Загрузка...
Метки: , , , , , ,
Опубликовано в информатика

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

*

Срочно требуются агенты

Удаленная работа по контракту агентом коллцентра или службы поддержки. Английский язык и высоскоростной доступ в Интернет обязательно.


Подписка на madcash.ru