解釋 PowerShell 高階函式中的 AllowEmptyString() 和 AllowEmptyCollection()。
AllowEmptyString() 屬性用於字串變數,AllowEmptyCollection() 用於不同資料型別的陣列(集合)。
請看下面的示例。此處,我們使用的是一個必填變數 $name(是一個字串)和 $stringarray(是一個字串陣列)。
function print_String{
[cmdletbinding()]
param(
[parameter(Mandatory=$True)]
[string]$name,
)
Write-Output "Writing a single string"
$name
}如果我們獲取以上變數的輸出,會生成以下錯誤。
PS C:\WINDOWS\system32> print_String cmdlet print_String at command pipeline position 1 Supply values for the following parameters: name: print_String : Cannot bind argument to parameter 'name' because it is an empty string. At line:1 char:1 + print_String + ~~~~~~~~~~~~ + CategoryInfo : InvalidData: (:) [print_String], ParameterBindin g ValidationException + FullyQualifiedErrorId : ParameterArgumentValidationErrorEmptyStringNotAl l owed,print_String
如你在以上輸出中看到的,該指令碼不接受空字串。若要允許空字串,你需要使用 AllowEmptyString() 引數,這樣錯誤就不會被生成。
function print_String{
[cmdletbinding()]
param(
[parameter(Mandatory=$True)]
[AllowEmptyString()]
[string]$name
)
Write-Output "Writing a single string"
$name
}輸出 −
PS C:\WINDOWS\system32> print_String cmdlet print_String at command pipeline position 1 Supply values for the following parameters: name: Writing a single string
在以上示例中,你可以看到在你添加了 AllowEmptyString() 引數後,該程式接受了空字串。類似地,當你新增 AllowEmptyCollection() 引數後,PowerShell 將接受陣列的空值。
function print_String{
[cmdletbinding()]
param(
[parameter(Mandatory=$True)]
[AllowEmptyCollection()]
[string[]]$stringarray
)
Write-Output "Writing a string array"
$stringarray
}輸出
PS C:\WINDOWS\system32> print_String cmdlet print_String at command pipeline position 1 Supply values for the following parameters: stringarray[0]: Writing a string array
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP