Powershell: рд╢реВрдиреНрдп-рд╕рд╢рд░реНрдд рд╕рджрд╕реНрдп рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдЪрд░ рдирд╛рдореЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ {...} рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 17 рджрд┐рд╕ре░ 2019  ┬╖  53рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: PowerShell/PowerShell

#3240 рд╕реЗ рдЕрдиреБрд╡рд░реНрддреАред

рд╢реВрдиреНрдп-рд╕рд╢рд░реНрдд рд╕рджрд╕реНрдп рдкрд╣реБрдВрдЪ ( ?. ) рд▓рд╛рдЧреВ рдХреА рдЧрдИ рдереА рдФрд░ 7.0 рдореЗрдВ рдПрдХ _рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ_ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧреА

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд╣рд┐рдд рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЪрд░ рдирд╛рдо {...} рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реЛ , рдХреНрдпреЛрдВрдХрд┐ ? рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдПрдХ рдЪрд░ рдирд╛рдо рдореЗрдВ рдПрдХ рдХрд╛рдиреВрдиреА рдЪрд░рд┐рддреНрд░ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ _doesn't_ {...} рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ

рдпрд╣реА рд╣реИ, рдпрджрд┐ рдЖрдк $obj.Method() рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрджрд┐ $obj $null (рдпрд╛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд) рд╣реИ, рддреЛ рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░реЗрдВрдЧреЗ, рд╕реА # рдХреЗ рд╕рдорд╛рди:

# Does NOT work as intended.
# 'obj?' as a whole is interpreted as the variable name.
$obj?.Method()

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

# !! Must enclose 'obj' in {...} to signal that '?' is a syntactic element as part of '?.'
${obj}?.Method()

_рдЕрдкрдбреЗрдЯ_: рдирд▓-рдХреЛрд▓реЗрд╕рд┐рдВрдЧ - $var??='default рдФрд░ $a??$b - рдФрд░ рдЯрд░реНрдирд░реА рдСрдкрд░реЗрдЯрд░ - $var?1:0 - рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ ? рд╕реЗ рдкрд╣рд▓реЗ рд╡реНрд╣рд╛рдЗрдЯрд╕реНрдкреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИ)ред

рдпрд╣ рдЖрд╡рд╢реНрдпрдХрддрд╛ (рдП) рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдФрд░ (рдмреА) рдмреЛрдЭрд┐рд▓ рд╣реИ:

  • рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ {...} рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдЬрд╛рди рдкрд╛рдПрдВрдЧреЗ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ _it_ рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рд╕рдВрднрд╡рддрдГ _undetected_, рдЬрдм рддрдХ рдХрд┐ Set-StrictMode -Version 2 рдпрд╛ рдЙрдЪреНрдЪрддрд░ рдкреНрд░рднрд╛рд╡ рдореЗрдВ рди рд╣реЛ): $o = [pscustomobject] @{ one = 1 }; $o?.one

  • рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ _do_ рдХреЛ {...} рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдЪрд▓ рдЬрд╛рддрд╛ рд╣реИ:

    • рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐-рд╕рд╣рдЬ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдХрд╛рд░рдг, рд╡реЗ рдЕрд╡рд╕рд░ рдкрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рднреВрд▓ рдЬрд╛рдПрдВрдЧреЗред
    • рдЬрдм рд╡реЗ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреГрддреНрд░рд┐рдо рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд┐рд░рд╛рд╢рд╛ рдХрд╛ рдПрдХ рдирд┐рд░рдВрддрд░ рд╕реНрд░реЛрдд рд╣реЛрдЧреА, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ {...} рдЯрд╛рдЗрдк рдХрд░рдирд╛ рдХрдард┐рди рд╣реИред

{...} рдЙрдкрдпреЛрдЧ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдпрд╣ _рдмреНрд░реЗрдХрд┐рдВрдЧ_ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рдпрдХреАрдирди рдмрдХреЗрдЯ 3 рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЧреНрд░реЗ рдПрд░рд┐рдпрд╛ ред


рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдХреНрдпреЛрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:

рдиреЛрдЯ: @rjmholt рдЪрд░реНрдЪрд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдкрд╛рд╡рд░рд╢реЗрд▓ рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рдмрджрд▓рдирд╛ рдЕрддреНрдпрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд _in рд╕рд╛рдорд╛рдиреНрдп_ рдХреНрдпреЛрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдиреАрдЪреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдпрд╣рд╛рдВ рдЕрдкрд╡рд╛рдж рдмрдирд╛рдиреЗ рд▓рд╛рдпрдХ рд╣реИред

?. рдПрдХ _new_ рд╡рд╛рдХреНрдпрд╛рддреНрдордХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ; рдкрд░рд┐рднрд╛рд╖рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЬреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ _cannot_ (рд╕рд╛рд░реНрдердХ рд░реВрдк рд╕реЗ) рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ - рдЬрдм рддрдХ рдХрд┐ рдЖрдк рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рд╢рд░реНрдд рдирд╣реАрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рд╡рд┐рд░рд╛рд╕рдд-рд╕рдВрд╕реНрдХрд░рдг-рд╕рдВрдЧрдд рдХреЛрдб рдкрде рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╢рд╛рдпрдж рд╣реА рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд▓рдЧрддрд╛ рд╣реИ - рддрдм рдЖрдк рдХреЗрд╡рд▓ рд╡рд┐рд░рд╛рд╕рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд░рд╣реЗрдВрдЧреЗред

рд╣рд╛рдВ, рдкреБрд░рд╛рдиреА рд▓рд┐рдкрд┐рдпреЛрдВ рдореЗрдВ $var?.foo рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЬреЛ рдПрдХ рдЪрд░ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ $var? рдХрд░рддреА рд╣реИ, рдЯреВрдЯ рдЬрд╛рдПрдЧреА, рд▓реЗрдХрд┐рди:

  • ? рдХреЛ рдХрднреА рднреА рдХрд┐рд╕реА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП _рдЗрд╕реЗ {...} _ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд┐рдП рдмрд┐рдирд╛ред

  • рдЪреВрдВрдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реИ рдФрд░ рд╢рд╛рдпрдж _рдЕрдЬреНрдЮрд╛рдд_ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдРрд╕реЗ рдЪрд░ рдирд╛рдо рдЬрдВрдЧрд▓реА рдореЗрдВ рдмрд╣реБрдд рджреБрд░реНрд▓рдн рд╣реИрдВ, рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрднрд╡ рд╕реЗ рдмреЛрд▓рддреЗ рд╣реБрдП, рд▓реЗрдХрд┐рди @mburszley рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЕрдзрд┐рдХ рдареЛрд╕ рд╕рдмреВрдд рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ ред

    • рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рд░реВрдмреА рдХреЗрд╡рд▓ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ _end_ рдкрд░ ? (рдФрд░ ! ) рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рд╡рд╣рд╛рдВ рдХреЗрд╡рд▓ _method_ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИрдВ, рдФрд░ рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд░реВрдмреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ _not_ рдорд╛рди рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЕрдиреНрдп рднрд╛рд╖рд╛рдПрдВ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИрдВ рдПрдХ рд╣реА рдмрд╛рддред

