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 - это простой массив, хороший для произвольного ввода. Параметры с их атрибутами и типами могут валидировать входные данные и даже запрашивать у пользователя, делая скрипты самодокументируемыми и менее подверженными ошибкам.