Cmdlet Parametre Türleri
Bu konu, cmdlet'lerde bildirebileceğiniz farklı parametre türlerini açıklamaktadır. Cmdlet parametreleri konumsal, adlandırılmış, gerekli, isteğe bağlı veya anahtar parametreleri olabilir.
Konumsal ve Adlandırılmış Parametreler
Tüm cmdlet parametreleri ya adlandırılmış ya da konumsal parametrelerdir. Adlandırılmış bir parametre, cmdlet'i çağırırken parametre adını ve bağımsız değişkeni yazmanızı gerektirir. Konumsal bir parametre yalnızca bağımsız değişkenleri göreceli sırayla yazmanızı gerektirir. Sistem daha sonra ilk isimsiz argümanı ilk konumsal parametreyle eşleştirir. Sistem ikinci isimsiz bağımsız değişkeni ikinci isimsiz parametreyle eşleştirir ve bu şekilde devam eder. Varsayılan olarak tüm cmdlet parametreleri parametreler olarak adlandırılır.
Adlandırılmış bir parametre tanımlamak için, aşağıdaki parametre bildiriminde gösterildiği gibi, Parametre öznitelik bildirimindeki Konum anahtar kelimesini çıkarın.
[Parameter(ValueFromPipeline=true)]
public string UserName
{
get { return userName; }
set { userName = value; }
}
private string userName;
Konumsal bir parametre tanımlamak için, Parametre özniteliği bildirimine Konum anahtar sözcüğünü ekleyin ve ardından bir konum belirtin. Aşağıdaki örnekte KullanıcıAdı parametresi 0 konumuna sahip konumsal bir parametre olarak bildirilmektedir. Bu, çağrının ilk bağımsız değişkeninin otomatik olarak bu parametreye bağlanacağı anlamına gelir.
[Parameter(Position = 0)]
public string UserName
{
get { return userName; }
set { userName = value; }
}
private string userName;
Not
İyi cmdlet tasarımı, en çok kullanılan parametrelerin konumsal parametreler olarak bildirilmesini önerir; böylece cmdlet çalıştırıldığında kullanıcının parametre adını girmesine gerek kalmaz.
Konumsal ve adlandırılmış parametreler, tek bağımsız değişkenleri veya virgülle ayrılmış birden çok bağımsız değişkeni kabul eder. Birden fazla bağımsız değişkene yalnızca parametrenin bir dize dizisi gibi bir koleksiyonu kabul etmesi durumunda izin verilir. Konumsal ve adlandırılmış parametreleri aynı cmdlet'te karıştırabilirsiniz. Bu durumda, sistem önce adlandırılmış bağımsız değişkenleri alır ve ardından kalan adsız bağımsız değişkenleri konumsal parametrelerle eşleştirmeye çalışır.
Aşağıdaki komutlar, Get-Command cmdlet'inin parametreleri için tekli ve çoklu bağımsız değişkenleri belirtebileceğiniz farklı yolları gösterir. Son iki örnekte, Ad parametresi konum parametresi olarak tanımlandığından -name'nin belirtilmesine gerek olmadığına dikkat edin.
Get-Command -Name get-service
Get-Command -Name get-service,set-service
Get-Command get-service
Get-Command get-service,set-service
Zorunlu ve İsteğe Bağlı Parametreler
Ayrıca cmdlet parametrelerini zorunlu veya isteğe bağlı parametreler olarak da tanımlayabilirsiniz. (Windows PowerShell çalışma zamanı cmdlet'i çağırmadan önce zorunlu bir parametrenin belirtilmesi gerekir.) Varsayılan olarak parametreler isteğe bağlı olarak tanımlanır.
Zorunlu bir parametre tanımlamak için, Parametre öznitelik bildirimine Zorunlu anahtar sözcüğünü ekleyin ve bunu aşağıdaki parametre bildiriminde gösterildiği gibi true olarak ayarlayın.
[Parameter(Position = 0, Mandatory = true)]
public string UserName
{
get { return userName; }
set { userName = value; }
}
private string userName;
İsteğe bağlı bir parametre tanımlamak için, aşağıdaki parametre bildiriminde gösterildiği gibi, Parametre öznitelik bildirimindeki Zorunlu anahtar kelimesini çıkarın.
[Parameter(Position = 0)]
public string UserName
{
get { return userName; }
set { userName = value; }
}
private string userName;
Parametreleri Değiştir
Windows PowerShell, cmdlet çağrıldığında parametre belirtilmemişse değeri otomatik olarak false olarak ayarlanan bir parametreyi tanımlamanıza olanak tanıyan bir System.Management.Automation.SwitchParameter türü sağlar. Mümkün olduğunda Boolean parametreleri yerine anahtar parametrelerini kullanın.
Aşağıdaki örneği düşünün. Varsayılan olarak, birkaç Windows PowerShell cmdlet'i bir çıkış nesnesini işlem hattından geçirmez. Ancak bu cmdlet'ler, varsayılan davranışı geçersiz kılan bir PassThru anahtar parametresine sahiptir. Bu cmdlet'ler çağrılırken PassThru parametresi belirtilirse cmdlet, ardışık düzene bir çıkış nesnesi döndürür.
Parametre çağrıda belirtilmediğinde, parametrenin varsayılan değerinin true olmasını istiyorsanız, parametrenin anlamını tersine çevirmeyi düşünün. Örnek olarak, parametre özniteliğini true Boolean değerine ayarlamak yerine, özelliği System.Management.Automation.SwitchParameter türü olarak bildirin ve ardından parametrenin varsayılan değerini olarak ayarlayın. yanlış.
Bir anahtar parametresi tanımlamak için, özelliği aşağıdaki örnekte gösterildiği gibi System.Management.Automation.SwitchParameter türü olarak bildirin.
[Parameter(Position = 1)]
public SwitchParameter GoodBye
{
get { return goodbye; }
set { goodbye = value; }
}
private bool goodbye;
Cmdlet'in belirtildiğinde parametre üzerinde işlem yapmasını sağlamak için giriş işleme yöntemlerinden birinde aşağıdaki yapıyı kullanın.
protected override void ProcessRecord()
{
WriteObject("Switch parameter test: " + userName + ".");
if(goodbye)
{
WriteObject(" Goodbye!");
}
} // End ProcessRecord
Ayrıca Bakınız
Windows PowerShell Cmdlet'i Yazma