command-line - pass - run powershell script with argument




Comment passer un argument à un script PowerShell? (2)

Testé comme travaillant:

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
}

Appelez-le avec

powershell.exe -file itunesForward.ps1 -step 15

Il existe un script PowerShell nommé itunesForward.ps1 qui permet à iTunes d'avancer rapidement de 30 secondes:

$iTunes = New-Object -ComObject iTunes.Application

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

Il est exécuté avec la commande de ligne d'invite:

powershell.exe itunesForward.ps1

Est-il possible de passer un argument de la ligne de commande et de l'appliquer dans le script au lieu de la valeur de 30 secondes codée en dur?


Vous pouvez aussi utiliser la variable $args (c'est comme les paramètres de position):

$step=$args[0]

$iTunes = New-Object -ComObject iTunes.Application

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

alors ça peut être appeler comme:

powershell.exe -file itunersforward.ps1 15




argument-passing