(Süpürge) PowerShell çıktı görmezden gelmek daha iyi yolu ne
Hadi bir yöntem ya da bir şey döndüren bir Çalıştırın yok diyorsunuz, ama bunu kullanmak için ne ve çıkış için bunu istemezsin istemezsin. Bu iki yol buldum:
Add-Item > $null
[void]Add-Item
Add-Item | Out-Null
EDİT: Teşekkürler üçüncü yol Ocaso.
Sen ne kullanıyorsun? Hangisi daha iyi/temiz yaklaşımdır? Neden?
CEVAP
Ben sadece bildiğim dört seçenekten bazı testler yaptım.
Measure-Command {$(1..1000) | Out-Null}
TotalMilliseconds : 76.211
Measure-Command {[Void]$(1..1000)}
TotalMilliseconds : 0.217
Measure-Command {$(1..1000) > $null}
TotalMilliseconds : 0.2478
Measure-Command {$null = $(1..1000)}
TotalMilliseconds : 0.2122
## Control, times vary from 0.21 to 0.24
Measure-Command {$(1..1000)}
TotalMilliseconds : 0.2141
Ama Out-Null
bir şey yükü nedeniyle kullanmanızı öneririm. Bir sonraki önemli şey, benim için, okunabilirlik olurdu. Ben $null
yönlendirme $null
kendimi eşit ayarlama gibi. [Void]
, döküm tercih yapıyorum ama yeni kullanıcılar için kod ya bakarak ne kadar anlaşılır olmayabilir.
Ben biraz $null
yönlendirme çıkış tercih ederim sanırım.
Do-Something > $null
Edit
Stej tekrar yorumun ardından, boru hatları ile birkaç test daha yapacak daha iyi çıktı Harman yükü izole etmeye karar verdim.
Burada 1000 nesne basit bir boru hattı ile bazı testler.
## Control Pipeline
Measure-Command {$(1..1000) | ?{$_ -is [int]}}
TotalMilliseconds : 119.3823
## Out-Null
Measure-Command {$(1..1000) | ?{$_ -is [int]} | Out-Null}
TotalMilliseconds : 190.2193
## Redirect to $null
Measure-Command {$(1..1000) | ?{$_ -is [int]} > $null}
TotalMilliseconds : 119.7923
Bu durumda, Out-Null
60% masrafı var ve > $null
0.3% hakkında bir yükü vardır.
Ve şimdi basit 100 nesne bir boru hattı ile bazı testler için.
## Control Pipeline
Measure-Command {$(1..100) | ?{$_ -is [int]}}
TotalMilliseconds : 12.3566
## Out-Null
Measure-Command {$(1..100) | ?{$_ -is [int]} | Out-Null}
TotalMilliseconds : 19.7357
## Redirect to $null
Measure-Command {$(1..1000) | ?{$_ -is [int]} > $null}
TotalMilliseconds : 12.8527
Burada tekrar Out-Null
` yükü vardır. > $null
4% hakkında bir yükü vardır. Burada sayıları test etmek için biraz (her biri yaklaşık 5 kez koştu ve Orta yer aldı) çeşitli. Ama Out-Null
kullanmak için net bir sebep gösterir bence.
Powershell.exe yolu (v 2.0)...
Bir dosyanın önceki bir SVN revizyon i...
Oyuncular için daha iyi bir yolu int n...
Daha kısa bir yolu ruby ile aynı dizin...
Yapı numarası artırma için daha iyi bi...