Базовый синтаксис PowerShell

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

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


1. Комментарии

Комментарии в PowerShell похожи на комментарии в большинстве языков программирования. Они служат для пояснения кода и не выполняются.

Однострочные комментарии начинаются с#:

# 这是一个单行注释
Write-Output "Hello, PowerShell"

Многострочные комментарии обрамляются<#и#>:

<#
This is a multi-line comment
Can be used for documentation
#>

2. Переменные

Определение переменных

В PowerShell переменные начинаются с$символа $, без необходимости заранее объявлять тип:

$name = "Alice"
$age = 25

Использование переменных

Write-Output "Name: $name"

Также можно использовать интерполяцию строк:

Write-Output "User: $($name), Age: $($age)"

3. Типы данных

PowerShell — это язык со слабой типизацией, но за каждой переменной стоит соответствующий тип .NET.

Type Пример
String $str = "Hello"
Integer $num = 123
Decimal $pi = 3.14
Boolean $isTrue = $true
Массив $arr = @(1, 2, 3)
Хеш-таблица $h = @{Name="Tom"; Age=30}

Вы можете использовать.GetType()чтобы просмотреть тип переменной:

$str.GetType().Name   # String

4. Операторы

Категория Пример Описание
Арифметические операции + - * / % Основные математические операции
Операции сравнения -eq -ne -lt -gt Равно, не равно, меньше, больше
Логические операции -and -or -not Логические операторы
String -like -match -replace Сопоставление с образцом и замена
Операции проверки вхождения -in -contains Проверки коллекций

Пример:

5 -eq 5       # True
"abc" -like "a*"  # True

5. Условные операторы

Оператор if

if ($age -ge 18) {
    Write-Output "成年人"
} else {
    Write-Output "未成年人"
}

if-elseif-else

if ($score -ge 90) {
    "优秀"
} elseif ($score -ge 60) {
    "及格"
} else {
    "不及格"
}

6. Структуры циклов

цикл for

for ($i = 1; $i -le 5; $i++) {
    Write-Output "第 $i 次循环"
}

Цикл foreach

$colors = @("Red", "Green", "Blue")
foreach ($color in $colors) {
    Write-Output "颜色:$color"
}

цикл while

$count = 0
while ($count -lt 3) {
    Write-Output $count
    $count++
}

7. Определения функций

PowerShell позволяет определять пользовательские функции со следующим синтаксисом:

function Say-Hello {
    param([string]$name)
    Write-Output "Hello, $name!"
}

Say-Hello -name "PowerShell"

Также можно использовать более краткий синтаксис:

function Square($x) { return $x * $x }
Square 5  # 输出 25

8. Обработка ошибок

Используйтеtry {} catch {}блок для обработки инструкций, которые могут вызвать ошибки:

try {
    Get-Item "C:\NotExist.txt"
} catch {
    Write-Output "找不到文件"
}

9. Базовый формат файла скрипта

Файлы скриптов PowerShell используют.ps1расширение .ps1. Вы можете создавать их с помощью VS Code или Notepad:

# hello.ps1
$name = "World"
Write-Output "Hello, $name"

Запустите его в PowerShell:

.\hello.ps1

Примечание: если скрипт не выполняется, проверьте политику выполнения (Get-ExecutionPolicy). При необходимости используйтеSet-ExecutionPolicyчтобы разрешить запуск сценариев.

Другие расширения