Er is een PowerShell
script genaamd itunesForward.ps1
dat iTunes 30 seconden vooruit laat spoelen:
$iTunes = New-Object -ComObject iTunes.Application
if ($iTunes.playerstate -eq 1)
{
$iTunes.PlayerPosition = $iTunes.PlayerPosition + 30
}
Het wordt uitgevoerd met een prompt line commando:
powershell.exe itunesForward.ps1
Is het mogelijk om een argument door te geven vanaf de opdrachtregel en het te laten toepassen in het script in plaats van de hardcoded 30 seconden waarde?
Getest als werkend:
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
}
Roep het met
powershell.exe -file itunesForward.ps1 -step 15
Je kunt ook $args
variabele gebruiken (dat's als positie parameters):
$step=$args[0]
$iTunes = New-Object -ComObject iTunes.Application
if ($iTunes.playerstate -eq 1)
{
$iTunes.PlayerPosition = $iTunes.PlayerPosition + $step
}
dan kan het opgeroepen worden als:
powershell.exe -file itunersforward.ps1 15
laat Powershell analyseren en beslissen over het datatype
Gebruikt intern een 'Variant' hiervoor...
en doet over het algemeen goed werk...
param( $x )
$iTunes = New-Object -ComObject iTunes.Application
if ( $iTunes.playerstate -eq 1 )
{ $iTunes.PlayerPosition = $iTunes.PlayerPosition + $x }
of als je meerdere parameters moet doorgeven
param( $x1, $x2 )
$iTunes = New-Object -ComObject iTunes.Application
if ( $iTunes.playerstate -eq 1 )
{
$iTunes.PlayerPosition = $iTunes.PlayerPosition + $x1
$iTunes.<AnyProperty> = $x2
}