Чтение аргументов командной строки

PowerShell:
Чтение аргументов командной строки

Как это сделать

PowerShell читает аргументы командной строки, используя массив $args или параметры. $args удобен для одноразовых скриптов; параметры лучше подходят для надежных инструментов.

Использование $args

# myscript.ps1
Write-Host "Вы ввели следующие аргументы:"
$args

Запустите с помощью .\myscript.ps1 Hello PowerShell, на выходе получится:

Вы ввели следующие аргументы:
Hello PowerShell

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

# myscriptparam.ps1
param (
    [string]$Name,
    [int]$Age
)
Write-Host "Привет, $Name! Вам $Age лет."

Запустите с помощью .\myscriptparam.ps1 -Name Sarah -Age 32, на выходе получится:

Привет, Sarah! Вам 32 лет.

Погружаемся глубже

Современный подход PowerShell к аргументам командной строки напоминает наследие от его предшественников, таких как cmd и Bash. Однако, он усиливает гибкость и точность.

Исторический контекст

Годы назад, пакетные файлы и скрипты оболочки получали доступ к аргументам с помощью нумерованных переменных (как %1, %2). PowerShell усовершенствовал это с помощью $args и именованных параметров для большей ясности и контроля.

Альтернативы

Существуют альтернативы, такие как разбор входных данных с Read-Host или прием входных данных через конвейер. Однако, $args и параметры более бесшовны для автоматизированных задач и скриптов.

Детали реализации

$args - это простой массив, хороший для произвольного ввода. Параметры с их атрибутами и типами могут валидировать входные данные и даже запрашивать у пользователя, делая скрипты самодокументируемыми и менее подверженными ошибкам.

Смотрите также