рддреЛ, рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдмреЛрд▓рдирд╛:

  • рдореМрдЬреВрджрд╛ рдХреЛрдб рдХрд╛ рд╡рд┐рд╢рд╛рд▓ рдмрд╣реБрдордд рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ - $var?.foo рдЬреИрд╕реЗ рдЯреЛрдХрди рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

  • рдпрджрд┐ рдЖрдк рдирдП рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рд╕рд╛рде $var?.foo рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рд╛рдБ, рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдЕрд▓рдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдПрдХ рд╕реНрдкрд╖реНрдЯ рддрд░реАрдХреЗ рд╕реЗ рддреЛрдбрд╝рдиреЗ рдХреЗ рдмрдЬрд╛рдп), рдЬреЛ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рдЦреНрдд рдореЛрдб рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡ рдореЗрдВ рд╣реИ - рд▓реЗрдХрд┐рди _рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рдЪрд╛рд╣рд┐рдП рд╡реИрд╕реЗ рднреА рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдиреНрдпреВрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ_ ( #requires -Version , рдореЙрдбреНрдпреВрд▓-рдореИрдирд┐рдлреЗрд╕реНрдЯ рдХреБрдВрдЬрд┐рдпрд╛рдБ)ред

рд╕рдм рдХреБрдЫ, рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдмрд╛рд▓реНрдЯреА 3 рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдорд╛рдорд▓рд╛ рд╣реИ: рдПрдХ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓рд╛рдн рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╕рдордп рдмрд╣реБрдд рдХрдо рдореМрдЬреВрджрд╛ рдХреЛрдб рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ (рдпрд╛, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдХрд╛рд░рдг рдмрд╛рд░рд╣рдорд╛рд╕реА рд╕рд┐рд░рджрд░реНрдж рд╕реЗ рдмрдЪрдирд╛)ред

Committee-Reviewed Issue-Enhancement WG-Language

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@rjmholt , рдЬрдмрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕рднреА рдЗрд╕ рдмрд╛рдд рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдмрджрд▓рд╛рд╡ рдХрд┐рддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ _in рд╕рд┐рджреНрдзрд╛рдВрдд_, рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ _in рдЕрднреНрдпрд╛рд╕_, рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдкреАрдПрд╕рдПрд╕рдП рдирд┐рдпрдо рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  • @ThomasNieto рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ - рдЕрдЧрд░ рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреЙрд░реНрдкрд╕ рд╕рднреА рдкрд╛рд╡рд░рд╢реЗрд▓ рдХреЛрдб рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╣реИ - рддреЛ _рд╡рд╕реНрддреБрддрдГ рдХреЛрдИ рднреА рдЙрди рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ ? _ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред

  • рдЕрдЧрд░ рдореИрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдКрдВ, рддреЛ рдЬреНрдпрд╛рджрд╛рддрд░ рд▓реЛрдЧ рдРрд╕реЗ рдЪрд░ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП _рдерд┐рдВрдХ_ рднреА рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЙрдирд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ (рдореБрдЭреЗ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛), рдФрд░ рд╢рд╛рдпрдж рдЗрд╕ рдЕрдкрд╡рд╛рдж рдкрд░ рднреА рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдХрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд $? рдЪрд░ рдХрд╛ рдЧрдарди рд╣реЛрддрд╛ рд╣реИ (рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рд╕рдорд╛рди рд░реВрдк рд╕реЗ POSIX- рд╕рдВрдЧрдд рд╢реЗрд▓ рдореЗрдВ рдЕрдкрд╡рд╛рдж рд╣реИ рдЬреИрд╕реЗ bash )ред

    • рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, @ThomasNieto рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЛ рдХрд░реАрдм рд╕реЗ 8 рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реЗ:

      • 5 рдореЗрдВ рдХреЗрд╡рд▓ _false рд╕рдХрд╛рд░рд╛рддреНрдордХ_ рд╣реЛрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН рдЪрд░ _strings_ рдХреЗ рдЕрдВрджрд░ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ "Are you sure you want to kill $vParam?" - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпреЗ рдЙрдкрдпреЛрдЧ _broken_ рд╣реИрдВ, рдФрд░ рдпрд╣ рдкреНрд░рдХрдЯ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЗрдЦрдХреЛрдВ рдиреЗ _not_ ? рд╣реЛрдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреА рдереА рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдирд╛рдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ред

      • рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реЗ 2 рдЕрдм рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВред

      • рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ _1_ ? -рдЕрдВрдд рд╡рд╛рд▓реЗ рдЪрд░ рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рд╣реИ - _Boolean_ рдЪрд░ (рдЬреИрд╕реЗ, $key1? ) рдХреЗ рд░реВрдк рдореЗрдВ, рдЬреЛ рдПрдХ рддрд░рдл, рдЗрд╕рд▓рд┐рдП _not_ рд╕рджрд╕реНрдп-рдкрд╣реБрдВрдЪ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд рд╣реИрдВ , . /cc @stevenayers.

рдЙрдкрд░реЛрдХреНрдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣ рдореБрдЭреЗ рдПрдХ рдкрд╛рдареНрдпрдкреБрд╕реНрддрдХ рдмрдХреЗрдЯ 3 рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЧреНрд░реЗ рдХреНрд╖реЗрддреНрд░ рдкрд░рд┐рд╡рд░реНрддрди, рдЬреЛ рдЗрд╕рд▓рд┐рдП _рд╕реНрд╡реАрдХрд╛рд░реНрдп_ рд╣реИ - рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ _рд▓рд╛рдн_ рдХрд╛ рддрд░реНрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

_Documenting_ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди (рддрд░реНрдХ рдХреЗ рд╕рд╛рде) рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдмреЗрд╢рдХ:

  1. рдпрд╣ (рдП) рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕рд╣реА рд╣реЛрдиреЗ рдФрд░ (рдмреА) рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдХреЙрд░реНрдкрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╣реЛрдиреЗ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред

  2. рдпрд╣ рд╕рдорд┐рддрд┐ рдХреЗ рдЗрд╕ рджрд╛рд╡реЗ рдХреЗ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд┐рдкрд░реАрдд рд╣реИ рдХрд┐ "рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрди рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЪрд░ рдирд╛рдореЛрдВ рдХрд╛ рдХрд╛рдлреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛" (рдЬреЛ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдХреЗрд╡рд▓ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдЧреА рдпрджрд┐ рдРрд╕реЗ рдЪрд░ рдирд╛рдо {...} рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдирд╣реАрдВ рд╣реИрдВ

рдЗрд╕ рдзрд╛рд░рдгрд╛ рдкрд░ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реБрдП рдХрд┐ 1. рд╕рддреНрдп рд╣реИ (рд╣рдордиреЗ 2 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╕реБрдирд╛ рд╣реИ), рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:

  • рдмреИрдВрдб-рд╕рд╣рд╛рдпрддрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рдЪрд░ рдирд╛рдореЛрдВ рдореЗрдВ ? рдХреЛ рдХреЗрд╡рд▓ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ, рдЬрдм рддрдХ рдХрд┐ {...} рдореЗрдВ рд╕рдВрд▓рдЧреНрди рди рд╣реЛ ( $? рдХреЗ рд╕реНрдкрд╖реНрдЯ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде) - рдпрд╣ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЫреЛрдЯреЗ рдХреЛ рддреЛрдбрд╝ рджреЗрдЧрд╛ рдЙрди рд▓рд┐рдкрд┐рдпреЛрдВ рдХрд╛ рдЕрдиреБрдкрд╛рдд рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВред

    • рдпрд╛рдиреА, $key1? рдЬреИрд╕рд╛ рдХреБрдЫ рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рди рддреЛ . рдФрд░ рди рд╣реА рдХреЛрдИ рдЕрдиреНрдп ? ( $key1??'else' ) рдФрд░ рди рд╣реА рдПрдХ рдЯрд░реНрдирд░реА рдПрдХреНрд╕рдкреНрд░реЗрд╢рди ( $key1?1:0 ) рдПрдХ _parser рддреНрд░реБрдЯрд┐_ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ред

      • рдЬреИрд╕рд╛ рдХрд┐ рдирд▓-рдХреЛрд▓реЗрд╕рд┐рдВрдЧ рдФрд░ рдЯрд░реНрдирд░реА рдСрдкрд░реЗрдЯрд░ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ, рд╡реЗ рднреА рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рд╣реЛрдВрдЧреЗ - рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдЖрдкрдХреЛ рдпрд╛ рддреЛ _space_ - $key1 ?1:0 / $key1 ??'else' - рдпрд╛ {...} - ${key1}?1:0 / ${key1}??'else'

    • _expandablestrings_ рдХреЗ рдЕрдВрджрд░, ? рдХреЛ рдЕрдм рдПрдХ (рдЧреИрд░- {...} -рд╕рдВрд▓рдЧреНрди) рдЪрд░ рдирд╛рдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ _fix_ рдореМрдЬреВрджрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд╣реЛрдВрдЧреЗ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЧрд▓рддреА рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ "Are you sure you want to kill $vParam?" . рдореИрдВ
  • рдпрджрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдореМрдЬреВрджрд╛ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд▓реБрдкреНрдд рд╣реЛ рд░рд╣реЗ рдЫреЛрдЯреЗ рдЕрдиреБрдкрд╛рдд рдХреЛ рддреЛрдбрд╝рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдо @ExE-Boss рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рддрд░реНрдХ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рдЗрд╕ рд╡реИрдЪрд╛рд░рд┐рдХ рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдкреЗрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рдЕрдХреЗрд▓реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬрдЯрд┐рд▓рддрд╛ (рдЬреЛ рдХрд┐ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛)ред

рд╕рднреА 53 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореАрд▓ рдХрд╛ рдкрддреНрдерд░ рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЯреАрдо рдХреЛ рдлреАрдбрдмреИрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рд╣рдо рдпрд╣ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИрдВред

@mklement0

? рдХрд┐рд╕реА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реЗ {...} рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд┐рдП рдмрд┐рдирд╛ рдХрднреА рднреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП рдереАред

рдЙрдореНрдореНрдо - рдкрд╛рд╡рд░рд╢реЗрд▓ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЖрдзрд╛рд░ рднрд╛рд╖рд╛ рдкреЙрдЬрд╝рд┐рдХреНрд╕ рд╢реИрд▓ рдереА рдЬреЛ $ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ? рдирд┐рдХрд╛рд╕ рдХреЛрдб qed '?' рдХреЗ рд▓рд┐рдП рдЧреИрд░-рдЙрджреНрдзреГрдд рдЪрд░ рдирд╛рдореЛрдВ рдореЗрдВ рдЕрдиреБрдордд рд╣реИред

рдпрд╣ (рд╕рд╛рд░реНрдердХ рд░реВрдк рд╕реЗ) рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рдирд╣реАрдВ рдЪрд▓ рд╕рдХрддрд╛

рдЬрд╝рд░реВрд░ рдпрд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реИ:

PS>  $abc?=@{a=1; b=2; c=3}
PS>  $abc?.b                                                                                        1
PS>  2                      

рдЬрд╝рд░реВрд░ рдпрд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реИ:

рдпрд╣ рдЕрд░реНрдердкреВрд░реНрдг рдврдВрдЧ рд╕реЗ рдирд╣реАрдВ рдЪрд▓ рд╕рдХрддрд╛ _рд╕рд╛рде рдореЗрдВ рдирдП рд╢рдмреНрджрд╛рд░реНрде_ (рдЕрд╢рдХреНрдд-рд╕рд╢рд░реНрдд рдкрд╣реБрдВрдЪ) - рдмрд╕ рдЗрддрдирд╛ рд╣реА рдореИрдВ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рд╣рд╛рдВ, рдЖрдкрдХрд╛ рдЙрджрд╛рд╣рд░рдг рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди _рд╡рд┐рднрд┐рдиреНрди рд╢рдмреНрджрд╛рд░реНрдереЛрдВ рдХреЗ рд╕рд╛рде_ ( abc? _ рдЬрд┐рд╕рдореЗрдВ ? _ рдХреЛ рдЪрд░ рдирд╛рдо рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ) - рд▓реЗрдХрд┐рди рдмрддрд╛рдП рдЧрдП рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХреЛрдиреЗ рдХрд╛ рдорд╛рдорд▓рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝рдиреЗ рд▓рд╛рдпрдХ рд╣реИ ?. рдЙрдореНрдореАрдж рдХреЗ

рдкреЙрд╡рд░рд╢реЗрд▓ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЖрдзрд╛рд░ рднрд╛рд╖рд╛ рдкреЙрдЬрд╝рд┐рдХреНрд╕ рд╢реЗрд▓ рдереА рдЬреЛ рдирд┐рдХрд╛рд╕ рдХреЛрдб рдХреЗ рд▓рд┐рдП $? рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ

$? POSIX рдЬреИрд╕реЗ рдЧреЛрд▓реЗ рдореЗрдВ рдПрдХ _exception_ рд╣реИ; рдЖрдк рдирд┐рдореНрди рдХрд╛рд░реНрдп _not_ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

# bash, ksh, zsh, dash (all common /bin/sh implementations)
foo?='bar' # BOOM! E.g. "bash: foo?=bar: command not found"

(рдФрд░, рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдХреЛрдИ рднреА рдпрд╣ рдирд╣реАрдВ рдкреВрдЫ рд░рд╣рд╛ рд╣реИ рдХрд┐ PowerShell рдореЗрдВ $? рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПред)

рдФрд░, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХрд┐ _all other_ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЪрд░ $? (рдпрд╛рдиреА, $^ рдФрд░ $$ ) рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд┐рд╢реЗрд╖ рд╣реИрдВ- рдЯреЛрдХрдирдирд╛рдЗрдЬрд╝рд░ рдореЗрдВ рдХреЗрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдФрд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдРрд╕рд╛ рд╣реА рд╣реИ $? , рднрд▓реЗ рд╣реА рдпрд╣ (рд╡рд░реНрддрдорд╛рди рдореЗрдВ) рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕ рд╕рдордп рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛ рдХрд┐ рдХреЛрдб рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ ? рдПрдХ рд╡реИрдз рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЪрд░рд┐рддреНрд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдиреЗ рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЪрд░ рдирд╛рдореЛрдВ рдХреЗ рдЕрдВрдд рдореЗрдВ ? рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рд╡рд╣ рд╣реИ @StartAutomatingред рдЪреВрдВрдХрд┐ рдЙрд╕рдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕ рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЙрд╕рдХрд╛ рдзреНрдпрд╛рди рдЗрд╕ рдЪрд░реНрдЪрд╛ рдХреА рдУрд░ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╕рдордЭрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ @ vexx32 , $? рд╡рд┐рд╢реЗрд╖ рдЖрд╡рд░рдг рд╣реЛрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЪрд░ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ ? рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП $??? = 'foo' рдкрд╛рд░реНрд╕ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдирд╛рдо рдЕрд▓реНрдлрд╝рд╛рдиреНрдпреВрдореЗрд░рд┐рдХ рд╡рд░реНрдгреЛрдВ рдпрд╛ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕рдореЗрдВ рдЕрд▓реНрдлрд╝рд╛рдиреНрдпреВрдореЗрд░рд┐рдХ рд╡рд░реНрдг, рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдпрд╛ рдкреНрд░рд╢реНрдирд╡рд╛рдЪрдХ рдЪрд┐рд╣реНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ ?. рдХреЛ рд╢реВрдиреНрдп-рд╕рд╢рд░реНрдд рд╕рджрд╕реНрдп рдПрдХреНрд╕реЗрд╕ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореИрдВ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдЯреЛрдХрдирдирд╛рдЗрдЬрд╝рд░ рдореЗрдВ ? рд╡рд┐рд╢реЗрд╖-рдЖрд╡рд░рдг рдХреНрдпреЛрдВ рд╣реИред

рдЗрд╕ рдЪреИрдЯ рдкрд░ рдореЗрд░рд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдХреНрдпрд╛ рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ:

  1. рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпреЗ рдЪрд░ рджреБрд░реНрд▓рдн рд╣реИрдВ, рдХреЛрдИ рднреА рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдмреИрдХ-рдХреЙрдореНрдкреИрдЯ рдЙрдирдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рддреЛрдбрд╝ рджреЗ рддреЛ рд╡реНрд╣реЗрдХ-рдП-рдореЛрд▓ рдЦреЗрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП
  2. рдЧрд╣рд░рд╛рдИ рд╕реЗ geeky рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдХ рддрд░рдл, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ ${obj}?.Method() рдпрд╛ $obj?.Method() рдереЛрдбрд╝рд╛ рдКрдкрд░ рдЙрдареЗрдЧрд╛ред рд╡реЗрдм рдкрд░ рдПрдХ рджрд╢рдХ рдХрд╛ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рд╣реИ рдХрд┐ рдХреИрд╕реЗ рд╡рд╣рд╛рдВ рд╕реЗ рдирд▓ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд┐рдпрд╛ рдЬрд╛рдП, рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ if ($obj) {$obj.Method() } _just рд╕реЗ v7 рдмреИрдВрдбрд╡рд╛рдЧрди_ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
  3. рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдЪрд░ рдирд╛рдореЛрдВ рдХреА рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд▓реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧ ${} рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕реАрдЦрддреЗ рд╣реИрдВ (рдЖрдк рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреЗ рд╕рд╛рде рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рд╣рд┐рдЯ рдХрд░реЗрдВрдЧреЗ)ред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ "рдЬреЛ рд▓реЛрдЧ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ" рдХреЗ рд╡реЗрди рдЖрд░реЗрдЦ рдУрд╡рд░рд▓реИрдк "рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА ${} рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЬрд╛рдирддреЗ рд╣реИрдВ" 100% рдХреЗ рдХрд░реАрдм рд╣реЛрдВрдЧреЗ
  4. рдЪреВрдВрдХрд┐ рдХрд╣рд╛ рдЧрдпрд╛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдкреВрд░реНрдг рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрддрдирд╛ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдирд╣реАрдВ рд╣реИ, рдФрд░ рдкреВрд░реНрдг рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рдХреЛрд░ рдФрд░ рдирд╣реАрдВ рджреЛрдиреЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧ рдЖрдЧреЗ рднреА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗред

рддреЛ, рдЧрдгрд┐рдд рдЪрд▓рд╛рдирд╛, рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП _not_ рдХреЗ рдХрдИ рдареЛрд╕ рдХрд╛рд░рдг рд╣реИрдВ, рдФрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдЕрд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдг рд╣реИ (рдпрд╣ _might_ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред рдХреЗ рдХрдо рдкреНрд░рд╕рд╛рд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП? рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдирд╛рдореЛрдВ рдореЗрдВ, рдЖрдк рдиреБрдХрд╕рд╛рди рд╕реЗ рдЕрдзрд┐рдХ рд▓реЛрдЧреЛрдВ рдХреА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдпрд╣ рдПрдХ рд╕рд┐рдХреНрдХрд╛-рдЯреЙрд╕ рд╣реИред

рд▓рд╛рдн рдХреА рдЗрд╕ рддрд░рд╣ рдХреА рд╕рд┐рдХреНрдХрд╛-рдЯреЙрд╕ рдХреНрд╖рдорддрд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВ рд░реЙрдмрд░реНрдЯ рдореИрдХрдирд╛рдорд╛рд░рд╛ рдХреЛ рд╕рдордЭрд╛рдКрдВрдЧрд╛ "рдЕрдЧрд░ рд╣рдо рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдЧрд░ рд╣рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдЧрд░ рд╣рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рд░рдлрд╝реВ рд╣реЛ рдЬрд╛рдКрдВрдЧрд╛"ред

рдореИрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ $obj?.Method() рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ $<var i="6">obj</var> ?. <var i="9">Method</var>() рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗ, рдФрд░ рдХреЗрд╡рд▓ $<var i="11">obj?</var> . <var i="14">Method</var>() рдЬрдм $obj рджрд╛рдпрд░реЗ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди $obj? рдХрд░рддрд╛ рд╣реИ рдФрд░ #requires┬атАСVersion v7+ рдирд╣реАрдВ рд╣реИред

@ рдПрдХреНрд╕рдИ-рдмреЙрд╕, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдирд┐рдпрдо рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдкрд╡рд╛рдж рд╣реИрдВред

рдореИрдВ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдирд┐рдпрдо рдХреЗ рдореВрд▓реНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдиреЗ рдкреНрд░рд╢реНрди рдХреЛ рджреЛрд╣рд░рд╛рддрд╛ рд╣реВрдВред

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ "рд╡реЗрд░рд┐рдПрдмрд▓ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдо рдФрд░ рдХреНрдпрд╛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдо рддреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?"

рдпрджрд┐ рд╕рд░реНрд╡рд╕рдореНрдорддрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП ${...} рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рдмрд╛рдзреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рддреЛ рдпрд╣рд╛рдВ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рдорд░реНрдерди рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреА, рддрд╛рдХрд┐ рдореЗрд░реЗ рдЬреИрд╕реЗ рд▓реЛрдЧ рдЬреЛ рдЗрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ (рдореИрдВ рдЗрд╕реЗ _a рд▓реЙрдЯ_ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛) рд╢реЛрд░ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рд╕рдХрддреЗ рд╣реИрдВ .

рдЪреВрдВрдХрд┐ рд╣рдо рдпрд╣рд╛рдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
"рддрд░реНрдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБрддреЛрдВ рдХреА рдЬрд╝рд░реВрд░рддреЗрдВ рдХреБрдЫ рдХреА рдЬрд╝рд░реВрд░рддреЛрдВ рдкрд░ рднрд╛рд░реА рдкрдбрд╝рддреА рд╣реИрдВред" - рд╕реНрдкреЙрдХ

рддреЛ, рдЧрдгрд┐рдд рдЪрд▓рд╛рдирд╛, рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП _not_ рдХреЗ рдХрдИ рдареЛрд╕ рдХрд╛рд░рдг рд╣реИрдВ, рдФрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдЕрд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдг рд╣реИ (рдпрд╣ _might_ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред

@StartAutomating : рдХрдИ рдХрд╛рд░рдг рд╣реИрдВ, рдФрд░ рд╡реЗ рдареЛрд╕ рд╣реИрдВ, рдЕрд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВред рд╕рд╛рде рд╣реА, рдЗрд╕рдХрд╛ рдПрдХ рд▓рдХреНрд╖реНрдп рдХреЛрдб рд╕рд░рд▓рддрд╛ рд╣реИред рдЪрд░ рдирд╛рдореЛрдВ рдХреЛ {} рд╕рд╛рде рд▓рдкреЗрдЯрдирд╛ рд╕реАрдзреЗ рдЙрд╕ рд▓рдХреНрд╖реНрдп рдХреЗ рд╡рд┐рд░реБрджреНрдз рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рдЗрд╕ рдкрд░ @mklement0 рдФрд░ @KirkMunro рдХреЗ рд╕рд╛рде рд╣реВрдВред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореБрдЭреЗ ${...}? рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЕрдкреНрд░рд╛рдХреГрддрд┐рдХ рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЬрдЯрд┐рд▓ рд▓рдЧрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмреНрд░реЗрдХрд┐рдВрдЧ рдмрджрд▓рд╛рд╡ рд╣реИрдВ рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рдмрджрд▓реЗ рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЫреЛрдЯреА рдХреАрдордд рд╣реИред

@StartAutomating

  1. рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдЪрд░ рдирд╛рдореЛрдВ рдХреА рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд▓реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧ ${} рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕реАрдЦрддреЗ рд╣реИрдВ ( рдЖрдк рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреЗ рд╕рд╛рде рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рд╣рд┐рдЯ рдХрд░реЗрдВрдЧреЗ )ред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ "рдЬреЛ рд▓реЛрдЧ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ" рдХреЗ рд╡реЗрди рдЖрд░реЗрдЦ рдУрд╡рд░рд▓реИрдк "рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА ${} рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЬрд╛рдирддреЗ рд╣реИрдВ" 100% рдХреЗ рдХрд░реАрдм рд╣реЛрдВрдЧреЗ

рдпрд╣ рдЯрд┐рдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдЪрд░ рдирд╛рдореЛрдВ рдореЗрдВ рдорд╛рдиреНрдп рд╡рд░реНрдг рд╣реИрдВред

@vexx32

рдореБрдЭреЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕ рд╕рдордп рдХреЛрдб рд▓рд┐рдЦреЗ рдЬрд╛рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреА рдЧрдИ рдереА

рдирд╣реАрдВред

рдЪрд╛рд░реЛрдВ рдУрд░ рд╡рд░реНрдг рд╕реНрд╡реИрдк рдХрд░реЗрдВ? $foo.?Property рдЧреИрд░-рд╕рдВрдШрд░реНрд╖ рджрд┐рдЦрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрдиреЛрдВ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдореЛрдВ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрджреНрдзреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

PS C:\> $foo = [pscustomobject]@{'?'=1; '?name'=2}
PS C:\> $foo.?name
At line:1 char:6
+ $foo.?name
+      ~
Missing property name after reference operator.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : MissingPropertyName
PS C:\> $foo.'?name'
2

@HumanEquivalentUnit , рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд ?. рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде C# рдФрд░ рдХрдИ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рд╕рд╛рде рдЪрд┐рд░рд╕реНрдерд╛рдпреА рднреНрд░рдо рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░реЗрдЧрд╛ (рд╕рд╛рде рд╣реА, рдЖрдкрдХреЛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА ( ${arr}?[0] ) рднреА, рдФрд░ $arr[0]? рдЬреИрд╕рд╛ рдХреБрдЫ рдЯрд░реНрдирд░реА рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рднреНрд░рдо рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░реЗрдЧрд╛)

рдХреЛрдИ рд╕рд╛рдл рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред

  1. рдЕрдЬреНрдЮрд╛рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд▓реЛрдЧ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ? рдЪрд░ рдирд╛рдореЛрдВ рдХреЗ рдЕрдВрдд рдореЗрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рдХреЛрдИ рдХрд╣ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ "рдпрджрд┐ рдЖрдк рдЙрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рдЗрд╕реЗ рдЪрд╛рд▓реВ рди рдХрд░реЗрдВ" рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд╡рд░реНрддрдорд╛рди рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рд╕реНрд░реЛрдд рд╕реЗ рдорд┐рд▓рддреА рд╣реИред
  2. рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реА # рд╕реЗ рдХреБрдЫ-рдмрд╣реБрдд-рд╢рдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ
  3. #requires рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдмрджрд▓рдирд╛ рдХрд┐рд╕реА рд╕рд╣реЗрдЬреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЬреИрд╕реЗ рд╣реА рдХреЛрдИ рдЯреИрдЧ рд╕реЗрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рд▓рдВрдмреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдХреБрдЫ рдХреЛрдб рдХреЙрдкреА рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
    4. (dir *.ps2)?.count рдФрд░ (dir *.ps1)?.count рдпрд╣ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдСрдкрд░реЗрдВрдб рдХреЛ рдПрдХ рдЪрд░ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
    ($Host)?.toString() / ($null)?.toString() рдирд╛рдо рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдЕрднреА рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдХреАрд╕реНрдЯреНрд░реЛрдХреНрд╕ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдзрд┐рдХ рддрд╛рд░реНрдХрд┐рдХ рдФрд░ рдХрдо рдмрджрд╕реВрд░рдд рд╣реИред
  1. #requires рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдмрджрд▓рдирд╛ рдХрд┐рд╕реА рд╕рд╣реЗрдЬреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЬреИрд╕реЗ рд╣реА рдХреЛрдИ рдЯреИрдЧ рд╕реЗрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рд▓рдВрдмреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдХреБрдЫ рдХреЛрдб рдХреЙрдкреА рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдпрд╣ _any_ рдХреЛрдб рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЙрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВред
рдпрджрд┐ рдпрд╣ рдкреНрд░рдореБрдЦ рдЪрд┐рдВрддрд╛ рдереА, рддреЛ рдХреЛрдИ рднреА рдирдИ рднрд╛рд╖рд╛ рд╕реБрд╡рд┐рдзрд╛ рдпрд╛ рдирдпрд╛ cmdlet/cmdlet рдкреИрд░рд╛рдореАрдЯрд░ рдХрднреА рднреА рдкреЗрд╢ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

(рдЙрдореНрдореАрдж рд╣реИ, рдкреБрд░рд╛рдиреЗ рдХреЛрдб рдореЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдо рд╕реЗ рдХрдо Set-StrictMode -Version 1 рдкреНрд░рднрд╛рд╡ рдореЗрдВ рд╣реИ, рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ $var?.foo рдЬреЛрд░ рд╕реЗ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ var? рдирд╛рдо рдХрд╛ рдХреЛрдИ рд╡реИрд░рд┐рдПрдмрд▓ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ)ред

  1. рдирд╛рдо рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред

(...) рдХреЛ {...} рд▓рд┐рдП рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдХреЗрд╡рд▓ рдПрдХ рдорд╛рдореВрд▓реА рд╕реБрдзрд╛рд░ рд╣реИред

рдЬреЛ рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд▓рд┐рдП _need_ рд╣реИ - рдХрд┐рд╕реА рдРрд╕реА рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХреЗрд╡рд▓ _as-is_ рдХрд╛рдо рдХрд░реЗ - рди рдХреЗрд╡рд▓ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдмрд▓реНрдХрд┐ _sensible рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреАред

  1. #requires рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдмрджрд▓рдирд╛ рдХрд┐рд╕реА рд╕рд╣реЗрдЬреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЬреИрд╕реЗ рд╣реА рдХреЛрдИ рдЯреИрдЧ рд╕реЗрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рд▓рдВрдмреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдХреБрдЫ рдХреЛрдб рдХреЙрдкреА рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдпрд╣ _any_ рдХреЛрдб рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЙрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВред
рдпрджрд┐ рдпрд╣ рдкреНрд░рдореБрдЦ рдЪрд┐рдВрддрд╛ рдереА, рддреЛ рдХреЛрдИ рднреА рдирдИ рднрд╛рд╖рд╛ рд╕реБрд╡рд┐рдзрд╛ рдпрд╛ рдирдпрд╛ cmdlet/cmdlet рдкреИрд░рд╛рдореАрдЯрд░ рдХрднреА рднреА рдкреЗрд╢ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдореЗрд░рд╛ рдорддрд▓рдм рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕реБрдЭрд╛рд╡ рдерд╛ рдХрд┐ рдпрджрд┐ #requires рдирд┐рд░реНрджрд┐рд╖реНрдЯ pwsh 7 рд╣реИ рддреЛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдирдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рддрднреА рдкреНрд░рдХрд╛рд╢рдорд╛рди рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдк #рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВрдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред

(рдЙрдореНрдореАрдж рд╣реИ, рдкреБрд░рд╛рдиреЗ рдХреЛрдб рдореЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдо рд╕реЗ рдХрдо Set-StrictMode -Version 1 рдкреНрд░рднрд╛рд╡ рдореЗрдВ рд╣реИ, рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ $var?.foo рдЬреЛрд░ рд╕реЗ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ var? рдирд╛рдо рдХрд╛ рдХреЛрдИ рд╡реИрд░рд┐рдПрдмрд▓ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ)ред

рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ рд╕реЗрдЯ-рд╕реНрдЯреНрд░рд┐рдХреНрдЯрдореЛрдб рдХрд╛ рдЬреНрдпрд╛рджрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ (рдП) рдПрдХ рдзрд╛рд░рдгрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ "рд╕рд╣реА" рд╣реИ рдФрд░ (рдмреА) рдЙрди рдЪреАрдЬреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡реГрддреНрддрд┐ рдЬреЛ рдЗрд╕рдХреЗ рдмрдВрдж рд╣реЛрдиреЗ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВ, рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИред рдпрд╣ рдЗрди рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдо рдЙрдкрдпреЛрдЧ рд╣реИред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдкреБрд░рд╛рдирд╛ рдХреЛрдб рд╣реИ рдЬрд╣рд╛рдВ $var? рдореМрдЬреВрдж рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ foo рд╕рдВрдкрддреНрддрд┐ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рдХреЛрдб $var рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИ ... рд╕рдВрднрд╡рдд: рдирдИ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддреА рд╣реИ рдпрджрд┐ рд╕рдЦреНрдд рдореЛрдб рд╕реЗрдЯ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ $var рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ ....

  1. рдирд╛рдо рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред

(...) рдХреЛ {...} рд▓рд┐рдП рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдХреЗрд╡рд▓ рдПрдХ рдорд╛рдореВрд▓реА рд╕реБрдзрд╛рд░ рд╣реИред

рд╣рд╛рдВред ($x) ${x} рд╕реЗ рдереЛрдбрд╝рд╛ рдмреЗрд╣рддрд░ рд╣реИ рд▓реЗрдХрд┐рди рдереЛрдбрд╝рд╛ рд╣реАред ( Get-user "Bob")?.disable() рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ

$u = get-user "bob" 
($u)?.disable

рдЬреЛ рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд▓рд┐рдП _need_ рд╣реИ - рдХрд┐рд╕реА рдРрд╕реА рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХреЗрд╡рд▓ _as-is_ рдХрд╛рдо рдХрд░реЗ - рди рдХреЗрд╡рд▓ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдмрд▓реНрдХрд┐ _sensible рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреАред

рд╣рд╛рдВред
$var. foo рд╡реНрд╣рд╛рдЗрдЯ-рд╕реНрдкреЗрд╕ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рдеред ${foo} ?.bar() рдирд╣реАрдВ? рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рдЙрдкрдирд╛рдо рдирд╛рдо рдореЗрдВ рдЕрдиреБрдорддрд┐ рд╣реИ (?. рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдиреВрдиреА рд╣реИ)ред рдЪреАрдЬреЛрдВ рдХреЛ рддреЛрдбрд╝реЗ рдмрд┐рдирд╛ рдореМрдЬреВрджрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдирд┐рдпрдореЛрдВ рдореЗрдВ рд╕реА # рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд▓реИрд╢рд┐рдВрдЧ рдмрд┐рдЯреНрд╕ рд╣рдореЗрд╢рд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдХрднреА-рдХрднреА, "рдпрд╣ рд╕реА # рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ ..." рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "рд╣рд╛рдВред рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╕реА # рдХрд╣рд╛рдВ рд╣реИ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВ"ред
:-)

SemVer рд╕рдВрдЧрддрддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдПрдХ рдкреНрд░рдореБрдЦ рд░рд┐рд▓реАрдЬрд╝ (рдЕрдзрд┐рдорд╛рдирддрдГ 7.0.0 ) рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдКрдкрд░ рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рднреА рджреЗрдЦреЗрдВ ( https://github.com/PowerShell/PowerShell/issues/11379#issuecomment-566756120 )ред

@ рдПрдХреНрд╕рдИ-рдмреЙрд╕ рд╣рд╛рдВ, рдпрд╣ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рдереА рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣рд╛ рдерд╛ рдЬрдм рдореИрдВрдиреЗ рдХрд╣рд╛ рдерд╛ рдХрд┐ #requires рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдФрд░ рд╣рд╛рдБ, рдпрджрд┐ рдХрд┐рд╕реА рдХреЛ рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рддреЛрдбрд╝рдирд╛ рд╣реИ рддреЛ рд╡рд╣ рд╕рдордп рд╣реИ рдЬрдм рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг рдмрджрд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЬрд▓реНрджреА рд╕реЗ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ V8 рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ

рдпреЗ рдЕрднреА рднреА рдПрдХ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдФрд░ RC-1 рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрдВрдж рд╣реИрдВ, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╢рд┐рдкрд┐рдВрдЧ рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд░рд╣рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рдпрд╣ рднреА рдмреНрд▓реЙрдХ / рдЪреЗрддрд╛рд╡рдиреА рджреА рд╣реИ рдЬрдм рдПрдХ рдЪрд░ рдХреБрдЫ рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЛ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдмрджрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ (рдпрд╛ рдпрд╣рд╛рдВ рддрдХ рдХрд┐ рджреВрд╕рд░рд╛ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╕реБрд╡рд┐рдзрд╛ рд╣реЛ) рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред рдЕрдЧрд░ рдореИрдВ рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рдЧрд▓рдд рдЪрд░ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдореБрдЭ рдкрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдбрд╛рд▓рддрд╛ рд╣реИ - рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬрд┐рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдореИрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реВрдВ рд╡реЗ рдмрд╕ "рдЯреВрдЯреА рд╣реБрдИ" рджрд┐рдЦрддреА рд╣реИрдВ рдЬреЛ "рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ" рдмреИрдирд░ рдХреЗ рддрд╣рдд рдЕрдзрд┐рдХ рд╕рд╣рдиреАрдп рд╣реИред

рдореИрдВ рдПрдХ рдЧрдВрднреАрд░ рдкрд╛рд╡рд░рд╢реЗрд▓ рдбреЗрд╡рд▓рдкрд░ рдирд╣реАрдВ рд╣реВрдВ; рдореИрдВ рдпрд╣рд╛рдВ рдПрдХ рдмрдЧ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдЖрдпрд╛ рдерд╛ рдФрд░ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИред рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЬреНрдпрд╛рджрд╛рддрд░ рдмреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВ рд╢рд╛рдпрдж рдЬрдирд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдореЗрдВ рд╣реВрдВ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдкрд╛рд╡рд░рд╢реЗрд▓ рдХреЛрд░ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ: рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдбреЗрд╡рд▓рдкрд░ рдХреЛ рддреНрд╡рд░рд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдмреИрд╢ рд╕реЗ рдХрдо рджрд░реНрдж рд╣реЛред

рдореИрдВрдиреЗ рдЕрдХреНрд╕рд░ рдкрд╛рд╡рд░рд╢реЗрд▓ рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрдИ рдирд┐рд░реНрдгрдп рдРрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рдкрд╛рдП рд╣реИрдВ рдЬреЛ рдкреНрд░рд╛рдердорд┐рдХ рд░реВрдк рд╕реЗ рдкрд╛рд╡рд░рд╢реЗрд▓ рдбреЗрд╡рд▓рдкрд░ рдирд╣реАрдВ рд╣реИрдВред рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рдХреБрдЫ рдЧрдВрднреАрд░ рдХреЗ рд▓рд┐рдП рдкрд╛рд╡рд░рд╢реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛, рддреЛ рдореИрдВ рдПрдХ рдирд▓ рдХреЛрд▓реЗрд╕рд┐рдВрдЧ рдСрдкрд░реЗрдЯрд░ рдХреА рдХрдореА, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдПрдХ рдЯрд░реНрдирд░реА рдСрдкрд░реЗрдЯрд░ рдХреА рдХрдореА рд╕реЗ рдЪрд┐рдВрддрд┐рдд рдерд╛, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдореИрдВ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлрд╝реНрд▓реЛ рдкрд░ рдЗрд╕ рд▓реЛрдХрдкреНрд░рд┐рдп рдкрд╛рд╡рд░рд╢реЗрд▓ рдЙрддреНрддрд░ рдХреЛ рдкреЛрд╕реНрдЯ рдХрд░ рд░рд╣рд╛

@StartAutomating рдиреЗ рдХрд╣рд╛:

рдЧрд╣рд░рд╛рдИ рд╕реЗ geeky рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдХ рддрд░рдл, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ ${obj}?.Method() рдпрд╛ $obj?.Method() рдереЛрдбрд╝рд╛ рдКрдкрд░ рдЙрдареЗрдЧрд╛ред рд╡реЗрдм рдкрд░ рдПрдХ рджрд╢рдХ рдХрд╛ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдирд▓ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд┐рдпрд╛ рдЬрд╛рдП, рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЕрдЧрд░ ($obj) {$obj.Method() } рд╕реЗ рд╕рд┐рд░реНрдл v7 рдмреИрдВрдбрд╡рд╛рдЧрди рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

рдореИрдВ рд╕рд┐рд░реНрдл n = 1 рд╣реВрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдЧреИрд░-рдкреЙрд╡рд░рд╢реЗрд▓ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рджреГрдврд╝рддрд╛ рд╕реЗ рдЕрд╕рд╣рдордд рд╣реВрдВред рдирдИ ? рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореБрдЭреЗ рдмрд╣реБрдд рдЬрд▓реНрджреА рдкрддрд╛ рдЪрд▓ рдЬрд╛рдПрдЧрд╛, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдХреЛрдИ рд╣реИ рдЬреЛ рд╢рд╛рдпрдж рд╣рд░ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдкрд╛рд╡рд░рд╢реЗрд▓ рдХреЛ рдЫреВрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдкрд╛рд╡рд░рд╢реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╛рдзрд╛рдУрдВ рдХреЛ рдмрдврд╝рд╛рдПрдЧрд╛ред рдЕрдЧрд░ рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдкреАрдЫреЗ рдХреА рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкрд╛рдЧрд▓ {} рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рддреЛ рдореИрдВ рдЕрдкрдиреА рдЖрдВрдЦреЛрдВ рдХреЛ рд░реЛрд▓ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЬреЛ рдХреБрдЫ рднреА рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ рдЙрд╕ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред

рдореИрдВ рдпрд╣рд╛рдБ рдкрд╢реНрдЪрдЧрд╛рдореА рд╕рдВрдЧрддрддрд╛ рдкрд░ рдЬреЛрд░ рдирд╣реАрдВ рд╕рдордЭрддрд╛ред рдкрд╛рд╡рд░рд╢реЗрд▓ рдХреЛрд░ рдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореЗрд░реА рдЕрдзрд┐рдХрд╛рдВрд╢ рдореМрдЬреВрджрд╛ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рддреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ .NET рдХреЗ рдЙрди рд╣рд┐рд╕реНрд╕реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ .NET рдХреЛрд░ рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВред (рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ---рдиреЗрдЯ рдХреЛрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдкрд╢реНрдЪрдЧрд╛рдореА рд╕рдВрдЧрддрддрд╛ рдХреЛ рддреЛрдбрд╝рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЕрдм рдЖрдкрдХрд╛ рдореМрдХрд╛ рд╣реИред)

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдореЗрд░реА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдиреЗ рдЧрд▓рддрдлрд╣рдореА рдХрд╛ рдПрдХ рднреНрд░рдо рдкреИрджрд╛ рдХрд░ рджрд┐рдпрд╛ рд╣реИред

рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рдерд╛ рдХрд┐ ${} рдкрд╛рд╡рд░рд╢реЗрд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕_ рдХреЗ рд▓рд┐рдП рдЕрдЬреАрдм рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдлреЙрд░реНрдо рдХреЛ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрднреА рдПрдХ рдЪрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЪрд░ рдПрдореНрдмреЗрдб рдХрд┐рдпрд╛ рдерд╛? рдпрд╛ рдФрд░ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ред

рдХрдИ рдЕрдиреБрд╕реНрдорд╛рд░рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдХрд┐ рдпрд╣ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЧреИрд░-рдкреЙрд╡рд░рд╢реЗрд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдЬреАрдм рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореЗрд░реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рджреВрд╕рд░рд╛ рднрд╛рдЧ рдорд┐рд╢реНрд░рдг рдореЗрдВ рдЦреЛ рдЧрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: рдХреНрдпреЛрдВрдХрд┐ рдирд▓-рдХреЛрд▓реЗрд╕рд┐рдВрдЧ рдХреЗ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдкрд╛рд╡рд░рд╢реЗрд▓ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рдореМрдЬреВрдж рд╣реИрдВ рдФрд░ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореМрдЬреВрджрд╛ рдкрд╛рд╡рд░рд╢реЗрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рдХрд┐рддрдиреА рд╡реГрджреНрдзрд┐ рд╣реЛрдЧреАред рдЖрдк рдЕрдВрджрд░ рдЖрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдХрд╣рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ "рдпрд╣ рдПрдХ рдЪреАрдЬ рд╣реИ рдЬрд┐рд╕реЗ рдореБрдЭреЗ рдкрд╛рд╡рд░рд╢реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ", рдФрд░ рдореИрдВ рдЖрдкрдХреА рд░рд╛рдп рдХреЗ рд╕рд╛рде рдмрд╣рд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рднрд╛рд╖рд╛ рдХреЗ рдкреЗрдбрд╝ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╢рд╛рдВрдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЬрдВрдЧрд▓ рдЦреЛ рд░рд╣реЗ рд╣реИрдВ рдкрд░рд┐рдЪрд┐рдд)ред

рдореЗрд░реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рддреАрд╕рд░рд╛ рдмрд┐рдЯ рдЕрдиреБрдкрд╛рдд рд╕реЗ рдмрд╛рд╣рд░ рдЙрдбрд╝рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд▓рдЧрддрд╛ рд╣реИред рдЙрди рд▓реЛрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдмреЛрд▓рддреЗ рд╣реБрдП, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдХрднреА-рдХрднреА $IsThisRight рдирд╛рдо рдХреЗ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ? = рдЯреЗрд╕реНрдЯ-рд╕рдордерд┐рдВрдЧ, рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдЪрд╛рд░ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реА рдкрд╣рд▓реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдереА "рдУрд╣ рдареАрдХ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рдЪрд░ рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛, рд╡реИрд╕реЗ рднреА рдореБрдЭреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрддрдирд╛ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рдерд╛ред"

рддреЛ, рдереНрд░реЗрдб рдХреЛ рдкреБрди: рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

  1. рдЖрдИрдПрдордПрдЪрдУ, ${} рд╢рд╛рдпрдж _рдореМрдЬреВрджрд╛_ рдкрд╛рд╡рд░рд╢реЗрд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдЬреАрдм рдирд╣реАрдВ рд╣реЛрдЧрд╛
  2. рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдмрдврд╝рд┐рдпрд╛ рд╣реИ рдпрд╣ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ; рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рднрд╛рд╖рд╛ рдкрд░рд┐рдЪрд┐рдд рдЧреЗрдЯрд╡реЗ рджрд╡рд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рдкрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдпрд╣ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдИрдПрдлрдПрд╕/рдлреЛрд░реИрдЪ/рд╡реНрд╣рд╛рдЗрд▓реНрд╕ рдЗрддреНрдпрд╛рджрд┐ рдХреЛ рдХреИрд╕реЗ рд░реЙрдХ рдХрд░рдирд╛ рд╣реИред
  3. рдкреНрд░рднрд╛рд╡рд┐рдд рд▓реЗрдЦрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдореБрдЭреЗ рдХреБрдЫ рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд┐рд╢рди рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ? рдореЗрд░реЗ рдЪрд░ рдХреЗ рдЕрдВрдд рдореЗрдВ рдХрд┐ рдореИрдВ рдЕрдкрдирд╛ рдХреЛрдб рдмрджрд▓рдиреЗ рдХрд╛ рд╡рд┐рд░реЛрдз рдХрд░реВрдВрдЧрд╛ред

рдпрд╛, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП:

рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдпрд╣ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВред рдЗрд╕ рджреМрдбрд╝ рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ рдЫреЛрдЯрд╛ рдШреЛрдбрд╝рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рдХреЛрдИ рдЕрдиреНрдп рд╡реНрдпрдХреНрддрд┐ рдЬрд┐рд╕рдиреЗ рдЪрд░реЛрдВ рдХрд╛ рдирд╛рдо ? рдЕрдиреБрд╕рд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореЗрд░реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рджреВрд╕рд░рд╛ рднрд╛рдЧ рдорд┐рд╢реНрд░рдг рдореЗрдВ рдЦреЛ рдЧрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: рдХреНрдпреЛрдВрдХрд┐ рдирд▓-рдХреЛрд▓реЗрд╕рд┐рдВрдЧ рдХреЗ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдкрд╛рд╡рд░рд╢реЗрд▓ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рдореМрдЬреВрдж рд╣реИрдВ рдФрд░ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореМрдЬреВрджрд╛ рдкрд╛рд╡рд░рд╢реЗрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдХрд┐рддрдиреА рдмрдврд╝ рдЬрд╛рдПрдЧреАред

рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ, рдФрд░ рдореИрдВ рдЖрдкрдХреА рд░рд╛рдп рдХреЛ рдЦрд╛рд░рд┐рдЬ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛ рд╣рдореЗрд╢рд╛ рдХрдард┐рди рд╣реЛрддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╡рд┐рдХрд▓реНрдк рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣рдЬ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рднрд╛рд╖рд╛ рдХреЗ рднрд╛рд░реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВред

рдЖрдк рдЕрдВрджрд░ рдЖрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдХрд╣рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ "рдпрд╣ рдПрдХ рдЪреАрдЬ рд╣реИ рдЬрд┐рд╕реЗ рдореБрдЭреЗ рдкрд╛рд╡рд░рд╢реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ", рдФрд░ рдореИрдВ рдЖрдкрдХреА рд░рд╛рдп рдХреЗ рд╕рд╛рде рдмрд╣рд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рднрд╛рд╖рд╛ рдХреЗ рдкреЗрдбрд╝ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╢рд╛рдВрдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЬрдВрдЧрд▓ рдЦреЛ рд░рд╣реЗ рд╣реИрдВ рдкрд░рд┐рдЪрд┐рдд)ред

рдЦреИрд░, рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЧреИрд░-рдкреЙрд╡рд░рд╢реЗрд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрди рд╡рд╛рд░реНрддрд╛рд▓рд╛рдкреЛрдВ рдореЗрдВ рднрд╛рдЧ рдирд╣реАрдВ рд▓реЗ рд░рд╣реЗ рд╣реИрдВ--рдпрд╣ рд╢реБрджреНрдз рд╕рдВрдпреЛрдЧ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рдкрд░ рдареЛрдХрд░ рдЦрд╛ рдЧрдпрд╛ред рдкреЙрд╡рд░рд╢реЗрд▓ рдХрд╛ рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ рд╕рдВрднрд╡рддрдГ рдЙрди рд▓реЛрдЧреЛрдВ рд╕реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реЛрдЧрд╛ рдЬреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ рдУрдкрди рд╕реЛрд░реНрд╕ рдЯреВрд▓ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореИрдВ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рджреВрдВрдЧрд╛ рдЬреЛ рдкрд╛рд╡рд░рд╢реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдлреИрдВрд╕реА рдврд╛рдВрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХрдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рд╣реЛ рд╕рдХреЗ рдЕрдЬреАрдм рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХред рдпрд╣ рдХрд┐рд╕реА рдЕрдиреНрдп рд░рд╛рдп рдХреЛ рдЦрд╛рд░рд┐рдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ - рдпрд╣ рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╕рд┐рд░реНрдл рдПрдХ рдФрд░ рд░рд╛рдп рд╣реИ рдЬреЛ рд╢рд╛рдпрдж рдпрд╣рд╛рдВ рдЕрдХреНрд╕рд░ рдирд╣реАрдВ рджреЗрдЦреА рдЬрд╛рддреА рд╣реИред

рдмреЗрд╣рддрд░ рдирд▓ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдПрдХ рдЪреАрдЬ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рдореБрдЭреЗ рдкрд╛рд╡рд░рд╢реЗрд▓ рдХрд╛ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдпрд╣ рджреВрд╕рд░реА рдмрд╛рдд рд╣реИред рдкрд╣рд▓рд╛ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕рдорд░реНрдерди рдерд╛, рдФрд░ рдореИрдВ рдЗрд╕ рдмрд╛рдд рд╕реЗ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реВрдБ рдХрд┐ рдпрд╣ рдХрд┐рддрдирд╛ рдЖрдЧреЗ рдЖ рдЧрдпрд╛ рд╣реИред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдЪреАрдиреА рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реА рдмрд╛рдд рд╣реИ рдЬрдм рдореИрдВ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдХрд╛рд░реНрдп рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рднрд╛рд╖рд╛ рдЪреБрди рд░рд╣рд╛ рд╣реВрдБ: рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ рдХрд┐ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рд╡рд╣ рдХрд░реЗ рдЬреЛ рдореИрдВ рдЖрд╕рд╛рди рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдЕрдЧрд░ рдореИрдВ рдХреБрдЫ рдРрд╕рд╛ рд▓рд┐рдЦ тАЛтАЛрд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдореИрдВ рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╡рд░реНрдмреЛрдЬрд╝ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ; рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВ рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рдпрд╛ рджреЗрд╡реЛрдкреНрд╕ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд╡рд░рд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рд╕рд┐рд░реНрдл рд╢реВрдиреНрдп рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд╡рд░рд┐рдд рддрд░реАрдХрд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдореЗрд░реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рддреАрд╕рд░рд╛ рдмрд┐рдЯ рдЕрдиреБрдкрд╛рдд рд╕реЗ рдмрд╛рд╣рд░ рдЙрдбрд╝рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд▓рдЧрддрд╛ рд╣реИред рдЙрди рд▓реЛрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдмреЛрд▓рддреЗ рд╣реБрдП, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдХрднреА-рдХрднреА $IsThisRight рдирд╛рдо рдХреЗ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ? = рдЯреЗрд╕реНрдЯ-рд╕рдордерд┐рдВрдЧ, рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдЪрд╛рд░ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реА рдкрд╣рд▓реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдереА "рдУрд╣ рдареАрдХ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рдЪрд░ рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛, рд╡реИрд╕реЗ рднреА рдореБрдЭреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрддрдирд╛ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рдерд╛ред"

рдкрд╢реНрдЪрдЧрд╛рдореА рд╕рдВрдЧрддрддрд╛ рдХрд╛ рдкрдХреНрд╖ рд▓реЗрдирд╛ рд╣рдореЗрд╢рд╛ рдПрдХ рдЙрдЪрд┐рдд рддрд░реНрдХ рд╣реЛрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрд░ рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХреЗ рдХрд╛рд░рдг рдмрд╣реБрдд рд╕реА рдкрд╛рд╡рд░рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреВрдЯрдиреЗ рдХреЗ рдХрдЧрд╛рд░ рдкрд░ рд╣реИрдВред рдЬрдм рдмреИрдХрд╡рд░реНрдб рд╕рдВрдЧрддрддрд╛ рдирд┐рдпрдорд┐рдд рдЖрдзрд╛рд░ рдкрд░ рдЯреВрдЯрддреА рд╣реИ, рддреЛ рдпрд╣ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реВрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рд╢рд╛рдпрдж рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдордп рд╣реИред

рдРрд╕реЗ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдП рдЬрдирд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп-рдЕрд░реНрдерд╛рдд рдЧреИрд░-рд╡рд┐рдВрдбреЛрдЬ-рдХреЗрдВрджреНрд░рд┐рдд рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ-- рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рдЙрд╕рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рдХреЛрдИ рдЕрдиреНрдп рд╡реНрдпрдХреНрддрд┐ рдЬрд┐рд╕рдиреЗ рдЪрд░реЛрдВ рдХрд╛ рдирд╛рдо ? рдЕрдиреБрд╕рд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рдСрдкреНрдЯ-рдЗрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реИ - рдЬреЛ рдореБрдЭреЗ рдкрд╛рд╡рд░рд╢реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХреЗрдЧрд╛ред рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрдиреА рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ set рдХрдорд╛рдВрдб рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдЖрджреА рд╣реВрдВред рдореИрдВ рдЗрд╕реЗ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рдорд╛рдиреВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдЬрдм рддрдХ рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИ, рддрдм рддрдХ рдкреЙрд╡рд░рд╢реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдореЗрд░реЗ рдирд┐рд░реНрдгрдп рдкрд░ рдЗрд╕рдХрд╛ рдмрд╣реБрдд рдХрдо рдкреНрд░рднрд╛рд╡ рдкрдбрд╝реЗрдЧрд╛ред

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдЪреАрдиреА рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реА рдмрд╛рдд рд╣реИ рдЬрдм рдореИрдВ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдХрд╛рд░реНрдп рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рднрд╛рд╖рд╛ рдЪреБрди рд░рд╣рд╛ рд╣реВрдБ

рддреЛ рдЖрдк рд╕рд╣реА рднрд╛рд╖рд╛ рдореЗрдВ рдЖрдП рд╣реИрдВ! рдкрд╛рд╡рд░рд╢реЗрд▓ рд╡рд╛рдХреНрдпрд╛рддреНрдордХ рдЪреАрдиреА рдХреЗ рд╕рд╛рде рд╕рдХрд╛рд░рд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдкрд╡рд┐рддреНрд░ рд╣реИред

рдЬреЛ рд▓реЛрдЧ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдЙрдиреНрд╣реЗрдВ рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк PowerShell рдореЗрдВ рдХрдИ рддрд░реАрдХреЛрдВ рд╕реЗ "рдирд▓ рдХреЛрд▓реЗрд╕" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
~$ListWhereNotNull = $null, 1, 2, $null, 3 -ne $null # рдпрд╣ рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рд╢реВрдиреНрдп рдирд╣реАрдВ рд╣реИ, рдФрд░ 1,2,3 рдХреА рд╕реВрдЪреА рд▓реМрдЯрд╛рдПрдВ$FirstNonNull = @($null, 1, $null,2 -ne $null)[0] # рдпрд╣ рдкрд╣рд▓рд╛ рдиреЙрди-рдирд▓ рд▓реМрдЯрд╛рдПрдЧрд╛$lastNonNull = @($null, 1, 2, $null -ne $null)[-1] # рдпрд╣ рдЛрдгрд╛рддреНрдордХ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдВрддрд┐рдо рдЧреИрд░-рд╢реВрдиреНрдп рд▓реМрдЯрд╛рдПрдЧрд╛$TheObjectPipelineWay = $null, 1, $null, 2 | рдЪрдпрди-рд╡рд╕реНрддреБ -рдкреНрд░рдердо 1$TheAssigningForeachWay = foreach ($null рдореЗрдВ $рдЖрдЗрдЯрдо, 1, 2, $null, 3, 4) {рдЕрдЧрд░ ($рдЖрдЗрдЯрдо-рдиреЗ $null) {$рдЖрдЗрдЯрдо;



рдЕрднреА рдХреЗ рд▓рд┐рдП рдЗрддрдирд╛ рд╣реА рдХрд╛рдлреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рднрд╛рд╖рд╛ рдХреЗ рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ рдкрд░ рдмрд╛рдд рд╕рд╛рдмрд┐рдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ рдмрд╣реБрдд рд▓рдЪреАрд▓рд╛рдкрди рд╣реИред рд╡реЗ рд╕рднреА рдбреЗрдореЛ рдкреЙрд╡рд░рд╢реЗрд▓ 1.0 рдкрд░ рд╡рд╛рдкрд╕ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрд░ рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХреЗ рдХрд╛рд░рдг рдмрд╣реБрдд рд╕реА рдкрд╛рд╡рд░рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреВрдЯрдиреЗ рдХреЗ рдХрдЧрд╛рд░ рдкрд░ рд╣реИрдВред

рдЗрд╕рдореЗрдВ рдЖрдк рдЧрд▓рдд рд╣реИрдВред рдХреЛрд░ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕рд┐рдВрдЯреИрдХреНрд╕ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдореЙрдбреНрдпреВрд▓ рдХреЛрд░ рдкрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ (+ - рд▓рд┐рдирдХреНрд╕ рдмрдирд╛рдо рд╡рд┐рдВрдбреЛрдЬ рдкрд╛рдерд┐рдВрдЧ/рдиреНрдпреВрд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ)ред рдЕрдзрд┐рдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЖрдкрдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХреЛрд░ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрдо рд╣реИ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд┐рдВрдбреЛрдЬ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдкреАрдЖрдИ рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореИрдВ рдЕрдкрдиреЗ рдбрдмреНрд▓реНрдпреВрдкреАрдПрдл рд░реИрдкрд░ рдХреЛ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд╕рд╛рдВрд╕ рдирд╣реАрдВ рд░реЛрдХреВрдВрдЧрд╛)ред

рдореИрдВ рдЕрднреА рднреА рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдареАрдХ рд╣реВрдВ: рдореИрдВрдиреЗ рдЕрднреА рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдирд╡реАрдирддрдо рдЙрддреНрддрд░ рдореЗрдВ рджреЛ рджрд╛рд╡реЛрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рдмрд╛рд╣рд░ рдмреБрд▓рд╛рдП рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдкреБрди: рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдЪреАрдиреА, рдореЗрд░рд╛ рд╡реНрдпрдВрдЧреНрдпрд╛рддреНрдордХ рджрд┐рдорд╛рдЧ рдлрд┐рд▓реНрдо "рд╕реНрдиреИрдЪ" рдХреЛ рдЙрджреНрдзреГрдд рдХрд░рддрд╛ рд╣реИ: "рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдлреА рдореАрдард╛ рд╣реВрдВ"
рдкреБрди: рдХреЛрд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреНрд╖рдорддрд╛ рдХреЛ рддреЛрдбрд╝рдирд╛: рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рдХреБрдЫ рд╣реИ, рдФрд░ рдЬрд┐рддрдирд╛ рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЗрд╕реЗ рд╡реИрд╕реЗ рд╣реА рд░рдЦреЗрдВред

@StartAutomating : рдХреНрдпрд╛ рдЖрдк рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рд╢реВрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛? рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХ рдЪреАрдиреА рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рдЬрдЧрд╣ рд╣реИ

рдЬреЛ рд▓реЛрдЧ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдЙрдиреНрд╣реЗрдВ рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк PowerShell рдореЗрдВ рдХрдИ рддрд░реАрдХреЛрдВ рд╕реЗ "рдирд▓ рдХреЛрд▓реЗрд╕" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рдордЭ рд▓рд┐рдпрд╛ (рдпрд╣ рдореЗрд░рд╛ рдЕрдкрдирд╛ рдЬрд╡рд╛рдм рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рд▓рд┐рдЦрд╛ рдерд╛), рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдХреАрдЪрдбрд╝ рдХреА рддрд░рд╣ рд▓рдЧрд╛ред рдпрд╣ рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлрд╝реНрд▓реЛ рдЙрддреНрддрд░ рдкрд░ рдПрдХ рдЯрд┐рдкреНрдкрдгреАрдХрд╛рд░ рдиреЗ рдмрддрд╛рдпрд╛, рдореВрд▓реНрдпрд╛рдВрдХрди рд╢реЙрд░реНрдЯ-рд╕рд░реНрдХрд┐рдЯ рдирд╣реАрдВ рд╣реИред ?. рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреЙрд▓/рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдкреАрдЫрд╛ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред 2013 рдореЗрдВ рд╡рд╛рдкрд╕, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рдерд╛ - рдФрд░, рдлрд┐рд░ рднреА, рдЗрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЖрдк рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреИрд╕реЗ рд▓рдЧрд╛ред рдореБрдЭреЗ рдпрд╣ рддреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛ рдХрд┐ рдпреЗ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рддреАрдХ-рджрд░-рдкреНрд░рддреАрдХ рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВред

рдЗрд╕рдореЗрдВ рдЖрдк рдЧрд▓рдд рд╣реИрдВред рдХреЛрд░ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕рд┐рдВрдЯреИрдХреНрд╕ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдореЙрдбреНрдпреВрд▓ рдХреЛрд░ рдкрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ (+ - рд▓рд┐рдирдХреНрд╕ рдмрдирд╛рдо рд╡рд┐рдВрдбреЛрдЬ рдкрд╛рдерд┐рдВрдЧ/рдиреНрдпреВрд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ)ред рдЕрдзрд┐рдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЖрдкрдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХреЛрд░ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрдо рд╣реИ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд┐рдВрдбреЛрдЬ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдкреАрдЖрдИ рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореИрдВ рдЕрдкрдиреЗ рдбрдмреНрд▓реНрдпреВрдкреАрдПрдл рд░реИрдкрд░ рдХреЛ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд╕рд╛рдВрд╕ рдирд╣реАрдВ рд░реЛрдХреВрдВрдЧрд╛)ред

