Как передать аргумент в сценарий PowerShell?


здесь PowerShell скрипт с именем itunesForward.ps1 это делает iTunes быстрой перемоткой вперед на 30 секунд:

$iTunes = New-Object -ComObject iTunes.Application

if ($iTunes.playerstate -eq 1)
{
  $iTunes.PlayerPosition = $iTunes.PlayerPosition + 30
}

он выполняется с помощью команды командной строки:

powershell.exe itunesForward.ps1

можно ли передать аргумент из командной строки и применить его в скрипте вместо жестко заданного значения 30 секунд?

3 301

3 ответа:

проверено как работает:

param([Int32]$step=30) #Must be the first statement in your script

$iTunes = New-Object -ComObject iTunes.Application

if ($iTunes.playerstate -eq 1)
{
  $iTunes.PlayerPosition = $iTunes.PlayerPosition + $step
}

называют его

powershell.exe -file itunesForward.ps1 -step 15

вы также можете использовать $args переменная (это как параметры позиции):

$step=$args[0]

$iTunes = New-Object -ComObject iTunes.Application

if ($iTunes.playerstate -eq 1)
{
  $iTunes.PlayerPosition = $iTunes.PlayerPosition + $step
}

тогда это можно назвать как:

powershell.exe -file itunersforward.ps1 15
& 'C:\Program Files\Notepad++\notepad++.exe'

& - делать работу за меня.