Сервісний центр VPSGroup ремонт комп'ютерної техніки, заправка картриджів, ремонт оргтехніки, Київ, Виставковий центр, Васильківська, 55

Робота з об'єктами в PowerShell.

Продовжуючи тему об'єктів в PowerShell звернемося до практичної сторони питання і розглянемо властивості і методи реальних об'єктів. В якості піддослідного візьмемо саму звичайну папку з файлами, що знаходиться за адресою c: \ pstest.

Командою Get-ChildItem (або Dir) виведемо її вміст і результат помістимо в змінну:

$ list = Get-Childitem c: \ pstest

Об'єкти, отримані в результаті виконання команд, дуже зручно зберігати в змінних, це економить час при введенні і полегшує доступ до їх властивостями.

Оскільки на виході кілька об'єктів, PowerShell помістить їх в масив. Можна звертатися до елементів масиву по їх порядковими номерами, наприклад:

$ object = $ list [1]



В змінної $ object у нас знаходиться папка test2.test. З нею і будемо працювати далі. Для перегляду всіх її властивостей скористаємося Командлети Get-Member:

$ object | Get-Member -memberType * property



Властивості, отримані при створенні об'єкта називаються просто «Property» .Властивості, додані PowerShell пишуться з префіксом PS (напр. PSChildName) і іменуються «ScriptProperty» або «NoteProperty». Властивості NoteProperty містять статичні дані, а ScriptProperty виконуваний код PowerShell.

З властивостей об'єкта можна дізнатися багато корисної інформації, наприклад ім'я (Name) і шлях (FullName) до папки, час створення (CreationTime) і зміни (LastWriteTime ) і багато іншого.Подивимося час останнього звернення до папки

$ object.LastAccessTime

Якщо властивість об'єкта позначено як {get; set;}, то ми можемо його не тільки подивитися, але і змінити. Задамо час останнього звернення поточною датою:

$ object.LastAccessTime = Get-Date

Або майбутньої:

$ object.LastAccessTime = Get-Date ( "01.01 .2014 ")



А тепер візьмемо властивість Name (ім'я об'єкта) і трохи над ним« познущався ».

Спочатку отримаємо всі властивості і методи властивості Name об'єкта: $ object.name | Get-Member

Скористаємося ними.

Перевіримо, чи є в імені об'єкта цифра 2: $ object.name.contains ( '2')

Замінимо 2 на 4: $ object.name.replace ( '2', `4`)

і переведемо всі символи імені в верхній регістр: $ object.name.toupper ()



А тепер плавно перейдемо від свойст об'єкта до його методам.

$ object | Get-Member -MemberType * Method



Наш об'єкт є каталогом. Подивимося, чи містить він піддиректорії:

$ object.getdirectories ()

За допомогою методу CreateSubdirectory створимо піддиректорію з ім'ям New directory:

$ object.CreateSubdirectory ( 'New directory`)

А тепер створимо ще одну піддиректорію і збережемо результат у змінній:

$ subdirectory = $ object.CreateSubdirectory ( 'Enother directory`)

Тепер ми можемо звертатися до її властивостям і змінювати їх, наприклад:

$ subdirectory.CreationTime = «January 1, 2014»



Подивимося, як змінився наш об'єкт. Як бачимо, обидві створені нами піддиректорії з'явилися. Що ще ми можемо зробити з об'єктом? Багато що, наприклад задати дозволу доступу - $ object.SetAccesssControl (), перемістити - $ object.MoveTo () або взагалі видалити - $ object.Delete ().

Ось так ми дізналися як управляти властивостями і методами об'єктів. А використовуючи властивості і методи об'єкта ми можемо управляти і самим об'єктом. Тому рекомендую частіше користуватися Командлети Get-Member при роботі з PowerShell.

.