Parantez kullanmadan powershell'de bir nesnenin özelliğini nasıl alabilirim?


13

Ben sık sık parantez içinde bir komut çevrelemek ve sonra bir özelliğin değerini almak için özellik erişim operatörü (nokta-sözdizimi) kullanmak zorunda buluyorum. Oldukça sinir bozucu çünkü nerede olduğumu yazmaya devam edeceğim zaman satırın başına geri dönmek zorundayım. Daha büyük bir borulu komut setinin ortasında olduğumda özellikle can sıkıcı.

Misal

Aşağıdaki komutu alırsam

Get-PSProvider FileSystem

ve Drivesözelliği almak istiyorum , önce parantez tüm komutu çevrelemek gerekir:

(Get-PSProvider FileSystem).Drives

Tek bir mülkün değerini almanın daha hızlı bir yolu var mı?

Yanıtlar:


14

Kullanabilirsiniz Select-Object -ExpandProperty <property name>. Bu takma ad kullanılarak selectve mülk adının yalnızca bir kısmını yazarak kısaltılabilir :

Get-PSProvider FileSystem| select -exp Drives

Bu yöntemin ek bir yararı, birden çok nesne için tek bir özelliğe erişebilmenizdir.

Bu hiçbir şey döndürmez ( Güncelleme: PowerShell v3'te çalışır.):

(Get-PSProvider).Drives

Ancak, bu, tüm sağlayıcılar için sürücüleri döndürür:

Get-PSProvider| select -exp Drives

Çok ilginç. Düzeltme için teşekkürler.
soandos
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.