2011-03-31 21 views
15

के रूप में जांचें कि PowerShell में कई SQL क्वेरी-जैसे cmdlets हैं, क्या यह जांचने का एक तेज़ तरीका है कि ऑब्जेक्ट Where-Object cmdlet के साथ अन्य ऑब्जेक्ट्स की सूची में है या नहीं?ऑब्जेक्ट्स की सूची में ऑब्जेक्ट

कुछ एसक्यूएल में की तरह:

SELECT column_name(s) 
FROM table_name 
WHERE column_name IN (value1,value2,...) 

बेशक मैं एक साधारण सबरूटीन लिख सकते हैं, लेकिन मैं सिर्फ अगर वहाँ ऐसी सुविधा है सोच रहा था।

उत्तर

24

आप -contains ऑपरेटर का उपयोग कर सकते हैं:

Get-ColumnNames $table | Where-Object { value1,value2,... -contains $_ } 

यह पीछे की ओर है, हालांकि बाईं ओर मूल्यों के संग्रह के साथ।

PowerShell 3 में आप भी -in ऑपरेटर का उपयोग कर सकते हैं:

Where-Object { $_ -in value1,value2,... } 

या यहाँ तक कि

Where-Object -In value1,value2,... 
इसके अलावा

, कैसे PowerShell तुलना ऑपरेटरों के साथ काम करता है की एक मोड़, आप उन्हें सीधे एक करने के लिए आवेदन कर सकते हैं बाईं तरफ संग्रह:

Where-Object { value1,value2,... -eq $_ } 

यहांऑपरेटर या तो संबंधित तत्व उत्पन्न करेगा यदि यह सूची में है, या $null (जो $false पर सहक्रिया करता है)।

+0

यह पीछे की तरफ है, लेकिन यह काम करता है। धन्यवाद! – Mordechai

संबंधित मुद्दे