рдореИрдВ рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреЗрд╡рд▓ рдЕрдиреБрднрд╡ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмреЛрд▓ рд░рд╣рд╛ рд╣реВрдВ, рдмрдЬрд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдЪрд┐рдд рдЖрдВрдХрдбрд╝реЗ рджреЗрдЦреЗрдВ рдФрд░ рдПрдХрддреНрд░ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░реА-рдХреЛрд░, рдореИрдВ [System.Web.Security.Membership]::GeneratePassword(32, 6) рд╕рд╛рде рдкрд╛рд╕рд╡рд░реНрдб рдЬреЗрдирд░реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХреЛрд░ рдореЗрдВ System.Web рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред (рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╢рд╛рдпрдж рдкреБрд░рд╛рдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдПрдХ рджреЗрд╡рдХрд┐рдЯ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рд░рд╣рд╕реНрдпреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдПрдХ рддреНрд╡рд░рд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рд╛рди рдЬрдЧрд╣ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рдмреИрд╢ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкрд╛рд╡рд░рд╢реЗрд▓ рдХреЛрд░ рдореЗрдВ рдЕрдзрд┐рдХ рдХреНрд░рд┐рдпрд╛ рд╣реИред рдмреЗрд╢рдХ, рдмреИрд╢ рдХреЗ рд╕рдорд╛рдзрд╛рди рдЕрдХреНрд╕рд░ рдмрд╣реБрдд рдмрджрд╕реВрд░рдд рд▓рдЧрддреЗ рд╣реИрдВред

рдкреБрди: рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдЪреАрдиреА, рдореЗрд░рд╛ рд╡реНрдпрдВрдЧреНрдпрд╛рддреНрдордХ рджрд┐рдорд╛рдЧ рдлрд┐рд▓реНрдо "рд╕реНрдиреИрдЪ" рдХреЛ рдЙрджреНрдзреГрдд рдХрд░рддрд╛ рд╣реИ: "рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдлреА рдореАрдард╛ рд╣реВрдВ"

рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдХрднреА-рдХрднреА рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╛рд╡рд░рд╢реЗрд▓ рдЕрд╕рд╛рдзрд╛рд░рдг рд░реВрдк рд╕реЗ рд╕реБрдЦрдж рд╣реИред рдирд▓ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдЙрди рдкреНрд░рдореБрдЦ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬрд╣рд╛рдВ рдореБрдЭреЗ рдЖрдорддреМрд░ рдкрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ - рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рд╣реА рдХрд╣реВрдВрдЧрд╛ред рдореБрдЭреЗ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдЗрдирд▓рд╛рдЗрди рдкрд╛рд╡рд░рд╢реЗрд▓ рднреА рд▓рдЧрддрд╛ рд╣реИ рдЕрдЧрд░-рдЕрдиреНрдпрдерд╛ рдПрдХ рдЯрд░реНрдирд░реА рдСрдкрд░реЗрдЯрд░ рдпрд╛ рдмреИрд╢ рдХреЗ && рдФрд░ || рдЪреЗрдирд┐рдВрдЧ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмреЛрдЭрд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдПред рдЪреВрдВрдХрд┐ рдпрд╣ рдЙрди рдкреНрд░рдореБрдЦ рдореБрджреНрджреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдореБрдЭреЗ рд╕рд╛рд▓реЛрдВ рдкрд╣рд▓реЗ рдкреЙрд╡рд░рд╢реЗрд▓ рд╕реЗ рджреВрд░ рдЬрд╛рдирд╛ рдкрдбрд╝рд╛, рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред

рджреВрд╕рд░реА рдУрд░, рдореИрдВ рджреИрдирд┐рдХ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рдирд┐рдкрдЯрддрд╛ рд╣реВрдВ, рдФрд░ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рд▓рд┐рдЦ тАЛтАЛрд░рд╣рд╛ рд╣реВрдВ, рдореИрдВ рд╣рдореЗрд╢рд╛ рд╕реЛрдЪрддрд╛ рд╣реВрдВ, "рдпрд╣ рднрд╛рд╖рд╛ X рдореЗрдВ рдЗрддрдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛!" - рдФрд░ рдлрд┐рд░ рдЬрдм рдореИрдВ рднрд╛рд╖рд╛ рдПрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ, "рдпрд╣ рднрд╛рд╖рд╛ рд╡рд╛рдИ рдореЗрдВ рдЗрддрдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛!" рд▓реЗрдХрд┐рди рд╣реЗ, рдЕрдЧрд░ рдореБрдЭреЗ рдпрд╣ рдХрд╣рдиреЗ рдХрд╛ рдореМрдХрд╛ рдорд┐рд▓рддрд╛ рд╣реИ рдФрд░ рд╢рд╛рдпрдж рднрд╛рд╖рд╛ рдХреА рджрд┐рд╢рд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ рд▓реВрдВрдЧрд╛ред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣рд╛рдБ рдХрд┐рд╕реА рднреА рд╡рд┐рдЪрд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд▓реЗ рд░рд╣рд╛ рд╣реВрдБ, рдмрд╕ рдПрдХ рдФрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реВрдБред

@StartAutomating : рдХреНрдпрд╛ рдЖрдк рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рд╢реВрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛? рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХ рдЪреАрдиреА рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рдЬрдЧрд╣ рд╣реИ

рдореИрдВ рд╣рдореЗрд╢рд╛ рдореБрдЭреЗ рдХреБрдЫ рдирдИ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдЪреАрдиреА рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдБ! рдореИрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реВрдВ рдЬреИрд╕реЗ рдХрд┐ рд╣реИрд▓реЛрд╡реАрди рдкрд░ рдПрдХ рдмрдЪреНрдЪрд╛ рдЪрд╛рд▓-рдпрд╛-рдЙрдкрдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИред

@Zenexer : рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ Powershell рдкрд╕рдВрдж рд╣реИ, рдореИрдВ рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВ рдХрд╛рдлреА рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд╣реВрдВ рдХрд┐ рдкреАрдПрд╕ рдХреЛ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдФрд░ рджреИрдирд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдкрд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рд▓рдЪреАрд▓рд╛рдкрди рдкрд╕рдВрдж рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ .NET рдХреЗ рд╕рд╛рде рд╕рд╣рдЬреАрд╡рди, рдУрд╣ рдпрд╛рд░! рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕рдХреА рджрд┐рд╢рд╛ рдХреА рдкрд░рд╡рд╛рд╣ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП ${...}? рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореБрдЭреЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЗрддрдирд╛ рдХрдард┐рди рд╣реИред

рдЕрдЪреНрдЫреЗ рдЕрдВрдХ, рд▓реЗрдХрд┐рди рдореИрдВ рдХреБрдЫ рдмрд╛рддреЗрдВ рд╕реНрдкрд╖реНрдЯ рдХрд░ рджреВрдВред

рдмреЗрд╣рддрд░ рдпрд╛ рдмрджрддрд░ рдХреЗ рд▓рд┐рдП, рдкрд╛рд╡рд░рд╢реЗрд▓ рдиреЗ рдЖрдЬ рддрдХ рд╕рд┐рдореЗрдВрдЯрд┐рдХ рд╡рд░реНрдЬрдирд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред
рдПрдХ рдирдпрд╛ рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг рдХреЗрд╡рд▓ _new_ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд▓реЗрдХрд░ рдЖрдпрд╛, рдЬрд┐рд╕рдореЗрдВ рдкрд┐рдЫрдбрд╝реА рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдпрд░рдирдХреНрд▓реИрдб рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдереАред
рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЬрд╛рдиреЗ рдХреЗ рдХрд╛рд░рдг рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ, рдХреЛрд░ рдореЗрдВ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд░реЗрдВрдЧрдиреЗ рд▓рдЧреЗред
рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг v7.0 рдХреЛ рдкрд╢реНрдЪрдЧрд╛рдореА-рд╕рдВрдЧрддрддрд╛ рдореЗрдВ _increase_ рд╕рдВрдХреЗрдд рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛: Windows PowerShell рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ред

рдЬрдмрдХрд┐ рдХрдИ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдореМрдЬреВрджрд╛ рдХреЛрдб рдХреЛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рддреЛрдбрд╝реЗ рдмрд┐рдирд╛ рдареАрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХреЗрд╡рд▓ рд╡реИрдХрд▓реНрдкрд┐рдХ (рдСрдкреНрдЯ-рдЗрди) рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ,
рдмрдХреЗрдЯ 3 рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╣рдореЗрд╢рд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: рдПрдХ рд╕реБрдзрд╛рд░ / рд╕реБрдзрд╛рд░ рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рдореМрдЬреВрджрд╛ рдХреЛрдб рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреА _potential_ рд╣реЛ, рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЗрд╕рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ; рд╕рдВрддреБрд▓рди рдкрд░, рдпрд╣ рднрд╛рд╖рд╛ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдУрдкреА рдореЗрдВ рддрд░реНрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╣рд╛рде рдореЗрдВ рдорд╛рдорд▓рд╛ рдореБрдЭреЗ рдПрдХ рдмрд╛рд▓реНрдЯреА 3 рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ; рдЬрдмрдХрд┐ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ _some_ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреВрдЯ рдЬрд╛рдПрдЧреА ( @StartAutomating рдХреЛ рдкрддрд╛

рдпрд╣ рджреБрд░реНрд▓рдн рдХреНрдпреЛрдВ рд╣реИ?

рдХреНрдпреЛрдВрдХрд┐ рдЪрд░ рдирд╛рдореЛрдВ рдореЗрдВ ? рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ _рдмрд┐рдирд╛ {...} _ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП: рдпрджрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕реЗ рд╕рднреА рдХреЗрд╡рд▓ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ {...} , рдХреНрдпреЛрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реЛрддреА рд╣реИ ? : . , ; ( : , рд╕рдм рдкрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рд╣реИ рдПрдХ рдбреНрд░рд╛рдЗрд╡ рд╡рд┐рднрд╛рдЬрдХ)

$var? рдпрд╛ $va?r рдЬреИрд╕реЗ рдирд╛рдореЛрдВ рдХреЛ рдмрд┐рдирд╛ {...} рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рдПрдХ рдЕрдиреБрдорддрд┐ рдереА рдЬрд┐рд╕рдиреЗ рдкрд░реЗрд╢рд╛рдиреА рдХреЗ рд▓рд┐рдП рдХрд╣рд╛, рдФрд░ рдореБрд╕реАрдмрдд рдЖ рдЧрдИ рд╣реИ: рдпрд╣ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдЖрддрд╛ рд╣реИ рднрд╛рд╖рд╛, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реИред

рд╕реА # рд╕реЗ рдкреНрд░реЗрд░рд┐рдд 3 рдирдИ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ (рдХрдо рд╕реЗ рдХрдо рд╡рд╛рдХреНрдп рд░рдЪрдирд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд):

  • рдЯрд░реНрдирд░реА рдХрдВрдбреАрд╢рдирд▓ - 7.0 . рдореЗрдВ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛрдЧреА

    • (Get-Date).Second % 2 ? 'odd' : 'even'

  • рдирд▓-рдХреЛрд▓реЗрд╕рд┐рдВрдЧ рдСрдкрд░реЗрдЯрд░ - 7.0 . рдореЗрдВ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛрдЧреА

    • $var ?? 'default' рдФрд░ $var ??= 'default'

  • рдирд▓-рд╕рд╢рд░реНрдд рдСрдкрд░реЗрдЯрд░ - рд╣рд╛рде рдореЗрдВ рд╕рдорд╕реНрдпрд╛ - 7.0 . рдореЗрдВ рдПрдХ _рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ_ рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдЧреА

    • $possiblyNull?.ToString()

рдЙрдирдореЗрдВ рд╕реЗ рд╕рднреА рдХреЗ рдкрд╛рд╕ рдЙрдирдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ ? , рдФрд░ рд╡реЗ рд╕рднреА рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдмреЛрдЭ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реИрдВ $var? рдкрд╛рд░реНрд╕рд┐рдВрдЧ, рд╣рд╛рд▓рд╛рдВрдХрд┐ ?. рд╕рдмрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдРрд╕рд╛ рд╣реИ:

  • рдЬрдмрдХрд┐ рдЖрдк рддрд░реНрдХ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ $var?1:0 рдЬреИрд╕реЗ рдХреБрдЫ рдЧреЛрд▓реНрдлрд░реЛрдВ рдХреЛ рдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдпрджрд┐ ? рдореЗрдВ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛рддреНрдордХ рдХрд╛рд░реНрдп рдерд╛ - рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЖрдкрдХреЛ ? рд╕реЗ рдкрд╣рд▓реЗ _space_ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛

  • рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рдореБрдЭреЗ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП $var??='bar' (рд╢рд╛рдпрдж рдЗрд╕рд╕реЗ рдХрдо $baz = $foo??$bar ) рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рд╕реНрдерд╛рди рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдпрд╣реА рд╣реИ, рдЕрдЧрд░ рд╣рдо $var? рдХреА рд╡рд░реНрддрдорд╛рди рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЪрд┐рдкрдХреЗ рд░рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо _three_ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рднрд╛рд░рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдпрджреНрдпрдкрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбрд┐рдЧреНрд░реА рдХреЗ рд▓рд┐рдП), рдЬрд┐рдирдореЗрдВ рд╕реЗ 2 рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдо рддреМрд░ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ (рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдирд╣реАрдВ)ред

{...} рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд╛рд▓реА рд╕рдорд╕реНрдпрд╛ _not_ рд╣реИ, рдХреЗрд╡рд▓ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреА рдЕрд╕реБрд╡рд┐рдзрд╛ рд╣реИ: рдпрд╣ рдЙрддрдирд╛ рд╣реА рд╣реИ рдЬрд┐рддрдирд╛ рдХрд┐ _рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░рдирд╛_ рдкрд╣рд▓реА рдЬрдЧрд╣ рдореЗрдВ, рдФрд░ рдмрд╛рдж рдореЗрдВ _рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рднреВрд▓ рдЬрд╛рдирд╛_ (рд╕рдВрднрд╛рд╡рд┐рдд рд╕реВрдХреНрд╖реНрдо рдЦрд░рд╛рдмреА рдХреЗ рд╕рд╛рде) - рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрддрдирд╛ рдкреНрд░рддрд┐-рд╕рд╣рдЬ рдЬреНрдЮрд╛рди рдпреБрдХреНрддред

@ рдПрдХреНрд╕рдИ-рдмреЙрд╕, рдореИрдВ @joneill рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг-рд╕рд╢рд░реНрдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд┐рдЫрдбрд╝реЗ-рд╕рдВрдЧрддрддрд╛ рд╡рд┐рд╢реЗрд╖-рдЖрд╡рд░рдг рд╡рд╛рд▓реЗ рдЗрдВрдЬрди рдХреЛ рднрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

@ mklement0: рдпрд╣ рдЕрдкреНрд░рд╛рдХреГрддрд┐рдХ / рдЬрд╡рд╛рдмреА рд╕рд╣рдЬ рдЬреНрдЮрд╛рди рдпреБрдХреНрдд / рдЖрдк-рдирд╛рдо-рдпрд╣ рд╣реИред рдмреНрд░реИрдХреЗрдЯ рдХрдард┐рди рд╣реИрдВ, рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реИрдХреЗрдЯ рдФрд░ рднреА рдХрдард┐рди рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЙрдирдХреА рдХреЛрдИ рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред

@ mklement0 рдЪреВрдВрдХрд┐ рд╕рдордЭреМрддрд╛ рдЯреВрдЯ рд░рд╣рд╛ рд╣реИ ... рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рд╛рд░рд╛рдВрд╢ рд╣реИред

рдкрд╛рд╡рд░рд╢реЗрд▓ рдореЗрдВ рд╕реА # рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдореБрдЭреЗ рдЕрднреА рддрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЬреАрддрдирд╛ рдмрд╛рдХреА рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рдЬрдЧрд╣реЛрдВ рдкрд░ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХрд┐ рдХреАрдмреЛрд░реНрдб рдкрд░ рдкрд░реНрдпрд╛рдкреНрдд рдкреНрд░рддреАрдХ рдирд╣реАрдВ рд╣реИрдВред рдХреНрдпрд╛ ">" "рдЗрд╕рд╕реЗ рдмрдбрд╝рд╛" рдпрд╛ "рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ" рд╣реИ? рд╣реИ "=" рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдпрд╛ рдЯреЗрд╕реНрдЯ-рд╕рдорд╛рдирддрд╛ (рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ: = рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛ == рд╕рдорд╛рдирддрд╛ рдХреЗ рд▓рд┐рдП)ред рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдХреВрджрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧ -eq рдпрд╛ -gt рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рднреВрд▓ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рд╣рдо рдЗрд╕рдХреЗ рд╕рд╛рде рдлрдВрд╕ рдЧрдП рд╣реИрдВ... + рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдЬреЛрдбрд╝, рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ/рд╕рд░рдгреА рд╕рдВрдпреЛрдЬрди рд╣реИред * рдЧреБрдгрд╛ рдФрд░ рд╡рд╛рдЗрд▓реНрдб рдХрд╛рд░реНрдб рджреЛрдиреЛрдВ рд╣реИред % рдореЛрдбреБрд▓реЛ рд╣реИ рдФрд░ forEach-object. рд▓рд┐рдП рдПрдХ рдЙрдкрдирд╛рдо рд╣реИ

рдЧрд░реАрдм ? Where-Object. рд▓рд┐рдП рдЙрдкрдирд╛рдо рд╣реИ рдФрд░ рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЪрд░ рдХрд╛ рдирд╛рдо рд╣реИред рд▓реЗрдХрд┐рди Get-Alias ? рдпрд╛ Get-Variable ? ... рдФрд░ рдлрд┐рд░ рдпрд╣ рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдХрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

Get-PSdrive рдФрд░ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ "рд╡реЗрд░рд┐рдПрдмрд▓" рдЖрджрд┐ рдореЗрдВ рдирд╛рдо рдХреЗ рдЕрдВрдд рдореЗрдВ ":" рдирд╣реАрдВ рд╣реИ, рдПрдХ рдирд╛рдо рдЬреЛрдбрд╝рдиреЗ рдкрд░ рдЗрд╕реЗ рдПрдХ рдбреНрд░рд╛рдЗрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рддрдХ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдиреЗ "$drive="C" рд▓рд┐рдЦрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ "$drive:temp" рд╕рд╛рде рдкрд╛рд▓рди рдХрд░реЗрдВ, рдкрд╛рд╡рд░рд╢реЗрд▓ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рдирдпрд╛ (рдФрд░ рдХреБрдЫ рдкреБрд░рд╛рдиреЗ рд╣рд╛рде, рдЬрдм рд╡реЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ) рдпрд╣ рдЬрд╛рдирдХрд░ рдЪрдХрд┐рдд рд╣реЛрдВрдЧреЗ рдХрд┐ рд╡реЗ ' ve рдиреЗ рдЕрднреА рдПрдХ рдирд╛рдорд┐рдд рд╕реНрдХреЛрдк "рдбреНрд░рд╛рдЗрд╡" рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рд╣реИред

рддреЛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд ... рдХреЛрдИ рдХрд╣ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ '":" рдФрд░ "?" рдХреЗ рд▓рд┐рдП рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдмрдирд╛рдПрдВред рдХреНрдпрд╛ рддреБрдо рдкрд╛рдЧрд▓ рд╣реЛ?'
IIRC, рдЯреНрд╡рд┐рдЯрд░ рдкрд░ @BrucePay рдиреЗ рдЯрд░реНрдирд░реА рдСрдкрд░реЗрдЯрд░ рдХреЛ "рдиреЙрдЯ

рдЕрдзрд┐рдХрддрд░ рд▓реЛрдЧ $PSEdition.length -gt 2 рд▓рд┐рдЦреЗрдВрдЧреЗ
рд▓реЗрдХрд┐рди $PSEdition. length-gt2 рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдЖрдк рджреЛ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд▓рд╛рдЗрди рдмреНрд░реЗрдХ рднреА рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред) "ред" "рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛", "рдЗрд╕ рджрд╛рдпрд░реЗ рдореЗрдВ рдЪрд▓рд╛рдПрдВ" рдФрд░ "рд╕рджрд╕реНрдп" рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЕрддрд┐рднрд╛рд░рд┐рдд рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреАрдПрд╕ рд╡реА 1-рд╡реА 5 рдореЗрдВ рдореИрдВ рдХрд┐рд╕реА рднреА рдСрдкрд░реЗрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рдгреА рд╕реНрдерд╛рди рдХреА
$host.debuggerEnabled?0:1 рдареАрдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ "?" рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП _not_ рдЧреНрд░рд╣рдг рдХрд┐рдпрд╛ рдЧрдпрд╛
$IsCoreCLR?0:1 рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ "?" рдЪрд░ рдирд╛рдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

