2014-04-03 7 views
64

ऐसा लगता है कि% ऑपरेशन पाइपलाइन के बाद स्क्रिप्ट ब्लॉक शुरू करता है, हालांकि about_Script_Blocks इंगित करता है कि% आवश्यक नहीं है।PowerShell में "%" (प्रतिशत) क्या करता है?

ये सब ठीक काम करते हैं।

get-childitem | %{ write-host $_.Name } 

{ write-host 'hello' } 

%{ write-host 'hello' } 

लेकिन जब हम पाइपलाइन के बाद एक स्क्रिप्ट ब्लॉक जोड़ने के लिए, हम पहले% की आवश्यकता है।

get-childitem | { write-host $_.Name } 
+2

आप की कोशिश की है खोज "शक्तिशक्ति प्रति सेंट साइन " – PeeHaa

+0

@PeeHaa ऐसा किया। धन्यवाद! –

+10

आपने गेट-हेल्प% – mjolinor

उत्तर

94

जब एक cmdlet (जैसे आपका उदाहरण के रूप में) के संदर्भ में प्रयोग किया जाता है, यह ForEach-Object के लिए एक उपनाम है:

:

> Get-Alias -Definition ForEach-Object 

CommandType  Name            Definition 
-----------  ----            ---------- 
Alias   %             ForEach-Object 
Alias   foreach            ForEach-Object 

जब एक समीकरण के संदर्भ में प्रयोग किया जाता है, यह modulus operator है

> 11 % 5 

1 

और मापांक ऑपरेटर के रूप में, % भी एक assignment operator (%=) में इस्तेमाल किया जा सकता:

+1

करेंगे, मैं इसे अलग-अलग संदर्भों में मॉड्यूलस ऑपरेटर के रूप में% भूमिका निभाने के बाद इसे उत्तर के रूप में चिह्नित करूंगा । –

+1

जोड़ा गया समीकरण और असाइनमेंट ऑपरेटर उदाहरण – Kohlbrr

+4

Foreach-Object के मामले में, मैं "%" प्रतीक का उपयोग न करने की सलाह दूंगा - यह आपके कोड को पढ़ने/बनाए रखने के लिए लोगों को कठिन बनाता है - खासकर पीएस के लिए नए लोग। आइए इसका सामना करें, अधिक लोग जो पीएस उठाते हैं, बेहतर। –

0

% Get-ChildItem |ForEach-Object{ write-host $_.Name } जगह ले सकता है और इसके बिना % या ForEach-Object

+0

यह उत्तर मौजूदा उत्तर में मूल्य नहीं जोड़ता है। –

3

एक पोस्ट PowerShell - Special Characters And Tokens
% सहित कई प्रतीकों में से विवरण प्रदान करता है नहीं जा सकते

% (percentage) 
1. Shortcut to foreach. 
Task: Print all items in a collection. 
Solution. 
... | % { Write-Host $_ } 
2. Remainder of division, same as Mod in VB. 
Example: 
5 % 2 
+0

यह उत्तर दो मौजूदा उत्तरों के लिए मूल्य जोड़ नहीं करता है। –

+1

@ शुनुट्टिन: मान एक लिंक है, जिसमें कई विशेष वर्णों का वर्णन किया गया है जिनमें% –

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