1. ホーム
  2. powershell

[解決済み] PowerShellスクリプトに引数を渡すにはどうしたらいいですか?

2022-03-18 15:07:09

質問

という名前のPowerShellスクリプトがあります。 itunesForward.ps1 iTunesを30秒早送りさせる。

$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"

デフォルト値は、必須パラメータでは動作しません。そのため =$true ブーリアン型のアドバンストパラメータには [Parameter(Mandatory)] .