рдирд▓ рдХреЛрд▓реЗрд╕рд┐рдВрдЧ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдпрд╣реА рд╕рдЪ рд╣реИ
$null?? "default" рдХреЛ рдЬрдЧрд╣ рдЪрд╛рд╣рд┐рдП $true.length?? "default" рдирд╣реАрдВред

рдореВрд▓ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдореБрджреНрджреЗ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдкрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░рдл рд░рдЦ рджреЗрдВред рдЙрдкрд░реЛрдХреНрдд рдорд╛рдорд▓реЗ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдХреБрдЫ рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдирд╛рдо "?" "ред" рд╡рд╛рд▓реЗ рдирд╛рдореЛрдВ рдХреА рддрд░рд╣ рд▓рдЯрдХреЗ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╛ "+" рдпрд╛ ":" , рдФрд░ @StartAutomating рдЬреЛ "?" рдХрд╛ рдореБрдЦреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИ рдирд╛рдореЛрдВ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ _рдмреНрд░реЗрдХ рд╣реИ рдЬрд┐рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ_ред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рд╢реВрдиреНрдп-рд╕рджрд╕реНрдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪреЗрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 'рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЦреЛрдЬреЗрдВ'

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдо рд╕рдордп рдХреА рдЦрд┐рдбрд╝рдХреА рд╣реИ рдЬрд┐рд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдирд╛рдореЛрдВ рдореЗрдВ рдмрд╛рдВрдзреЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдпрджрд┐ рд╡рд╣ рд╕реБрд╡рд┐рдзрд╛ рдЪрд╛рд▓реВ рд╣реИ - рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП - рд╕рднреА рдирдИ? рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рддрджрдиреБрд╕рд╛рд░ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреЗрд╡рд▓ рдЕрдЧрд░ рд╡рд╣ рд╕реБрд╡рд┐рдзрд╛ рдмрдВрдж рд╣реИ рддреЛ рдкрд╛рд░реНрд╕рд░ рдХреЛ рдЗрди рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд╕рд╛рде рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдпрд╛ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА .. рдпрд╣ рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИ, рдЬрдм рддрдХ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдФрд░ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдирд╛рдо рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рд╕реЗ $IsIt рдХреЛ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рд┐рдП) рдХреБрдЫ рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдПрдХ рдЫреЛрдЯреА рдирд┐рд░реНрд╡рд┐рд╡рд╛рдж рд╕рдВрдЦреНрдпрд╛) рдХреЛ рддреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ ?.tostring() рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкрд╣рд▓реА рддреНрд░реБрдЯрд┐ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдлрд▓ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЦрддрд░рдирд╛рдХ рддрд░реАрдХреЗ рд╕реЗ рдирд╣реАрдВ рдЪрд▓рдиреА рдЪрд╛рд╣рд┐рдП)ред рдФрд░ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдпрд╣ рдПрдХ рдмрд┐рдВрджреБ рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЖрдк рдкрд╛рд╡рд░рд╢реЗрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╣реА рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реЗрдореА-рд╡реЗрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИ)

