Переменные в PowerShell, вывод на экран Печать

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

$i = 25 # Объявляем переменную i равной числовому значению 25

Write-Host
Write-Host ______1
$i # Отображаем значение переменной способом 1

Write-Host
Write-Host ______2
$i+20 # Отображаем результат арифметического прибавления к значению переменной числа 20

Write-Host
Write-Host ______3
Write-Host $i+20 # Отображаем текстовую строку с преобразованием переменной в значение

Write-Host
Write-Host ______4
Write-Host "$i+20" # Результат идентичен предыдущему примеру

Write-Host
Write-Host ______5
Write-Host '$i+20' # Отображаем текстовую строку без преобразования переменной (экранирование)

Write-Host
Write-Host ______6
Write-Host ($i+20) # Скобки указывают на арифметическую операцию. Результат идентичен примеру №2

$i = 30 # Присваиваем заново значение переменной i
$i = $i + 1 # Присваиваем переменной i значение, равное сумме текущего значения плюс единица

Write-Host
Write-Host ______7
Write-Host $i # Отображаем значение переменной способом 2

Write-Host
Write-Host ______8
$i = 10 - 5 # Операция вычитания
Write-Host $i

Write-Host
Write-Host ______9
$i = 10 * 5 # Операция умножения
Write-Host $i

Write-Host
Write-Host ______10
$i = 10 / 5 # Операция деления
Write-Host $i

Write-Host
Write-Host ______11
$s = 'This is a string variable' # Объявляем строковую переменную, значение которой заключаем в кавычки
Write-Host $s # Отображаем значение переменной s

Write-Host
Write-Host ______12
$s = $s + $i # Добавляем к значению строковой переменной s числовое значение переменной i
Write-Host $s # результат такой операции автоматически преобразовывается в строковое значение

Write-Host
Write-Host ______13
$c = "Get-Date" # Задаем в переменную название командлета
$c # В таком виде система выдаст значение строковой переменной
&$c # А в таком виде система расценит текст в переменной как команду

Write-Host
Write-Host ______14
$c = {Get-Service Lanman* | Sort-Object Name} # Задаем в переменную в фигурных скобках командлет с параметрами
$c # В таком виде система выдаст значение внутри фигурных скобок
&$c # В таком виде будет выполнен командлет с параметрами и передан результат в другой командлет для сортировки

Интерактивный ввод переменной.

В скриптах часто необходимо чтобы пользователь сам ввел значение переменной. Для этого можно воспользоваться командлетом Read-Host:

PS D:\> $interactiveVariable = Read-Host 'Введите ваше значение'
Введите ваше значение: UserInput01
PS D:\> Write-Host $interactiveVariable
UserInput01