PowerShell, en azından daha geleneksel bir programlama perspektifinden bakıldığında gerçekten tuhaf dönüş semantiğine sahiptir. Kafanı sarmak için iki ana fikir var:
- Tüm çıktılar yakalanır ve döndürülür
- Dönüş anahtar kelimesi gerçekten mantıklı bir çıkış noktasını gösterir
Bu nedenle, aşağıdaki iki komut dosyası bloğu aynı şeyi etkili bir şekilde yapacaktır:
$a = "Hello, World"
return $a
$a = "Hello, World"
$a
return
İkinci örnekteki $ a değişkeni, boru hattında çıktı olarak bırakılır ve belirtildiği gibi, tüm çıktı döndürülür. Aslında, ikinci örnekte, dönüşü tamamen atlayabilirsiniz ve aynı davranışı elde edersiniz (işlev, doğal olarak tamamlandığında ve çıktıkça dönüş ima edilir).
Daha fazla işlev tanımınız olmadan neden bir PSMethod nesnesi elde ettiğinizi söyleyemem. Tahminimce, muhtemelen yakalanmayan ve çıkış hattına yerleştirilen birkaç satırlık bir şey var.
Tek bir satıra birden fazla ifade yerleştirmediğiniz sürece, muhtemelen bu noktalı virgüllere ihtiyacınız olmadığını da belirtmek gerekir.
Dönüş semantiği hakkında TechNet'teki about_Return sayfasında veya help return
komutu PowerShell'in kendisinden çağırarak daha fazla bilgi edinebilirsiniz .