рдЖрд╡рд╢реНрдпрдХрддрд╛ {...} рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреА рдЕрд╕реБрд╡рд┐рдзрд╛ рдирд╣реАрдВ рд╣реИ: рдпрд╣ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рди рдХрд░рдиреЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рднреВрд▓ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ (рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рд╕реВрдХреНрд╖реНрдо рдЦрд░рд╛рдмреА рдХреЗ рд╕рд╛рде) - рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрддрдирд╛ рдкреНрд░рддрд┐-рд╕рд╣рдЬред

рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИ рдФрд░ рдпрд╣ рдХрд╛рдлреА рд╣рдж рддрдХ рдореБрдЭреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ ${...?} рдмрд╛рд░реЗ рдореЗрдВ рдкрд░реЗрд╢рд╛рди рдХрд░реЗрдЧрд╛ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЕрдЧрд░ рдореИрдВ {} рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рдирддрд╛ рд╣реВрдВ, рддреЛ рдПрдХ рдордЬрдмреВрдд рдореМрдХрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЕрдВрддрддрдГ рднреВрд▓ рдЬрд╛рдКрдВрдЧрд╛, рдФрд░ рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕реВрдХреНрд╖реНрдо рдмрдЧ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╢рд╛рдпрдж рдЕрднреА рднреА рд╡рд╛рдХреНрдп рд░рдЪрдирд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдорд╛рдиреНрдп рд╣реЛрдЧрд╛ред $var??='bar' рдЗрд╕рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рд░рд┐рдХреНрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд╡рдзрд╛рди рд╣реВрдВред

