¿Cómo pasar un argumento a un script de PowerShell?

Hay un script de PowerShell llamado itunesForward.ps1 que hace que el iTunes avance rápidamente 30 segundos:

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

Se ejecuta con el comando de línea de solicitud:

 powershell.exe itunesForward.ps1 

¿Es posible pasar un argumento de la línea de comando y aplicarlo en el guión en lugar del valor codificado de 30 segundos?

Probado como funcionando:

 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 } 

Llámalo con

 powershell.exe -file itunesForward.ps1 -step 15 

También puede usar la variable $args (que es como los parámetros de posición):

 $step=$args[0] $iTunes = New-Object -ComObject iTunes.Application if ($iTunes.playerstate -eq 1) { $iTunes.PlayerPosition = $iTunes.PlayerPosition + $step } 

entonces puede ser llamado como:

 powershell.exe -file itunersforward.ps1 15