Υπάρχει ένα σενάριο PowerShell
με όνομα itunesForward.ps1
που κάνει το iTunes να προχωράει γρήγορα 30 δευτερόλεπτα μπροστά:
$iTunes = New-Object -ComObject iTunes.Application
if ($iTunes.playerstate -eq 1)
{
$iTunes.PlayerPosition = $iTunes.PlayerPosition + 30
}
Εκτελείται με εντολή γραμμής prompt:
powershell.exe itunesForward.ps1
Είναι δυνατόν να περάσετε ένα όρισμα από τη γραμμή εντολών και να εφαρμοστεί στο σενάριο αντί της σκληρά κωδικοποιημένης τιμής 30 δευτερολέπτων;
Δοκιμασμένο ως λειτουργικό:
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
αφήστε την Powershell να αναλύσει και να αποφασίσει τον τύπο δεδομένων<br>, Χρησιμοποιεί εσωτερικά μια 'Variant' για αυτό...<br>, και γενικά κάνει καλή δουλειά...<br>,
param( $x )
$iTunes = New-Object -ComObject iTunes.Application
if ( $iTunes.playerstate -eq 1 )
{ $iTunes.PlayerPosition = $iTunes.PlayerPosition + $x }
ή αν χρειάζεται να περάσετε πολλαπλές παραμέτρους
param( $x1, $x2 )
$iTunes = New-Object -ComObject iTunes.Application
if ( $iTunes.playerstate -eq 1 )
{
$iTunes.PlayerPosition = $iTunes.PlayerPosition + $x1
$iTunes.<AnyProperty> = $x2
}