PowerShell में "%" (प्रतिशत) क्या करता है?


106

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

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

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

{ write-host 'hello' }

% { write-host 'hello' }

लेकिन जब हम पाइपलाइन के बाद एक स्क्रिप्ट ब्लॉक जोड़ते हैं, तो हमें पहले% होना चाहिए।

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

2
क्या आपने "
— पॉवरशेल

17
आपने
— mjolinor

7
@mjolinor यह उपयोगी है। मुझे नहीं पता था कि मुझे प्रतीकों पर मदद मिल सकती है। मैं देख रहा हूं कि हम get-help से $ _ भी देख सकते हैं। एक दम बढ़िया!
— शॉन लुटिन

1
यह एक मापांक ऑपरेटर भी है! बस इस संदर्भ में नहीं
— Cole9350

41
@PeeHaa आपका सुझाव यहाँ ले जाता है।
— NiloCK

जवाबों:


144

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

> Get-Alias -Definition ForEach-Object

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

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

> 11 % 5

1

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

> $this = 11
> $this %= 5
> $this

1

2
मैं इसे एक बार उत्तर के रूप में चिह्नित करूंगा क्योंकि इसमें विभिन्न संदर्भों में मापांक ऑपरेटर के रूप में% भूमिका शामिल है।
— शॉन लुटिन

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

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

1
मैं MSDN पर आधिकारिक दस्तावेज में ForEach-Object का अर्थ कहां पा सकता हूं?
— दाएं

मैं साइमन कैटलिन से असहमत हूं, उस तर्क से हम सभी को असेंबली का उपयोग करना चाहिए, क्योंकि बाकी सिर्फ
— सिन्गनेटिक

16

एक पोस्ट PowerShell - विशेष वर्ण और टोकन सहित कई प्रतीकों का वर्णन प्रदान करता है%

% (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

7
@ शुनलुटिन: मूल्य एक कड़ी है, जिसमें% सहित कई विशेष पात्रों का वर्णन किया गया है
— माइकल फ्रीजिम

तकनीकी रूप से यह एक उपनाम है ForEach-Object। ForEachएक उपनाम के लिए भी है ForEach-Object- जब एक बयान की शुरुआत में इस्तेमाल किया जाता है, जहां यह एक लूप नियंत्रण कीवर्ड (जैसे while) है।
— mwfearnley

4

%प्रतिस्थापित कर सकते हैं जो या तो बिना काम नहीं करेगा या ।Get-ChildItem | ForEach-Object { write-host $_.Name }%ForEach-Object

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.