Comment passer un argument à un script PowerShell?

il y a un script PowerShell nommé itunesForward.ps1 qui fait avancer l'iTunes rapidement 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 rapide:

powershell.exe itunesForward.ps1

est-il possible de passer un argument de la ligne de commande et l'avoir appliqué dans le script au lieu de la valeur hardcoded 30 secondes?

301
demandé sur Boris Pavlović 2011-04-08 12:33:33

3 réponses

essayé en service:

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
458
répondu Ocaso Protal 2016-09-04 02:05:34

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 on peut l'appeler comme:

powershell.exe -file itunersforward.ps1 15
271
répondu Emiliano Poggi 2016-12-09 10:12:24
& 'C:\Program Files\Notepad++\notepad++.exe'

& - faire le travail pour moi.

-1
répondu chilltouch 2018-09-27 17:31:21