рдзрдиреНрдпрд╡рд╛рдж, @joneill , рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рдХрд┐рддрдиреЗ рдкреНрд░рддреАрдХ
рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП, рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рд╕рднреА рдЙрдкрдпреЛрдЧреЛрдВ рд╕реЗ рдЕрд╡рдЧрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░рдгреЛрдВ рд╕реЗ:

  • рд╡рд┐рднрд┐рдиреНрди рд╕рдВрджрд░реНрдн (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, * рдПрдХ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдо * рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдЪрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВред)

    • ? рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рд╕рдорд╛рди рд╣реИ, рдЕрдореВрд░реНрддрддрд╛ рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрддрд░ рдкрд░: рдЖрдк ? рдореЗрдВ Get-ChildItem | ? Target , $var?.Target , $? рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред $var ?? 'none' рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдореЗрдВ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ _question_ рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП _test_ рдпрд╛ _рд╕рд╢рд░реНрдд рд╡реНрдпрд╡рд╣рд╛рд░_ред

  • рд╕рдордЭрджрд╛рд░ рдмрд╣реБрд░реВрдкреА рд╡реНрдпрд╡рд╣рд╛рд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, + рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдХрд╛ рдкреНрд░рджрд░реНрд╢рди)ред

рдПрдХ рд╕рдорд╕реНрдпрд╛рддреНрдордХ рдЙрджрд╛рд╣рд░рдг & (рдХреЙрд▓ рдСрдкрд░реЗрдЯрд░ рдмрдирд╛рдо рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдСрдкрд░реЗрдЯрд░) рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рд╣реА рд╕рдВрджрд░реНрдн рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╢рдмреНрджрд╛рд░реНрдереЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХреЗрд╡рд▓ рдЗрд╕рдХреЗ _position_ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдирд╛рдо "?" "ред" рд╡рд╛рд▓реЗ рдирд╛рдореЛрдВ рдХреА рддрд░рд╣ рд▓рдЯрдХреЗ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╛ "+" рдпрд╛ ":"

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдФрд░ рдпрд╣ рджреЛрд╣рд░рд╛рдирд╛ рд╣реЛрдЧрд╛: рдЪрд░ рдирд╛рдореЛрдВ рдореЗрдВ ? рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рджреВрд░ рдирд╣реАрдВ рдЬрд╛рдПрдЧреА - рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЖрдЧреЗ рдЬрд╛рдХрд░ ${var?} = @{ foo=1 }; ${var?}?.foo

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдХрд┐рд╕реА рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╕рдордЭрджрд╛рд░реА рд╕реЗ _not_ ? рд╡реИрдз рдЪрд╛рд░ рд╣реЛрдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред . рдбреЙрдЯ-рд╕реЛрд░реНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рдЕрдкрд╡рд╛рдж рд╣реИ; ? Where-Object рдЙрдкрдирд╛рдо рдХреЗ рдмрд╛рдж рдПрдХ рд╕реНрдерд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реЛ рд╕рдХрддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, gci|?target рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдХрдорд╛рдВрдб рдирд╛рдо _do_ рдХреЛ рд╡реНрд╣рд╛рдЗрдЯрд╕реНрдкреЗрд╕ рдХреЗ рд╕рд╛рде рдЙрдирдХреЗ рддрд░реНрдХреЛрдВ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред

. рдФрд░ рдПрдХ рд╕рджрд╕реНрдп рдХреЗ рдирд╛рдо ( $obj. foo ) рдХреЗ рдмреАрдЪ рд╡реНрд╣реЙрдЯреНрд╕рдПрдк рд░рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдмрд╣реБ-рдкрдВрдХреНрддрд┐ рдХрдердиреЛрдВ рдореЗрдВ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрдХреАрдирди рдЕрдзрд┐рдХ рдкрдардиреАрдп рд░реВрдк - рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд - (рднреА) рд╣реИ рд╡реНрд╣рд╛рдЗрдЯрд╕реНрдкреЗрд╕ рдХреЛ _before_ . рдЕрдиреБрдорддрд┐ рджреЗрдВ:

# This does NOT work - the . must be *immediately after* the expression / member
(Get-Date)
  .ToUniversalTime()  
  .TimeOfDay

рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рд╕реЗ | рдХреЛ _next_ рд▓рд╛рдЗрди рдкрд░ рд░рдЦрдиреЗ рдХреА рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЬреЛрдбрд╝реА рдЧрдИ рдХреНрд╖рдорддрд╛ рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

 # Already works in PS Core
Get-Date
  | % ToUniversalTime
  | % TimeOfDay

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ . рд╕рд╛рде рдбреЙрдЯ-рд╕реЛрд░реНрд╕рд┐рдВрдЧ рдСрдкрд░реЗрдЯрд░ рдФрд░ . рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХрдорд╛рдВрдб рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдЕрдирд╕реБрд▓рдЭреЗ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛рдУрдВ рдХреЛ рдкреЗрд╢ рдХрд░реЗрдЧрд╛ - рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, . foo рдПрдХ рдирдИ рд▓рд╛рдЗрди рдкрд░ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╛ рдПрдХ рдХрдорд╛рдВрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ foo рдирд╛рдордХ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдбреЙрдЯ-рд╕реЛрд░реНрд╕ рдХрд░рддрд╛ рд╣реИ (рдЬреЛ $env:PATH ) ; .foo рдПрдХ _command_ рдХрд╛ рдирд╛рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред

@KirkMunro рдХреА рдорд▓реНрдЯреА рд▓рд╛рдЗрди рдирд┐рд░рдВрддрд░рддрд╛ RFC, рдЬрдмрдХрд┐ _commands_ рдХреЛ рдХрдИ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реБрдП, рд╣рдореЗрдВ рдЕрдЧрд▓рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рджреЗрдЧрд╛ - рджреЗрдЦреЗрдВ https://github.com/PowerShell/PowerShell-RFC/pull/179#issuecomment -498734875ред

рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╕реБрд╡рд┐рдзрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗ рд░реВрдк рдореЗрдВ: - рд▓реЗрдХрд┐рди рдирд╣реАрдВ рдЬрд╛рд░реА рдЙрдореНрдореАрджрд╡рд╛рд░реЛрдВ - рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, _preview_ рд░рд┐рд▓реАрдЬ рдЕрдм рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЪрд╛рд▓реВ _all_ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╛рд░реА; рд╣рд╛рд▓рд╛рдВрдХрд┐, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдкрдиреЗ рдХрднреА рднреА Enable-ExperimentalFeature рдпрд╛ рддреЛ _рдмрд┐рдирд╛ _ -Scope рдпрд╛ -Scope CurrentUser рд╕рд╛рде рдЬреЛ рднреА рд╕реБрд╡рд┐рдзрд╛рдПрдВ рд╕рдХреНрд╖рдо рдХреА рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рд▓рдЧрд╛рддрд╛рд░ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

@ mklement0 рдЬрдмрдХрд┐ рдореИрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рдЙрд╕ рд╕рдм рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ, рдореБрдЭреЗ рдбрд░ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдЪрд░реНрдЪрд╛ рдХреЛ рдереЛрдбрд╝рд╛ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд┐рдЯреНрд╕ рдФрд░ рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рдкрдЯрд░реА рд╕реЗ рдЙрддрд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рдпрджрд┐ рдЖрдк рдбреЙрдЯ-рдкреНрд░реЙрдкрд░реНрдЯреА рдСрдкрд░реЗрдЯрд░ рдХреЗ рдЖрд╕-рдкрд╛рд╕ рд▓рд╛рдЗрди-рдирд┐рд░рдВрддрд░рддрд╛ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рдпрджрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдХреЛрдИ рдирд╣реАрдВ рд╣реИред рдореИрдВ

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ ? рдХреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЪрд░ рдирд╛рдо рдЪрд░рд┐рддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЪрд░рд┐рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдЪрд╛рдирдХ рдЪреАрдЬреЛрдВ рдХреЛ рд╕рдлреЗрдж рд╕реНрдерд╛рди рдХреЛ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ рдХрдо рд╕реЗ рдХрдо, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЪрд░ рдирд╛рдореЛрдВ рдореЗрдВ _ever_ рд╣реИ рдЕрддреАрдд рдореЗрдВ рд╡реНрд╣рд╛рдЗрдЯрд╕реНрдкреЗрд╕-рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд░рд╣рд╛ рд╣реИред

рдЙрд╕ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрдирд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдФрд░ рдПрдХ рдЪрд░ рдирд╛рдо рдореЗрдВ рдЙрдкрдпреЛрдЧ рд╕реЗ ? рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдмреНрд░реЗрдХрд┐рдВрдЧ рдЪреЗрдВрдЬ рдХреЗ рд╕рд╛рде, рд╣рдо рд▓реЗрдЦрдХреЛрдВ рдХреЛ рд╕рдЪреЗрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рдиреА рд╕реЗ PSSA рдирд┐рдпрдо рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреА рдЕрдм рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд░рд┐рд╡рд░реНрд╕ рдЗрддрдиреА рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдЪ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдмреНрд░реЗрдХрд┐рдВрдЧ рдЪреЗрдВрдЬ рдХреЗ рд╡рд┐рдкрд░реАрдд рдпрд╣ рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рдЧрд▓рддреА рд╕реЗ рдирд┐рдХрд▓ рдЬрд╛рдП; рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЧрд▓рддреА рд╕реЗ рдЧрд▓рдд рдЪрд░ рдХреЛ рдЪреБрдкрдЪрд╛рдк рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдмрд┐рдирд╛ рдпрд╣ рдЬрд╛рдиреЗ рдХрд┐ рд╡реЗ рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

@ рдкрд╛рд╡рд░рд╢реЗрд▓/рдкреЙрд╡рд░рд╢реЗрд▓-рд╕рдорд┐рддрд┐ рдиреЗ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА, рд╣рдордиреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдкрд╛рд╡рд░рд╢реЗрд▓ рдХреЙрд░реНрдкрд╕ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдерд╛ рдФрд░ рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрди рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЪрд░ рдирд╛рдореЛрдВ рдХрд╛ рдХрд╛рдлреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЬреИрд╕реЗ, рд╣рдо рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рддреЛрдбрд╝ рдирд╣реАрдВ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд╛рд╡рд░рд╢реЗрд▓ рдЪрд░ рдирд╛рдореЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдПрдХ рдореМрдЬреВрджрд╛ рднрд╛рд╖рд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬреЛ рдЪрд░ рдирд╛рдо рдХреЛ рдЕрдиреНрдп рд╡рд░реНрдгреЛрдВ (рдЬреИрд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рднреАрддрд░) рд╕реЗ рдЕрд▓рдЧ рдХрд░рддреА рд╣реИред

рд╣рдордиреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдкрд╛рд╡рд░рд╢реЗрд▓ рдХреЙрд░реНрдкрд╕ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдерд╛ рдФрд░ рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрди рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЪрд░ рдирд╛рдореЛрдВ рдХрд╛ рдХрд╛рдлреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛

рдзрдиреНрдпрд╡рд╛рдж, @ рд╕реНрдЯреАрд╡рдПрд▓-рдПрдордПрд╕рдПрдлрдЯреА - рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрд╕ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рд╣рд╛рдБ, рдореИрдВ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реВрдБ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рд╕рдореБрджрд╛рдп рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдиреЗ рдЕрдкрдирд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рдЙрд╕ рддрд░рд╣ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдХрд░реАрдм рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛ред

рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдкрд░рд┐рдгрд╛рдо рдФрд░ рд╡рд┐рдзрд┐ рдХреЛ рднреА рджреЗрдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдореИрдВрдиреЗ рдХрд▓ рд░рд╛рдд рдПрдПрд╕рдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдкрд╛рд╡рд░рд╢реЗрд▓ рдХреЙрд░реНрдкрд╕ рдХрд╛ рдЕрдкрдирд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛, рдЬрд┐рд╕реЗ рдореЗрд░реА рдорд╢реАрди рдкрд░ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ 6 рдШрдВрдЯреЗ рд▓рдЧреЗред рд╡рд┐рдВрдбреЛрдЬ рдбрд┐рдлреЗрдВрдбрд░ рджреНрд╡рд╛рд░рд╛ рдлрд╛рдЗрд▓ рдХреЛ рдХреНрд╡рд╛рд░рдВрдЯрд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рдмрд╣реБрдд рдХрдо рдлрд╛рдЗрд▓реЗрдВ рдкрд╛рд░реНрд╕ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХреАрдВред

рдореБрдЭреЗ рдПрдХ рдкреНрд░рд╢реНрдирд╡рд╛рдЪрдХ рдЪрд┐рд╣реНрди рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА 8 рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ 11 рдЕрджреНрд╡рд┐рддреАрдп рдЪрд░ рдирд╛рдо рдорд┐рд▓реЗ ($? рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЬреЛ 8846 рдмрд╛рд░ рджрд┐рдЦрд╛)ред 408,423 рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдХреБрд▓ 1,895,983, рдЕрджреНрд╡рд┐рддреАрдп рдЪрд░ рдереЗред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреЙрд░реНрдкрд╕ рдореЗрдВ рд╕рднреА рдЕрджреНрд╡рд┐рддреАрдп рдкрд╛рд╡рд░рд╢реЗрд▓ рдЪрд░ рдХреЗ 0.0006% рдореЗрдВ рдПрдХ рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрди рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЪрд░ рдирд╛рдо рд╣реИред

рдпрд╣рд╛рдБ 8 рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ 11 рдЕрджреНрд╡рд┐рддреАрдп рдЪрд░ рд╣реИрдВ:

File                 : C:\Temp\PowerShellCorpus\Github\alanrenouf_PowerActions\Kill-VM.ps1
QuestionMarkVars     : vParam?
QuestionMarkVarCount : 1

