有一个名为 PowerShell 的脚本itunesForward.ps1可以让 iTunes 快进 30 秒:
itunesForward.ps1
$iTunes = New-Object -ComObject iTunes.Application if ($iTunes.playerstate -eq 1) { $iTunes.PlayerPosition = $iTunes.PlayerPosition + 30 }
它使用提示行命令执行:
powershell.exe itunesForward.ps1
是否可以从命令行传递参数并将其应用于脚本而不是硬编码的 30 秒值?
测试为工作:
#Must be the first statement in your script (not coutning comments) param([Int32]$step=30) $iTunes = New-Object -ComObject iTunes.Application if ($iTunes.playerstate -eq 1) { $iTunes.PlayerPosition = $iTunes.PlayerPosition + $step }
调用它
powershell.exe -file itunesForward.ps1 -step 15
多参数语法(注释是可选的,但允许):
<# Script description. Some notes. #> param ( # height of largest column without top bar [int]$h = 4000, # name of the output image [string]$image = 'out.png' )
还有一些高级参数的例子,例如 强制 :
<# Script description. Some notes. #> param ( # height of largest column without top bar [Parameter(Mandatory=$true)] [int]$h, # name of the output image [string]$image = 'out.png' ) Write-Host "$image $h"
默认值不适用于强制参数。您可以省略=$trueboolean 类型的高级参数[Parameter(Mandatory)]。
=$true
[Parameter(Mandatory)]