Головна » як » Geek Школа Навчання PowerShell Змінні, вхід і вихід

    Geek Школа Навчання PowerShell Змінні, вхід і вихід

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

    Обов'язково прочитайте попередні статті серії:

    • Дізнайтеся, як автоматизувати Windows за допомогою PowerShell
    • Навчання використанню командлетів у PowerShell
    • Навчання використанню об'єктів у PowerShell
    • Навчання форматування, фільтрації та порівняння в PowerShell
    • Дізнайтеся, як використовувати віддалене використання в PowerShell
    • Використання PowerShell для отримання інформації про комп'ютер
    • Робота з колекціями в PowerShell

    І залишайтеся з нами для решти серії цілий тиждень.

    Змінні

    Більшість мов програмування дозволяють використовувати змінні, які є просто контейнерами, які утримують значення. У PowerShell ми теж маємо змінні, і вони дуже прості у використанні. Ось як створити змінну з назвою "FirstName" і дати йому значення "Taylor".

    $ FirstName = "Taylor"

    Перше, що, як здається, більшість людей, запитують, чому ми поставили знак долара перед назвою змінних, і це насправді дуже хороше питання. Дійсно, знак долара - це лише невеликий натяк на оболонку, що ми хочемо отримати доступ до вмісту змінної (подумайте, що всередині контейнера), а не сам контейнер. У PowerShell імена змінних не включають знак долара, тобто в наведеному вище прикладі ім'я змінних насправді є "FirstName".

    У PowerShell можна побачити всі змінні, створені в змінної PSDrive.

    змінна gci:

    Це означає, що ви можете видалити змінну з оболонки в будь-який час:

    Remove-Item Variable: Перша назва

    Змінні також не повинні містити жодного об'єкта; Ви можете так само легко зберігати декілька об'єктів у змінній. Наприклад, якщо ви хочете зберегти список запущених процесів у змінній, ви можете просто призначити їй вихід Get-Process.

    $ Proc = Get-Process

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

    $ CPUHogs = Get-Process | Сортування CPU -Descending | виберіть -Перший 3

    Змінна CPUHogs тепер буде містити три запущені процеси з використанням самого процесора.

    Якщо у вас є змінна, що містить колекцію об'єктів, є деякі речі, які потрібно знати. Наприклад, виклик методу на змінну призведе до того, що його буде викликано на кожному об'єкті колекції.

    $ CPUHogs.Kill ()

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

    $ CPUHogs [0]

    Це дасть вам перший об'єкт у колекції.

    Не спіймайте!

    Змінні в PowerShell типово вводяться за замовчуванням, що означає, що вони можуть містити будь-які дані, це, здається, ловить нових користувачів до PowerShell весь час!

    $ a = 10

    $ b = '20'

    Таким чином, ми маємо дві змінні, одна містить рядок, а інше - ціле число. Так що ж станеться, якщо ви додасте їх? Фактично це залежить від того, в якому порядку ви додаєте їх.

    $ a + $ b = 30

    Поки

    $ b + $ a = 2010

    У першому прикладі перший операнд - це ціле число, $ a, тому PowerShell вважає, що ви намагаєтеся зробити математику, і тому намагається перетворити будь-які інші операнди в цілі числа. Однак у другому прикладі перший операнд - це рядок, тому PowerShell просто перетворює решту операндів у рядки і об'єднує їх. Більш просунуті сценарії запобігають цьому типу гоча, переводячи змінну до типу, якого вони очікують.

    [int] $ Number = 5
    [int] $ Number = '5'

    Описане вище значення призведе до змінної Number, що містить цілий об'єкт із значенням 5.

    Вхід і вихід

    Оскільки PowerShell призначена для автоматизації речей, ви бажаєте уникати спонукання користувачів до інформації, де це можливо. З урахуванням сказаного, будуть часи, коли ви не зможете уникнути цього, і для тих часів у нас є командлет Read-Host. Використовувати його дуже просто:

    $ FirstName = Read-Host -Prompt 'Введіть своє ім'я'

    Все, що ви введете, буде збережено в змінну.

    Написання вихідних даних так само легко здійснюється за допомогою командлета Write-Output.

    Написати-висновок "How-To Geek Rocks!"

    Приєднуйтесь до нас завтра, де ми пов'язуємо все, що ми дізналися разом!