File                 : C:\Temp\PowerShellCorpus\Github\anthonywlee_PowerShell\Send_Notification.ps1
QuestionMarkVars     : To?
QuestionMarkVarCount : 1

File                 : C:\Temp\PowerShellCorpus\Github\aspear_My-PowerCLI-scripts\my-labotomize-vms.ps1
QuestionMarkVars     : vParam?
QuestionMarkVarCount : 1

File                 : C:\Temp\PowerShellCorpus\Github\jlundstrom_Scripts\Powershell\7Zip SFX Creator\Build.ps1
QuestionMarkVars     : Title?
QuestionMarkVarCount : 1

File                 : C:\Temp\PowerShellCorpus\Github\pslaughter_Working\Setup-Host.ps1
QuestionMarkVars     : HostIp?
QuestionMarkVarCount : 1

File                 : C:\Temp\PowerShellCorpus\Github\stevenayers_PowerShell-Scripts\Random Functions\Add-OutlookConferenceRegionNumber.ps1
QuestionMarkVars     : {key1?, key2?, key3?, key4?}
QuestionMarkVarCount : 4

File                 : C:\Temp\PowerShellCorpus\Github\unixboy_powershell-stufff\stopvm.ps1
QuestionMarkVars     : vParam?
QuestionMarkVarCount : 1

File                 : C:\Temp\PowerShellCorpus\PowerShellGallery\PsHg\0.6.2\PsHg.psm1
QuestionMarkVars     : PsHg?
QuestionMarkVarCount : 1

рдпрд╣ рд░рд┐рдкреЛрд░реНрдЯ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ:

Get-ChildItem -Path C:\Temp\PowerShellCorpus -Include *.ps1, *.psm1 -File -Recurse | ForEach-Object -Parallel {
    try {
        $content = $PSItem | Get-Content

        $ast = [System.Management.Automation.Language.Parser]::ParseInput($content, [ref]$null, [ref]$null)
        $variables = $ast.FindAll({$args[0] -is [System.Management.Automation.Language.VariableExpressionAst ]}, $true)

        # First query because I forgot to exclude $? variables
        # $nonQuestionMark = $variables | Where-Object VariablePath -notmatch '\?$' | Select-Object -Unique
        # $QuestionMark = $variables | Where-Object VariablePath -match '\?$' | Select-Object -Unique

        $nonQuestionMark = $variables |
        Where-Object VariablePath -notmatch '\?$' |
        ForEach-Object { $_.VariablePath.UserPath.ToString() } |
        Select-Object -Unique

        $QuestionMark = $variables |
        Where-Object { $_.VariablePath -match '\?$' -and $_.VariablePath.UserPath -ne '?' } |
        ForEach-Object { $_.VariablePath.UserPath.ToString() } |
        Select-Object -Unique

        $output = [pscustomobject]@{
            File = $PSItem
            QuestionMarkVars = $QuestionMark
            QuestionMarkVarCount = $QuestionMark.Count
            NonQuestionMarkVars = $nonQuestionMark
            NonQuestionMarkVarCount = $nonQuestionMark.Count
        }

        $output
    }
    catch {
        throw
    }
}

рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдзрд┐ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдСрдбрд┐рдЯ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

$abc = 'test'
$isAwesome? = $true
$?

$test = {
    $?
    $isabc? = { $adce? = 'test' }
    ${def?} = 123
    ${is a bad var name?} = $isabc?
}

рдХрд╛ рдкрд░рд┐рдгрд╛рдо:

File                    : C:\temp\variable.ps1
QuestionMarkVars        : {isAwesome?, isabc?, adce?, def?, is a bad var name?}
QuestionMarkVarCount    : 5
NonQuestionMarkVars     : {abc, true, test}
NonQuestionMarkVarCount : 3

рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдЧрдгрд┐рдд рдХреА рдХрдХреНрд╖рд╛ рдореЗрдВ рдХрд╣рддреЗ рд╣реИрдВ, "рдХреГрдкрдпрд╛ рдЕрдкрдирд╛ рдХрд╛рдо рджрд┐рдЦрд╛рдПрдБ"

рдЙрддреНрдХреГрд╖реНрдЯ рдЦреЛрдЬреА рдХреБрддреНрддрд╛ ,

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдФрд░ рднреА рдЕрдзрд┐рдХ рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдлреЙрд░реНрдо ${...} рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреЗрд╡рд▓ $isAwesome? рд╣рдореЗрдВ ${isAwesome?} рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ

рдЖрдкрдХреА рдЙрджрд╛рд╣рд░рдг рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде:

$variables.Extent.Text.Where({ $_ -match '(?<!\$)\?$' }) | Select-Object -Unique

рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдорд┐рд▓рддрд╛ рд╣реИ:

$isAwesome?
$isabc?
$adce?

рдЕрд░реНрдерд╛рддреН, ${def?} рдФрд░ ${is a bad var name?} рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдкреБрдирд╢реНрдЪ: рдкреВрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП $PSItem | Get-Content -Raw рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢рд╛рдпрдж рдмреЗрд╣рддрд░ рд╣реИред

@ mklement0 рдпрд╣ рд╕рд╣реА рд╣реИ, рдореИрдВрдиреЗ рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЛ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рдЬреЛрдбрд╝рд╛ рддрд╛рдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ рд╕рдХреЗ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рд╕рд╛рде рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕ рдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдЪрд░ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдирд╣реАрдВ рдереАред

рдЖрдкрдХреА рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рдирд┐рдореНрди рдЖрдЙрдЯрдкреБрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИ рдЬреИрд╕реЗ рд╣рдо рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВред

File                    : C:\temp\variable.ps1
QuestionMarkVars        : {isAwesome?, isabc?, adce?}
QuestionMarkVarCount    : 3
NonQuestionMarkVars     : {abc, true, test}
NonQuestionMarkVarCount : 3

рдореИрдВрдиреЗ рдЙрди 8 рдлрд╛рдЗрд▓реЛрдВ рдкрд░ рдЕрджреНрдпрддрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдИ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕ рдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдо рдЕрднреА рднреА 11 рдЕрджреНрд╡рд┐рддреАрдп рдЪрд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрдВрдЧреЗред

рдЕрджреНрдпрддрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ:

Get-ChildItem -Path C:\Temp\PowerShellCorpus -Include *.ps1, *.psm1 -File -Recurse | ForEach-Object -Parallel {
    try {
        $content = $PSItem | Get-Content -Raw

        $ast = [System.Management.Automation.Language.Parser]::ParseInput($content, [ref]$null, [ref]$null)
        $variables = $ast.FindAll({$args[0] -is [System.Management.Automation.Language.VariableExpressionAst ]}, $true)

        $nonQuestionMark = $variables |
        Where-Object VariablePath -notmatch '\?$' |
        ForEach-Object { $_.VariablePath.UserPath.ToString() } |
        Select-Object -Unique

        $QuestionMark = $variables |
        Where-Object { $_.VariablePath -match '\?$' -and $_.VariablePath.UserPath -ne '?' -and $_.Extent.Text -match '(?<!\$)\?$' } |
        ForEach-Object { $_.VariablePath.UserPath.ToString() } |
        Select-Object -Unique

        $output = [pscustomobject]@{
            File = $PSItem
            QuestionMarkVars = $QuestionMark
            QuestionMarkVarCount = $QuestionMark.Count
            NonQuestionMarkVars = $nonQuestionMark
            NonQuestionMarkVarCount = $nonQuestionMark.Count
        }

        $output
    }
    catch {
        throw
    }
}

рдзрдиреНрдпрд╡рд╛рдж, @ThomasNieto - рдореИрдВ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрд┐ рд╣рдо рдкреНрд░рддрд┐рд╢рдд рдХреЛ 0.0005% рддрдХ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ... (рд╕рд┐рд░реНрдл рдордЬрд╛рдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВ)ред

рддреЛ рд╕рдорд┐рддрд┐ рдиреЗ рдПрдХ рдЕрд▓рдЧ - рдирд┐рдЬреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛? - рдХреЙрд░реНрдкрд╕ред

рддреЛ, рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд╛рде рдореЗрдВ рд▓реЗрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ: рдХреНрдпрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдХреЛрд╖ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдХреНрдпрд╛ рдЗрд╕реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдмрдирд╛рдП рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ (рд╡рд░реНрддрдорд╛рди рдореЗрдВ рджрд┐рдирд╛рдВрдХ 26 рдЬреБрд▓рд╛рдИ 2017)?

@ рд╕реНрдЯреАрд╡рдПрд▓-рдПрдордПрд╕рдПрдлрдЯреА, рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рд╕реНрдкрд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

@ mklement0 рдореИрдВ рдЧреЛрд▓ рд╣реБрдЖ рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдереЛрдбрд╝рд╛ рдмреЗрд╣рддрд░ рдорд╣рд╕реВрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 0.00058% рд╣реИ

https://github.com/PowerShell/PowerShell-RFC/pull/223#discussion_r318340339 рдореЗрдВ @adityapatwardhan рдиреЗ рдЙрд╕реА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреЛрд╖ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ 62% рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрди рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЪрд░ рдХреЗ рд╕рд╛рде рдЖрдпрд╛ред рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рдХреЛрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рджреЗрдЦреА рдХрд┐ рд╡рд╣ рдЙрд╕ рдкреНрд░рддрд┐рд╢рдд рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдЖрдпрд╛ред рдХреНрдпрд╛ рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдПрд╕ рд╕рдорд┐рддрд┐ рдиреЗ рдЙрд╕ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛?

рд▓рд┐рдВрдХ рдХреА рдЧрдИ рдЯрд┐рдкреНрдкрдгреА рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @adityapatwardhan рдХреНрдпрд╛ рдХрд╣ рд░рд╣рд╛ рд╣реИ рдХрд┐ _рдЙрди рд╕рднреА рдЪрд░реЛрдВ рдореЗрдВ рдЬрд┐рдирдХреЗ рдирд╛рдо рдореЗрдВ ? рд╣реИ_ 62% рдХреЗ рдирд╛рдо рдХреЗ _last_ рд╡рд░реНрдг рдХреЗ рд░реВрдк рдореЗрдВ ? ред

рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, (рдШреБрдВрдШрд░рд╛рд▓реЗ-рдмреНрд░реЗрд╕-рд▓реЗрд╕) рдПрдВрдб-рдЗрди- ? рдЪрд░ (рд╕рдордЧреНрд░ рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдЙрдкрдпреЛрдЧ рдХреЗ рдкреНрд░рддрд┐рд╢рдд рдХреЗ рд░реВрдк рдореЗрдВ) рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рд╕рд╛рд░ рдХрд╛ рдЖрдкрдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЕрдзрд┐рдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд▓рдЧрддрд╛ рд╣реИред

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд┐рддрд┐ рдХреЗрд╡рд▓ "рд╣рдо рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ" рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рднреА рдХреНрдпреЛрдВ рд╣реИ рдпрджрд┐ рдпрд╣ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рднрджреНрджрд╛ рдФрд░ рдЕрдиреБрдкрдпреЛрдЧреА рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ?

@ThomasNieto рдЗрд╕реА рддрд░рд╣ рдореИрдВрдиреЗ рдЗрди рдореБрджреНрджреЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╣реАрдВ рдПрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рдЖрдкрдХреЗ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд┐рдПред

@mburszley рдЕрдкрдирд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдЖрдкрдХреЛ рдорд┐рд▓реЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдПрдХ рдФрд░ рд╡рд┐рдзрд┐ (рдПрдПрд╕рдЯреА рдмрдирд╛рдо рд░реЗрдЧреЗрдХреНрд╕) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред

рдореИрдВ рдЖрдкрдХреЛ рд╕реБрдирддрд╛ рд╣реВрдВ, @mburszley , рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ:

рд╕рдорд┐рддрд┐ рд╕рд┐рд░реНрдл рдХрд╣ рд░рд╣реА рд╣реИ "рд╣рдо рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ"

рдпрджрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ _fiat_ рдирд┐рд░реНрдгрдп рдерд╛ - рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реИ - рдпрд╣ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдореЗрдВ _рдХрдерд┐рдд_ рдХрд╛рд░рдг рдПрдХ рдЖрдзрд╛рд░ рдерд╛ред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдореЗрдВ рд╕рдорд┐рддрд┐ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рдЙрдкрдпреЛрдЧ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХрд╛ рдореМрдХрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП - рдпрд╛ рдпрд╣ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрдо рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдирд┐рд░реНрдгрдп рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

https://github.com/PowerShell/PowerShell/issues/11379#issuecomment-566756120 рдореЗрдВ рдореЗрд░реЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдореИрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ $obj?.Method() рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ $<var i="9">obj</var> ?. <var i="12">Method</var>() рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗ, рдФрд░ рдХреЗрд╡рд▓ $<var i="14">obj?</var> . <var i="17">Method</var>() рдЬрдм $<var i="19">obj</var> рджрд╛рдпрд░реЗ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди $<var i="21">obj?</var> рдХрд░рддрд╛ рд╣реИ рдФрд░ #requires┬атАСVersion v7+ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд╢реНрдЪрдЧрд╛рдореА рд╕рдВрдЧрддрддрд╛ рдЪрд┐рдВрддрд╛рдУрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░реЗрдЧрд╛ред

@ThomasNieto

@ mklement0 рд╕рд╣реА рд╣реИ, рдореЗрд░рд╛ рдорддрд▓рдм рдпрд╣ рдерд╛ рдХрд┐ ? рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЪрд░ рдХреЗ рдмреАрдЪ , 62% рдЕрдВрдд рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣рд╛рдВ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рдкрд░рд┐рдгрд╛рдореЛрдВ рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдЪрд░ рдЬреЛ ? рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЕрдВрдд рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдПрдХ рдЧреИрд░-рддреЛрдбрд╝рдиреЗ рд╡рд╛рд▓рд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ред

рдпрджрд┐ {..} рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрднреА рднреА рдкрд╛рд░реНрд╕ рд╣реЛрдЧреА рд▓реЗрдХрд┐рди рд╢рдмреНрджрд╛рд░реНрде рдЕрд▓рдЧ рд╣реЛрдЧрд╛, рдЬреЛ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдмрд╣реБрдд рдЦрддрд░рдирд╛рдХ рд╣реИред

рдЬрд╝рд░реВрд░... рд▓реЗрдХрд┐рди рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд▓рдЧрднрдЧ рдХреЛрдИ рднреА рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рдорд╛рди, рдЗрд╕реЗ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдПрдХ рд╕рдордп рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рджрд╕реНрддрд╛рд╡реЗрдЬ рдФрд░ рд╕реНрдерд┐рд░ рдореЗрдВ рд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рдПрдХ рдЧреВрдврд╝ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ рдЬрдм рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЪрд░рд┐рддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ ? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреВрд░ рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдпрджрд┐ {..} рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣рдЯрд╛ рджреА рдЬрд╛рддреА рд╣реИ рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрднреА рднреА рдкрд╛рд░реНрд╕ рд╣реЛрдЧреА рд▓реЗрдХрд┐рди рд╢рдмреНрджрд╛рд░реНрде рдЕрд▓рдЧ рд╣реЛрдЧрд╛, рдЬреЛ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдмрд╣реБрдд рдЦрддрд░рдирд╛рдХ рд╣реИред

рдХреНрдпрд╛ рдЖрдк рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдЪрд┐рдВрддрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ ?. рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╡реЗ C/C++/C# рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдВрдХреЗрдд рдХреЗ рдЧрд▓рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рдХреБрдЫ рднреА рдЧрд▓рдд рдХрд┐рдпрд╛ рд╣реИ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

PS> $res = "My length is 15"
PS> $res?.Length
0

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╕рдЦреНрдд-рдореЛрдб рдЗрд╕реЗ рдвреВрдВрдв рд▓реЗрдЧрд╛ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рд╕рдЦреНрдд рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдмрд╣реБрдд рдХрдо рдкреНрд░рддрд┐рд╢рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЯреВрдЯрдиреЗ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо ?. рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореИрдВ рд╡реНрдпрд╛рдкрд╛рд░-рдмрдВрдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╛рдЧрд▓ рдирд╣реАрдВ рд╣реВрдБред рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рддреЛрдбрд╝рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВ, рднрд▓реЗ рд╣реА рдпрд╣ рдмрд╣реБрдд рдХрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╣реЛред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкрд╛рд╡рд░рд╢реЗрд▓ рдХреЛ Enable-ExperimentalFeature рдмрд░рд╛рдмрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ, рдЗрд╕реЗ Enable-PSFeature Enable-ExperimentalFeature рдХрд╣реЗрдВ, рдЙрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрдм рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ рд▓реЗрдХрд┐рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП $?.GetType() рдЖрдк рдЪреЗрддрд╛рд╡рдиреА рджреЗрдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдпрд╣ рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп ${?}.GetType() рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ #requires -version 7.1 -feature PSNullConditionalOperators рд╕рд╛рде рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреА рд╣реИрдВред рддрдм рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рднреА PS 8 рд╣рд┐рдЯ рд╣реЛ, рддреЛ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

@rkeithhill рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд╕реАрдзреЗ рдореБрджреНрджреЗ рдкрд░ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рдкрд▓ рдХреЗ рд▓рд┐рдП рднреВрд▓ рдЬрд╛рдЗрдП рдХрд┐ рдЖрдк рдЖрдЬ рдкрд╛рд╡рд░рд╢реЗрд▓ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдЬрд╛рдирддреЗ рд╣реИрдВред рдЬрдм рдЖрдк рджреЗрдЦрддреЗ рд╣реИ

PS> $res?.Length

рдпрд╣ _name, operator, name_ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ - рдмреЗрд╢рдХ рдпрд╣ рдХреМрди рд╕рд╛ рд╣реИред
рдЬреЛ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ: _"?" рдСрдкрд░реЗрдЯрд░_ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдпрд╛ _"?" рдкреНрд░рдердо рдирд╛рдо-рддрддреНрд╡_ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ?
рдпрджрд┐ рдЗрди рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ "рдкрд╛рд╡рд░рд╢реЗрд▓реА рдирд╣реАрдВ рд╣реИрдВ") рддреЛ рдпрд╣ рдХрд┐рд╕реА рдРрд╕реА рдЪреАрдЬрд╝ рдХреЗ рдмреАрдЪ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдереЛрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЯреВрдЯ-рдлреВрдЯ рд╣реЛрдЧреАред

