Üzgünüz, yapamazsınız. -Debug
ortak bir parametredir, bu nedenle -Debug
ve -db
, yazdığınız işlevler de dahil olmak üzere hemen hemen her şeyde kullanılabilen anahtarlardır. Hata size söylediği gibi, zaten tanımlanmış.
o undefining dolaşmak mümkün olsa bile yerleşik takma adları, o unexpectantly sık -db
yerine -Debug
kullanan başkası için test-db -db
gibi bir çağrının anlamını değiştirir. Hata ayıklama çıktısını etkinleştirmeyi beklerler, farklı bir parametre belirtmezler.
function test-db{
param(
[parameter(mandatory=$true)]
[string]$database)
write-host 'database' $database
write-debug 'debugging output'
}
Şimdi test-db server
, test-db -db server
ve test-db server -db
ile çağrı:
bu işlevi göz önünde bulundurun. İlki,
write-debug
'u, diğer 2'si ise
-db
nerede olursa olsun yapmaz.
MSDN başına, bu konuda
Parameter 'db' cannot be specified because it conflicts with the parameter alias of the same name for parameter 'Debug'.
için bilgiler Bu çalışması gerekir
In addition to using the AliasAttribute attribute, the Windows PowerShell runtime performs partial name matching, even if no aliases are specified. For example, if your cmdlet has a FileName parameter and that is the only parameter that starts with F, the user could enter Filename, Filenam, File, Fi, or F and still recognize the entry as the FileName parameter.
Powershell bu hatayı verecektir çünkü ayrı bir parametreyi
[string]$db
define (veya$db
için$database
adlandırmak) olamaz. Aynı takma adla iki (veya daha fazla) parametreniz var gibi görünüyor. – Richard