Nasıl * gerekir * powershell komut çıktısını filtreliyorum? [kapalı]


1

Tam bir pencere yığını kullanan bir firmada çalışan yeni bir işe başladım. Verimlilik konusunda geriye doğru gittiğimi hissediyorum, çünkü Windows daha az güçlü değil, ancak çevreye gerçekten aşina olduğum için. Kendimi sürekli olarak Powershell'e karşı başımdan vururken, ellerimi fırlatırken ve Cygwin'de yapmaya çalıştığım her şeyi çarparken buluyorum. Bunun kirli bir çözüm olduğunu düşünüyorum ve uygun Windows ortamında rahat olmayı tercih ederim.

Bununla birlikte, kendim gibi bir acemi, yapmak istediğim genel cmdlet'ler için get-komutunun çıktısını arayarak ne yapmalı? Bir nesne uzamında düşünmem gerektiğini düşünüyorum, bu yüzden sunulan özellikleri araştırmak için zarif bir yol var, böylece belirli bir cmdlet için takma ad olup olmadığını öğrenmek veya bir cmdlet için arama yapmak gibi şeyler yapabilirim bile mevcut mu? (Bir link link cmdlet'i arıyordu ve mümkünse googling üzerinden cmdline'da kalmayı tercih ederdim).

Grep / piping eksikliği beni deli ediyor. Bir şeyleri kaçırmalıyım, çıkarıma verilen herhangi bir tavsiye?


Bu soru biraz fazla geniş. (" dirÇıktıyı yalnızca 1 MB'tan büyük .exedosyaları listelemek için nasıl filtreleyebilirim") gibi daha belirgin sorular , ALSO'nun PowerShell sözdizimini öğrettiği belirli bir cevap üretecektir .
Jay Bazuzi

Yanıtlar:


2

Tamam, PowerShell'i başlatırken bilmesini istediğim bazı şeyler var:

Bir komutun olup olmadığını kontrol etmek için şöyle bir şey yapabilirsiniz:

Get-Command *Item*

Bir nesnenin hangi özelliklere sahip olduğunu görmek için şöyle bir şey yapabilirsiniz:

$Items = Get-ChildItem -Path C:\
$Items | Get-Member  

Kullanabileceğiniz bir şey için takma ad olup olmadığını görmek için:

Get-Alias -Definition Get-ChildItem

Sonunda bir komutu nasıl kullanacağınızı görmek için kullanabilirsiniz:

Get-Help Get-ChildItem

Ayrıca PowerShells Pipline en güçlü satış noktalarından biridir, “|” hakkında bir şey biliyorsun. boru sembolü doğru mu?


0

Komut satırında yazdığınızı ve hız istediğinizi varsayarak, kısaltılmış formları kullanacağım. Bir komut dosyasında, bakım için tam adlardan hoşlanırım.

Belirli bir cmdlet için takma ad olup olmadığını öğrenin

Bu işe yarıyor, ama asla hatırlayamıyorum:

PS> gal -def get-childitem

bu yüzden bir sorgu kullanıyorum:

PS> gal | ? { $_.Definition -eq "Get-ChildItem" }

?için bir takma addır Where-Object, bu nedenle çıktıyı süzme şeklinizdir.

cmdlet bile varsa arama mı? (Bir link link cmdlet'i arıyordu ve mümkünse googling üzerinden cmdline'da kalmayı tercih ederdim).

Deneyebilirim:

PS> help *link*

Ancak sık sık Google’a gidiyorum, bu da beni StackOverflow’a (elbette!) Döndürdü https://stackoverflow.com/questions/894430/powershell-hard-and-soft-links

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.