рдореИрдВ psScriptAnalyzer _now_ рдореЗрдВ рдирд┐рдпрдо рдбрд╛рд▓рдирд╛ рд╢реБрд░реВ рдХрд░реВрдВрдЧрд╛, рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЪрд░ рдирд╛рдореЛрдВ рдореЗрдВ рдХреБрдЫ [рдХрд╛рдиреВрдиреА] рд╡рд░реНрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЦрд░рд╛рдм рд╢реИрд▓реА рд╣реИред

рдореБрдЭреЗ Enable-feature рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИред рдХреЛрдИ рдЗрд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдбрд╛рд▓рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдХрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд╛рдж рдЪрд▓рдиреЗ рдкрд░ рдкреБрд░рд╛рдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреВрдЯ рдЬрд╛рддреА рд╣реИ, (рд▓реЗрдХрд┐рди рдмрд╛рдХреА рд╕рдордп рдХрд╛рдо рдХрд░рддреА рд╣реИ)ред рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ _рдерд░реНрдб рдкрд╛рд░реНрдЯреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ X рд╕реНрдХреНрд░рд┐рдкреНрдЯ Y_ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ Y рд╕рдЦреНрдд рдореЛрдб рдЪрд╛рд▓реВ рдХрд░рддрд╛ рд╣реИ рдФрд░ X рдЗрд╕рдХреЗ рдмрдВрдж рд╣реЛрдиреЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ; рджреЛрдиреЛрдВ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд▓реЗрдЦрдХ рдореЗрд░реА рдмреБрд░реА рдХрд┐рддрд╛рдмреЛрдВ рдореЗрдВ рд╣реИрдВред

рдореИрдВ рдЕрдм psScriptAnalyzer рдореЗрдВ рдирд┐рдпрдо рдбрд╛рд▓рдирд╛ рд╢реБрд░реВ рдХрд░реВрдВрдЧрд╛, рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЪрд░ рдирд╛рдореЛрдВ рдореЗрдВ рдХреБрдЫ [рдХрд╛рдиреВрдиреА] рд╡рд░реНрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЦрд░рд╛рдм рд╢реИрд▓реА рд╣реИред

рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рд╣реИ: рдпрджрд┐ рдЖрдк рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдкреЙрд╡рд░рд╢реЗрд▓ рдЯреЛрдХрди рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ PSScriptAnalyzer рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рднреА рджреЗрдЦреЗрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ $res? рдЬреИрд╕рд╛ рдЪрд░ рд╣реИ, рддреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ:

{
$res?.Length
}.Ast.EndBlock.Statements[0].PipelineElements[0].Expression.Expression.VariablePath.UserPath

рдЖрдк рдХреЛ рджреЗрдВрдЧреЗ

res?

рд▓реЗрдХрд┐рди, рдЕрдЧрд░ рдЖрдк рдкрд╛рд╡рд░рд╢реЗрд▓ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдХрд╣реЗрдВ, 7.2, рддреЛ рдЖрдкрдХреЛ рдорд┐рд▓ рдЬрд╛рдПрдЧрд╛


рдЕрдм PSScriptAnalyzer ? рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдм рд╡реЗрд░рд┐рдПрдмрд▓ рдирд╛рдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИ (рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╣ рдмрджрд▓рд╛рд╡ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ)ред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ PSScriptAnalyzer рдПрдХ PowerShell рдореЙрдбреНрдпреВрд▓ рд╣реИ рдФрд░ рдЙрд╕реА рдкрд╛рд░реНрд╕рд░ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ PowerShell рдореЗрдВ рд╢рд┐рдк рдХрд░рддрд╛ рд╣реИред (рдФрд░ рдЕрдЧрд░ рдпрд╣ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкреНрд░рд╛рдкреНрдп рдФрд░ рдЖрдкрджрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреБрд╕реНрдЦрд╛ рд╣реЛрдЧрд╛)ред

рдЗрд╕рдХреЗ рдЖрд╕-рдкрд╛рд╕ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рд╕рдорд╛рди рдирд┐рджрд╛рди рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреЗ рд▓рд┐рдП рдирдП 7.2 рддрд░реНрдХ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ PSScriptAnalyzer (рдФрд░ рдПрдХ рдкреВрд░реА рдирдИ рдЕрд╕реЗрдВрдмрд▓реА рд╢рд┐рдкрд┐рдВрдЧ) рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдкрдиреЗ рдХреБрдЫ рд╣рдж рддрдХ рдХреЙрд╕реНрдореЗрдЯрд┐рдХ рдкрд░рд┐рджреГрд╢реНрдп рдХреА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рд╣рд░ рдЬрдЧрд╣ рдЬрдЯрд┐рд▓рддрд╛ рдмрдврд╝рд╛ рджреА рд╣реИ (рдпрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдЕрдкрдиреА рдкрд░реАрдХреНрд╖рдг рд╕рддрд╣ рдХреЛ рдХрдо рдХрд░ рджрд┐рдпрд╛ рд╣реИ)ред

рдЗрд╕рд╕реЗ рднреА рдмрджрддрд░, рдЕрдиреНрдп рд╕рднреА рдЙрдкрдХрд░рдг рдЬреЛ рдПрдПрд╕рдЯреА рдкрд░ рднреА рдирд┐рд░реНрднрд░ рд╣реИрдВ, рдЗрд╕ рддрд░рд╣ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА PSScriptAnalyzer рдХрд░рддрд╛ рд╣реЛред рдПрдПрд╕рдЯреА-рд▓рдХреНрд╖рд┐рдд рдЙрдкрдХрд░рдг рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧ рдкреВрд░реНрдг рд╢реБрджреНрдзрддрд╛ рдХреЗ рд▓рд┐рдП рдкрд╛рд╡рд░рд╢реЗрд▓ рдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдорд╛рдореВрд▓реА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рд╡реЗ рд╢рд╛рдпрдж рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реЛрдВрдЧреЗ, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рдпрд╣ рдХрд┐рд╕реА рднреА рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИ; рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рддреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдХрдкрдЯреА рд░реВрдк рд╣реИ, рдЬрд╣рд╛рдВ рдПрдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдЪреБрдкрдЪрд╛рдк рджреВрд╕рд░рд╛ рдмрди рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдкрд╛рд░реНрд╕рд░/рдЯреЛрдХрдирд╛рдЗрдЬрд╝рд░-рд╕реНрддрд░ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдПрдХ рдФрд░ рдЦрддрд░рдирд╛рдХ рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ PSScriptAnalyzer рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реЗрд╡рд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдЫреЗ рдХреА рдУрд░ рдЭреБрдХрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдРрд╕реЗ рднрд╛рд░реА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рддреМрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

@rjmholt , рдЬрдмрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕рднреА рдЗрд╕ рдмрд╛рдд рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдмрджрд▓рд╛рд╡ рдХрд┐рддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ _in рд╕рд┐рджреНрдзрд╛рдВрдд_, рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ _in рдЕрднреНрдпрд╛рд╕_, рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдкреАрдПрд╕рдПрд╕рдП рдирд┐рдпрдо рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  • @ThomasNieto рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ - рдЕрдЧрд░ рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреЙрд░реНрдкрд╕ рд╕рднреА рдкрд╛рд╡рд░рд╢реЗрд▓ рдХреЛрдб рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╣реИ - рддреЛ _рд╡рд╕реНрддреБрддрдГ рдХреЛрдИ рднреА рдЙрди рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ ? _ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред

  • рдЕрдЧрд░ рдореИрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдКрдВ, рддреЛ рдЬреНрдпрд╛рджрд╛рддрд░ рд▓реЛрдЧ рдРрд╕реЗ рдЪрд░ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП _рдерд┐рдВрдХ_ рднреА рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЙрдирд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ (рдореБрдЭреЗ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛), рдФрд░ рд╢рд╛рдпрдж рдЗрд╕ рдЕрдкрд╡рд╛рдж рдкрд░ рднреА рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдХрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд $? рдЪрд░ рдХрд╛ рдЧрдарди рд╣реЛрддрд╛ рд╣реИ (рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рд╕рдорд╛рди рд░реВрдк рд╕реЗ POSIX- рд╕рдВрдЧрдд рд╢реЗрд▓ рдореЗрдВ рдЕрдкрд╡рд╛рдж рд╣реИ рдЬреИрд╕реЗ bash )ред

    • рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, @ThomasNieto рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЛ рдХрд░реАрдм рд╕реЗ 8 рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реЗ:

      • 5 рдореЗрдВ рдХреЗрд╡рд▓ _false рд╕рдХрд╛рд░рд╛рддреНрдордХ_ рд╣реЛрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН рдЪрд░ _strings_ рдХреЗ рдЕрдВрджрд░ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ "Are you sure you want to kill $vParam?" - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпреЗ рдЙрдкрдпреЛрдЧ _broken_ рд╣реИрдВ, рдФрд░ рдпрд╣ рдкреНрд░рдХрдЯ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЗрдЦрдХреЛрдВ рдиреЗ _not_ ? рд╣реЛрдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреА рдереА рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдирд╛рдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ред

      • рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реЗ 2 рдЕрдм рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВред

      • рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ _1_ ? -рдЕрдВрдд рд╡рд╛рд▓реЗ рдЪрд░ рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рд╣реИ - _Boolean_ рдЪрд░ (рдЬреИрд╕реЗ, $key1? ) рдХреЗ рд░реВрдк рдореЗрдВ, рдЬреЛ рдПрдХ рддрд░рдл, рдЗрд╕рд▓рд┐рдП _not_ рд╕рджрд╕реНрдп-рдкрд╣реБрдВрдЪ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд рд╣реИрдВ , . /cc @stevenayers.

рдЙрдкрд░реЛрдХреНрдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣ рдореБрдЭреЗ рдПрдХ рдкрд╛рдареНрдпрдкреБрд╕реНрддрдХ рдмрдХреЗрдЯ 3 рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЧреНрд░реЗ рдХреНрд╖реЗрддреНрд░ рдкрд░рд┐рд╡рд░реНрддрди, рдЬреЛ рдЗрд╕рд▓рд┐рдП _рд╕реНрд╡реАрдХрд╛рд░реНрдп_ рд╣реИ - рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ _рд▓рд╛рдн_ рдХрд╛ рддрд░реНрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

_Documenting_ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди (рддрд░реНрдХ рдХреЗ рд╕рд╛рде) рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдмреЗрд╢рдХ:

  1. рдпрд╣ (рдП) рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕рд╣реА рд╣реЛрдиреЗ рдФрд░ (рдмреА) рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдХреЙрд░реНрдкрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╣реЛрдиреЗ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред

  2. рдпрд╣ рд╕рдорд┐рддрд┐ рдХреЗ рдЗрд╕ рджрд╛рд╡реЗ рдХреЗ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд┐рдкрд░реАрдд рд╣реИ рдХрд┐ "рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрди рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЪрд░ рдирд╛рдореЛрдВ рдХрд╛ рдХрд╛рдлреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛" (рдЬреЛ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдХреЗрд╡рд▓ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдЧреА рдпрджрд┐ рдРрд╕реЗ рдЪрд░ рдирд╛рдо {...} рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдирд╣реАрдВ рд╣реИрдВ

рдЗрд╕ рдзрд╛рд░рдгрд╛ рдкрд░ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реБрдП рдХрд┐ 1. рд╕рддреНрдп рд╣реИ (рд╣рдордиреЗ 2 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╕реБрдирд╛ рд╣реИ), рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:

  • рдмреИрдВрдб-рд╕рд╣рд╛рдпрддрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рдЪрд░ рдирд╛рдореЛрдВ рдореЗрдВ ? рдХреЛ рдХреЗрд╡рд▓ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ, рдЬрдм рддрдХ рдХрд┐ {...} рдореЗрдВ рд╕рдВрд▓рдЧреНрди рди рд╣реЛ ( $? рдХреЗ рд╕реНрдкрд╖реНрдЯ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде) - рдпрд╣ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЫреЛрдЯреЗ рдХреЛ рддреЛрдбрд╝ рджреЗрдЧрд╛ рдЙрди рд▓рд┐рдкрд┐рдпреЛрдВ рдХрд╛ рдЕрдиреБрдкрд╛рдд рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВред

    • рдпрд╛рдиреА, $key1? рдЬреИрд╕рд╛ рдХреБрдЫ рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рди рддреЛ . рдФрд░ рди рд╣реА рдХреЛрдИ рдЕрдиреНрдп ? ( $key1??'else' ) рдФрд░ рди рд╣реА рдПрдХ рдЯрд░реНрдирд░реА рдПрдХреНрд╕рдкреНрд░реЗрд╢рди ( $key1?1:0 ) рдПрдХ _parser рддреНрд░реБрдЯрд┐_ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ред

      • рдЬреИрд╕рд╛ рдХрд┐ рдирд▓-рдХреЛрд▓реЗрд╕рд┐рдВрдЧ рдФрд░ рдЯрд░реНрдирд░реА рдСрдкрд░реЗрдЯрд░ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ, рд╡реЗ рднреА рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рд╣реЛрдВрдЧреЗ - рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдЖрдкрдХреЛ рдпрд╛ рддреЛ _space_ - $key1 ?1:0 / $key1 ??'else' - рдпрд╛ {...} - ${key1}?1:0 / ${key1}??'else'

    • _expandablestrings_ рдХреЗ рдЕрдВрджрд░, ? рдХреЛ рдЕрдм рдПрдХ (рдЧреИрд░- {...} -рд╕рдВрд▓рдЧреНрди) рдЪрд░ рдирд╛рдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ _fix_ рдореМрдЬреВрджрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд╣реЛрдВрдЧреЗ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЧрд▓рддреА рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ "Are you sure you want to kill $vParam?" . рдореИрдВ
  • рдпрджрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдореМрдЬреВрджрд╛ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд▓реБрдкреНрдд рд╣реЛ рд░рд╣реЗ рдЫреЛрдЯреЗ рдЕрдиреБрдкрд╛рдд рдХреЛ рддреЛрдбрд╝рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдо @ExE-Boss рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рддрд░реНрдХ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рдЗрд╕ рд╡реИрдЪрд╛рд░рд┐рдХ рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдкреЗрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рдЕрдХреЗрд▓реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬрдЯрд┐рд▓рддрд╛ (рдЬреЛ рдХрд┐ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛)ред

@ рд╕реНрдЯреАрд╡рдПрд▓-рдПрдордПрд╕рдПрдлрдЯреА

рд╕рд┐рддрдВрдмрд░ рд╕рдореБрджрд╛рдп рдХреЙрд▓ рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж (https://aka.ms/PSCommunityCall; рдЗрд╕ рд▓реЗрдЦрди рдХреЗ рд╕рдордп, рд╕рд┐рддрдВрдмрд░ рдХреЙрд▓ рдХреА рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╡рд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди https://aka.ms/JoinPSCall рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЕрдЧрд▓реА рдХреЙрд▓ рддрдХ), 46:00 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, https://github.com/PowerShell/PowerShell-RFC/issues/260 рдкрд░ рдЪрд░реНрдЪрд╛ рдХреЗ рд╡рд┐рд╖рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡ рдЖрдЧреНрд░рд╣ рдореЗрдВ @ThomasNieto рдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рдЖрдзрд╛рд░ рдкрд░:

(рдореИрдВ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрдзрд╛ рд▓рд┐рдВрдХ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ YouTube рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рдФрд░ https://aka.ms/PSCommunityCall рд╕реЗ рд▓рд┐рдВрдХ рд╣реЛрдиреЗ рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред)

рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдореЗрдВ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░:

  • рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдкрд░ рдлрд┐рд░ рд╕реЗ рдЬрд╛рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд╡реНрдпрдХреНрдд рдХреА рд╣реИ, рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВ рдФрд░ рдЗрд╕реЗ Review - Committee рд░реВрдк рдореЗрдВ рдкреБрдирдГ рдЯреИрдЧ рдХрд░реЗрдВред

  • рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рдХрд╛ рд╕рдВрдмрдВрдз рд╣реИ рдХрд┐ рдЪрд░ рдирд╛рдореЛрдВ рдХреЛ рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛ рдПрдХ рдкреВрд░реНрд╡-рдореМрдЬреВрджрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдФрд░ рд▓реЛрдЧ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ _aesthetic_ рдЖрдзрд╛рд░ рдкрд░ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдЖрдкрддреНрддрд┐ рдЬрддрд╛рддреЗ рд╣реИрдВ:

    • рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣рд╛рдВ рдХрд┐рд╕реА рдХреЛ рдЗрд╕ рдмрд╛рдд рдХреА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ рдХрд┐ {...} _can_ рдФрд░ рдХрднреА-рдХрднреА _must_ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЪрд░ рдирд╛рдореЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
    • рдпрд╣ _рд╕реМрдВрджрд░реНрдпрд╢рд╛рд╕реНрддреНрд░_ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ _рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛_ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣реИ рдХрд┐ _рдЪреБрдкрдЪрд╛рдк рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ _рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ {...} рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ_; рдПрдХ рдорд╛рдзреНрдпрдорд┐рдХ рдЪрд┐рдВрддрд╛ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдЕрд╕реБрд╡рд┐рдзрд╛ рд╣реИред
GitHub
рдЖрд░рдПрдлрд╕реА (рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз) рдбрд┐рдЬрд╛рдЗрди рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ рдкрд╛рд╡рд░рд╢реЗрд▓ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рд╕реБрдзрд╛рд░ рдкрд░ рд╕рдореБрджрд╛рдп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬ - рдкрд╛рд╡рд░рд╢реЗрд▓/рдкрд╛рд╡рд░рд╢реЗрд▓-рдЖрд░рдПрдлрд╕реА
рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдЯреАрдо

рдореБрдЭреЗ рдЪрд┐рдВрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ - рдЕрдм рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд▓ рдХреЗ рд▓рд┐рдП рдмрдВрдж рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ - рджрд░рд╛рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧрд┐рд░ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд╕реНрдорд╛рд░рдХ рдХреЗ рд░реВрдк рдореЗрдВ #14025 рдЦреЛрд▓рд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЙрди рд╕рднреА рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рд╡рд╣рд╛рдВ рдЕрдкрдирд╛ рд╕рдорд░реНрдерди рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдЪреНрдЫреБрдХ рд╣реИрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