0
我正在處理CSV文件以插入列。如果文件具有字段名稱的頭部記錄(-hasheader),那麼我還需要一個列名稱(-new_label)值。如何僅在使用可選開關時指定所需參數
我把這兩個參數放到參數集中,但是如果不使用-hasheader,則不需要-new_label。除非使用-hasheader,否則我怎麼會導致-new_label不被需要?這是必須使用DynamicParam的地方嗎?
[cmdletbinding()]
Param(
[Parameter(Mandatory=$true, position=0)]
[string]$csv_in
,[Parameter(Mandatory=$true, position=1)]
[string]$csv_out
,[Parameter(Mandatory=$true, position=2)]
[string]$column
,[Parameter(Mandatory=$true, position=3)]
[string]$new_value
,[Parameter(Mandatory=$false, ParameterSetName="HeaderRecord")]
[switch]$hasheader
,[Parameter(Mandatory=$true, ParameterSetName="HeaderRecord")]
[string]$new_label
,[Parameter(Mandatory=$false)]
[string]$delimiter = ','
,[Parameter(Mandatory=$false)]
[string]$quote = '"'
)
我也試了下面。 PowerShell沒有抱怨作爲腳本塊的Mandatory值,但它仍然需要new_label參數。
,[Parameter(Mandatory={$hasheader -eq $true}, ParameterSetName="HeaderRecord")]