Powershell: рдХреНрдпрд╛ рдпрд╣ "PowerShell vZeroTechnicalDebt" рдФрд░ / рдпрд╛ рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрддрддрд╛ рдХреЛ рддреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реА рдирдИ / рдирд┐рд╢реНрдЪрд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рдСрдкреНрдЯ-рдЗрди рддрдВрддреНрд░ рдХреЗ рд▓рд┐рдП рд╕рдордп рд╣реИ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 26 рдЕрдкреНрд░реИрд▓ 2018  ┬╖  69рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: PowerShell/PowerShell

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


_Update_: @rjmholt рдиреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рдПрдХ рдЪрд░реНрдЪрд╛ рд╢реБрд░реВ рдХрд░ рджреА рд╣реИ рдХрд┐ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ: # 13129ред


рдиреЛрдЯ: рдпрд╣ рдореБрджреНрджрд╛, рдЬреЛ https://github.com/PowerShell/PowerShell/issues/5551#issuecomment -380522712 рд╕реЗ рдирд┐рдХрд▓рд╛ рд╣реИ, рдмрд╕ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд░реНрдЪрд╛ рд╢реБрд░реВ рд╣реЛ рд░рд╣реА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХрд╛ рдордиреЛрд░рдВрдЬрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореМрд▓рд┐рдХрддрд╛ рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, RFC (рдПрд╕) рдХреА рдЬрд░реВрд░рдд рд╣реИред

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

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

рдХреБрдЫ рдореВрд▓рднреВрдд рд╕рдорд╕реНрдпрд╛рдПрдВ рдЬреЛ рдЖрдЬ рдореМрдЬреВрдж рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдкрд┐рдЫрдбрд╝реА рдЕрдиреБрдХреВрд▓рддрд╛ рдХреА рдХреАрдордд рдкрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рджреЛ рд╣реИрдВ - рдкрд░рд╕реНрдкрд░ рдЕрдирдиреНрдп рдирд╣реАрдВ - рд╕рдВрднрд╛рд▓ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ:

  • "PowerShell vZeroTechnicalDebt" рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬреЛ рд╕рднреА рддрдХрдиреАрдХреА рдЛрдгреЛрдВ рдХреЛ рдмрд╣рд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд┐рдЫрдбрд╝реА рд╕рдВрдЧрддрддрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ (рд╕рдВрднрд╡рддрдГ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╢рдмреНрджрд╛рд░реНрде рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдЧрддрддрд╛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ)

  • рдореМрдЬреВрджрд╛ рдХреЛрдб рдмреЗрд╕ рдореЗрдВ рдмреИрдХрд╡рд░реНрдб-рдХрдореНрдкреЗрдЯрд┐рдмрд┐рд▓рд┐рдЯреА-рдмреНрд░реЗрдХрд┐рдВрдЧ рдлреАрдЪрд░реНрд╕ / рдлрд┐рдХреНрд╕реЗрд╕ рдХрд╛ рдПрдХреАрдХрд░рдг, рдХреЗрд╡рд▓ _opt-in_ рдЖрдзрд╛рд░ рдкрд░ рд╕рдЦреНрддреА рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИред

рдХреМрди рд╕рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг, рдпрджрд┐ рдХреЛрдИ рд╣реЛ, рдХреНрдпрд╛ рд╣рдо рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ?
рдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдо рдЙрд╕ рдкрд░ рд╕реНрдкрд╖реНрдЯрддрд╛ рд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣рд╛рдВ рдХреБрдЫ рдореМрдЬреВрджрд╛ рдореВрд▓рднреВрдд рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдкрд┐рдЫрдбрд╝реА рдЕрдиреБрдХреВрд▓рддрд╛ рдХреА рдХреАрдордд рдкрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЕрдиреНрдп рд▓реЛрдЧ рдЕрдзрд┐рдХ рд╕реЛрдЪреЗрдВрдЧреЗ:

  • рд╡рд░реНрддрдорд╛рди рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдФрд░ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ рдЕрд╕рдВрдЧрддрд┐ [рдореВрд▓ "" рдмрд╛рд╣рд░реА "рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреА рдХрдореА - # 3116

  • рдЕрд╕рдВрдЧрдд, рдХрдард┐рди-рд╕реЗ-рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рд╡рд░реАрдпрддрд╛-рдЪрд░ / рдЖрдо-рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд┐рд░рд╛рд╕рдд - # 4568

  • [object[]] рдореМрд▓рд┐рдХ рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рдХрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдореБрджреНрджреЗ - https://github.com/PowerShell/PowerShell/issues/5643#issuecomment -378467986

    • рдЬрдмрдХрд┐ PowerShell рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдпреВрдирд┐рдХреНрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреА рдЧрддрд┐ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ, рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рд╕рд╛рде рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рд╕рдВрднрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрдж рд░рд╣рд┐рдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ - рд╢реЗрд╖ рдореБрджреНрджреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЙрджреНрдзреГрдд рдФрд░ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рджреЗрдЦреЗрдВред
  • рд╕рдорд╕рд╛рдордпрд┐рдХ рдЧрддрд┐рд╢реАрд▓ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЬреЛ рд▓реЗрдХреНрд╕рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП: https://github.com/PowerShell/PowerShell/issues/3879#issuecomment -304940545 рдлрд┐рд░ рд╕реЗ break рдФрд░ continue , https://github.com/ PowerShell / PowerShell-RFC / blob / master / 1-Draft / RFC0003-Lexical-Strict-Mode.md рдлрд┐рд░ рд╕реЗ Set-StrictMode (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреЛ рд╕рдВрдЧрддрддрд╛ рдХреЛ рддреЛрдбрд╝реЗ рдмрд┐рдирд╛ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)

  • [psobject] -рдкреНрд░рдмрдВрдзрд┐рдд рд╕рдорд╕реНрдпрд╛рдПрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╢рд╛рдпрдж рдЙрдиреНрд╣реЗрдВ рддреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдХреВрд▓рддрд╛ рдХреЗ рдмрд┐рдирд╛ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ): # 5551, # 5579, # 4343, # 5763

  • рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг -LiteralPath / -Path рд╡рд┐рднрд╛рдЬрд┐рдд - https://github.com/PowerShell/PowerShell/issues/6714#issuecomment -383999949 рдкрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рдФрд░ https://github.com рдкрд░ рдкрд▓рд╛рдпрди рд╕реЗ

  • рдмрд╛рд╣рд░реА рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЯреВрдЯреА рдмреЛрд▓реА - # 3734, # 5576 (рдФрд░ рдЕрдиреНрдп) рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдЦрд░рд╛рдм рдЖрд░рдПрдлрд╕реА

  • -Command рдФрд░ -File CLI рддрд░реНрдХ рдкрд╛рд░реНрд╕рд┐рдВрдЧ - https://github.com/PowerShell/PowerShell/issues/4024#issuecomment -311541803, # 3223 рдФрд░ POSIX рдЬреИрд╕реЗ CLI рдХреЗ рд╕рд╛рде рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓рддрдлрд╝рд╣рдореА рдЧреИрд░-рд╕рдВрд╡рд╛рджрд╛рддреНрдордХ (рд╕реНрдХреНрд░рд┐рдкреНрдЯ) рдЗрдирд╡реЛрдХреЗрд╢рди - # 992 рдореЗрдВ рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд▓реЛрдб рд╣реЛ рд░рд╣реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░реЛрдлрд╛рдЗрд▓ рд╕рд╣рд┐рдд рдЧреЛрд▓реЗ - # 3743 -

  • рдпреМрдЧрд┐рдХ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рддрд░реНрдХреЛрдВ рдХреЗ рдЕрд╕рдВрдЧрдд рдФрд░ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдкрд╛рд░реНрд╕рд┐рдВрдЧ - # 6467 - рдФрд░ рдЧреИрд░-рдкреИрд░рд╛рдореАрдЯрд░ рдЯреЛрдХрди рдЬреЛ _look_ рдЬреИрд╕реЗ рдорд╛рдкрджрдВрдбреЛрдВ - # 6291, # 6292, рдФрд░ # 6360

  • рдХреА рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдЯреВрдЯреА ValueFromRemainingArguments , рдорд╛рдирдХреЛрдВ рдореЗрдВ рддрд░реНрдХ рджрд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ https://github.com/PowerShell/PowerShell/issues/2035#issuecomment # 5955 рдФрд░ # 5122 рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рдЯреВрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рд╛рде, -+рейреи,рейрео,резрем,реиреирез - рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЬрд╛ https: //github.com/PowerShell/PowerShell/pull/2038

рдкрд░реНрдпрд╛рд╡рд░рдг рдбреЗрдЯрд╛

рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ:

PowerShell Core v6.0.2

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

рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рдВрдЧрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╛рд╡рд░рд╢реЗрд▓ рдХреЗ рддрдХрдиреАрдХреА рдЛрдг рдХреЗ рд░реВрдк рдореЗрдВ рдирдП .NET рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдЕрдкрдирд╛рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реЗ рд╕рд╛рде рдирд╣реАрдВ рдЖрдП

  • рдЬреЗрдирд░рд┐рдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП рднрд╛рд╖рд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ # 5146

  • рдкреНрд░рдХрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рддрд╣ рдХреЗ рд▓рд┐рдП Extension Methods рд▓рд┐рдП рдЗрдВрдЬрди рд╕рдорд░реНрдерди (рдЬреИрд╕реЗ рд╡реЗ _compiled_ .Net рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ) рдХрд░рддреЗ рд╣реИрдВред # 2226

  • Async APIs рдХреЗ рд▓рд┐рдП рднрд╛рд╖рд╛ рд╕рдорд░реНрдерди # 6716 (рдФрд░ RFC )

рдХреБрдЫ рдЕрдлрд╕реЛрд╕рдЬрдирдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:

  • рд╣рдо рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рд╕рдВрдХреЗрдд рдкрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ (@KirkMunro рдХреА рддрд░рд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реИ FormatPx ) рдХреЗ рдмрдЬрд╛рдп cmdlets рдХреЗ рдЙрддреНрдкрд╛рджрди рд╡рд╕реНрддреБрдУрдВ рд╕реНрд╡рд░реВрдкрдг? # 4594 # 4237 # 3886

  • рдХреНрдпрд╛ рдЖрдк рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдкреНрд░рджрд╛рддрд╛ рдХреЛ _content_ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдХрд░реЗрдВрдЧреЗ - рдмрдЬрд╛рдп рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдХреЗ рдХрд┐ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдкреНрд░рджрд╛рддрд╛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ? # 5444

  • рдХреНрдпрд╛ рдЖрдк PSProviders рдХреЛ рдЧрд╣рд░рд╛рдИ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдВрдЧреЗ? рдпрд╣ рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ "SHPS" рдкрд░ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдореВрд░реНрддрддрд╛ рдХреА рджреЛ рдкрд░рддреЗрдВ рд▓рдЧрддреА рд╣реИрдВ рдФрд░ рдЕрдВрдд рдореЗрдВ рд▓реЛрдЧреЛрдВ рдХреЛ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╡реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ

рдХреИрд╕реЗ рдПрдХ рдмрдбрд╝реЗ рд╕рд╡рд╛рд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ:

рдХреНрдпрд╛ рд╣рдо "рдХрдИ рддрд░реАрдХреЗ рдмреЗрд╣рддрд░ рд╣реИ" рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдФрд░ "рд╕рдлрд▓рддрд╛ рдХреЗ рдЧрдбреНрдвреЗ" рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдВрдЧреЗ? рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдо "рдЖрд╕рд╛рди рддрд░реАрдХрд╛" рдорд╛рдиреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдмрджрддрд░ рд╣реИрдВ, рдЪреАрдЬреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ "рд╕рд╣реА рддрд░реАрдХрд╛" рд╣реЛрдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реИрдВ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

  • CmdletBinding рд╣рдореЗрд╢рд╛ рдЪрд╛рд▓реВ рд░рдЦреЗрдВ
  • Make @ () рдЕрдВрдХрди рдХрд╛ рдЕрд░реНрде рд╣реИ List[PSObject]
  • @ {} рдХрд╛ рдЕрд░реНрде Dictionary[PSObject, PSObject] (рдпрд╛ Dictionary[string, PSObject] a) рд╣реИ
  • _Process_ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмреНрд▓реЙрдХ рдХрд░реЗрдВ
  • рд╢рд╛рдпрдж рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ _ValueFromPipelineByPropertyName_ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрдирд╛рдПрдВ; ;-)

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

рджрд┐рд▓рдЪрд╕реНрдкред рдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ рд╕реЛрдЪрд╛ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВ 1 .ps1 рдХрд╛ рдЙрдкрдпреЛрдЧ PowerShell рд▓рд┐рдкрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рд╡рд░реНрдЬрди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реИред

рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рдВрдЧрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╛рд╡рд░рд╢реЗрд▓ рдХреЗ рддрдХрдиреАрдХреА рдЛрдг рдХреЗ рд░реВрдк рдореЗрдВ рдирдП .NET рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдЕрдкрдирд╛рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реЗ рд╕рд╛рде рдирд╣реАрдВ рдЖрдП

  • рдЬреЗрдирд░рд┐рдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП рднрд╛рд╖рд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ # 5146

  • рдкреНрд░рдХрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рддрд╣ рдХреЗ рд▓рд┐рдП Extension Methods рд▓рд┐рдП рдЗрдВрдЬрди рд╕рдорд░реНрдерди (рдЬреИрд╕реЗ рд╡реЗ _compiled_ .Net рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ) рдХрд░рддреЗ рд╣реИрдВред # 2226

  • Async APIs рдХреЗ рд▓рд┐рдП рднрд╛рд╖рд╛ рд╕рдорд░реНрдерди # 6716 (рдФрд░ RFC )

рдХреБрдЫ рдЕрдлрд╕реЛрд╕рдЬрдирдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:

  • рд╣рдо рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рд╕рдВрдХреЗрдд рдкрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ (@KirkMunro рдХреА рддрд░рд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реИ FormatPx ) рдХреЗ рдмрдЬрд╛рдп cmdlets рдХреЗ рдЙрддреНрдкрд╛рджрди рд╡рд╕реНрддреБрдУрдВ рд╕реНрд╡рд░реВрдкрдг? # 4594 # 4237 # 3886

  • рдХреНрдпрд╛ рдЖрдк рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдкреНрд░рджрд╛рддрд╛ рдХреЛ _content_ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдХрд░реЗрдВрдЧреЗ - рдмрдЬрд╛рдп рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдХреЗ рдХрд┐ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдкреНрд░рджрд╛рддрд╛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ? # 5444

  • рдХреНрдпрд╛ рдЖрдк PSProviders рдХреЛ рдЧрд╣рд░рд╛рдИ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдВрдЧреЗ? рдпрд╣ рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ "SHPS" рдкрд░ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдореВрд░реНрддрддрд╛ рдХреА рджреЛ рдкрд░рддреЗрдВ рд▓рдЧрддреА рд╣реИрдВ рдФрд░ рдЕрдВрдд рдореЗрдВ рд▓реЛрдЧреЛрдВ рдХреЛ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╡реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ

рдХреИрд╕реЗ рдПрдХ рдмрдбрд╝реЗ рд╕рд╡рд╛рд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ:

рдХреНрдпрд╛ рд╣рдо "рдХрдИ рддрд░реАрдХреЗ рдмреЗрд╣рддрд░ рд╣реИ" рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдФрд░ "рд╕рдлрд▓рддрд╛ рдХреЗ рдЧрдбреНрдвреЗ" рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдВрдЧреЗ? рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдо "рдЖрд╕рд╛рди рддрд░реАрдХрд╛" рдорд╛рдиреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдмрджрддрд░ рд╣реИрдВ, рдЪреАрдЬреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ "рд╕рд╣реА рддрд░реАрдХрд╛" рд╣реЛрдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реИрдВ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

  • CmdletBinding рд╣рдореЗрд╢рд╛ рдЪрд╛рд▓реВ рд░рдЦреЗрдВ
  • Make @ () рдЕрдВрдХрди рдХрд╛ рдЕрд░реНрде рд╣реИ List[PSObject]
  • @ {} рдХрд╛ рдЕрд░реНрде Dictionary[PSObject, PSObject] (рдпрд╛ Dictionary[string, PSObject] a) рд╣реИ
  • _Process_ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмреНрд▓реЙрдХ рдХрд░реЗрдВ
  • рд╢рд╛рдпрдж рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ _ValueFromPipelineByPropertyName_ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрдирд╛рдПрдВ; ;-)

рд╕рднреА рдорд╣рд╛рди рд╕реБрдЭрд╛рд╡, @ рдЬрдпрдХреБрд▓ред

рдкреБрдирдГ @() рд╕рдВрдХреЗрддрди рдХрд╛ рдЕрд░реНрде List[PSObject] : рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдЖрдЧреЗ рд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ PowerShell рдХреЗ рдореМрд▓рд┐рдХ рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ [object[]] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣реИ (рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдФрд░ рд╕рд╛рде рд╣реА рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╕рдордп, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдг рдкреНрд░рджрд░реНрд╢рди рджрдВрдб рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ); + рдЙрдкрдпреЛрдЧ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЪреБрдиреМрддрд┐рдпрд╛рдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди @PetSerAl рдиреЗ рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╕реНрдЯрдо рд╕реВрдЪреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИ ред

Process {} рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рдмреНрд▓реЙрдХ рдХрд░рдирд╛, рдПрдХ рддрд░рдл рдХреЗ рд░реВрдк рдореЗрдВ: рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ Filter рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реАрдорд┐рдд рд╣реИ - рдирд┐рд╣рд┐рдд - Process рдмреНрд▓реЙрдХ, рдФрд░ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рд╕рдВрд╕реНрдХрд░рдг рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрднреА рдирд╣реАрдВ рдкрдХрдбрд╝рд╛ рдЧрдпрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ; Function рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рджреЛрдиреЛрдВ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рд╕реЗ рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдЕрдЬреАрдм рдмрд╛рдд рд╣реИ, Azure PowerShell рдХрдореНрдпреБрдирд┐рдЯреА рд╕реНрдЯреИрдВрдбрдЕрдк рдХреЙрд▓ рдкрд░ рдЕрднреА, рдФрд░ рд╡реЗ AzureRm рд╕реЗ рдПрдХ рдирдП Az рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЬрд╛рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рдХреНрд░реЙрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо (рдХреЛрдИ рдЕрд▓рдЧ AzureRm.Core) рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╕рднреА рдХрдорд╛рдВрдб рдЙрдкрд╕рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде AzureRm рд╕реЗ рдмрджрд▓рдХрд░ Az рд╣реЛ рдЧрдпрд╛ рд╣реИред рджреЛрдиреЛрдВ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рд╕рд╛рде рд░рд╣реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╡реЗ рдирдП рдХрдорд╛рдВрдб рд╕реЗрдЯ рдкрд░ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

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

рдЬрд░рд╛ рд╕реЛрдЪрд┐рдП рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рдХрд┐ 'рдиреЛ рдкрдЫрддрд╛рд╡рд╛' рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо 6 рдорд╣реАрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕ рдкрд░ рдлрд┐рд░ рд╕реЗ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ред рддрдм 3 рдкрд╛рд░реНрдЯреА рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдЙрдЪрд┐рдд рдХрд╡рд░реЗрдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо 6 рдорд╣реАрдиреЗ рдХрд╛ рд╕рдордп рд▓реЗрдЧрд╛ (рдФрд░ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдХреБрдЫ рдореЙрдбреНрдпреВрд▓ рдХрднреА рдирд╣реАрдВ рд╣реЛрдЧрд╛) ... рдлрд┐рд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЦрд╛рддреЗ рджреЗрд░реА рдФрд░ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╕рдорд╕реНрдпрд╛рдПрдВ, рдЖрджрд┐ ... рдЗрд╕рд▓рд┐рдП, рдирд╣реАрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЗрдЪреНрдЫрд╛рдзрд╛рд░реА рд╕реЛрдЪ рд╣реИ рдХрд┐ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╕рднреА рддрдХрдиреАрдХреА рдЛрдгреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ (рдФрд░ рдЕрднреА рднреА рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдирд╣реАрдВ рд╣реИ)ред

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

@bergmeister рд╕рд╣рдордд рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЦреНрдп рдкрде рдкрд░ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЫреЛрдЯреЗ рдкрд░рд┐рд╡рд░реНрддрди рднреА рдЧреЛрдж рд▓реЗрдиреЗ рдореЗрдВ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдмрд╛рдзрд╛ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдкрд╛рдЗрдерди рдХреЛ рджреЗрдЦреЗрдВ 3. рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдкрдХрдбрд╝рдиреЗ рдореЗрдВ 10 _years_ рд▓рдЧреЗред рдмрд╣реБрдд рдмрдбрд╝реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде, рдХреМрди рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдкрд░реНрд▓ 6 рдХреЛ рдкреНрд░рднрд╛рд╡реА рд╣реЛрдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧреЗрдЧрд╛ (рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рд╕рд╣реА рд╕рд╛рдорд╛рди рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдореЗрдВ 15 рд╕рд╛рд▓ рд▓рдЧ рдЧрдП рдЗрд╕рд▓рд┐рдП рдкрд╛рд╡рд░рд╢реЗрд▓ ++ рдХреЗ рд▓рд┐рдП 1.5 рд╕рд╛рд▓ рдЖрд╢рд╛рд╡рд╛рджреА :-) рд▓рдЧрддрд╛ рд╣реИ) рджреВрд╕рд░реА рдУрд░ PHP рд▓рдЧрддрд╛ рд╣реИ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЪреАрдЬреЛрдВ рдХреЛ рддреЛрдбрд╝рдирд╛, рд╕рдВрднрд╡рддрдГ рд░рд╛рд╕реНрддреЗ рдХреЗ рдХрд╛рд░рдг рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдЬрдЧрд░ 3 рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣реЙрд░рд░ рд╢реЛ рд╣реИ, рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрднреА рддрдХ рдкрдХрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ? рдореИрдВ рдЕрднреА рднреА 2.7 рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдБ, рдФрд░ рдЬрд▓реНрдж рд╣реА рдХрд┐рд╕реА рднреА рд╕рдордп рдЙрдиреНрдирдпрди рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкрд░реНрд▓ 6 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВ рд╕реБрдирд╛ рд╣реИ ...

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╛рдпрдерди рд╕реЗ рд╕реАрдЦрдиреЗ рдХреЗ рд╕рдмрдХ рдЗрдВрдЬрди рдХреЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рднрд╛рд╖рд╛ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВред Hypothetically, рдПрдХ PS 7 рдЗрдВрдЬрди рдЕрднреА рднреА рдкрд╣рд▓реЗ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ (.PS1) рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдиреЛ-рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдореЛрдб рдореЗрдВ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдпрджрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ 7 рдЬрд╛рдЧрд░реВрдХ (a .PS7 рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдХрд╣рддреЗ рд╣реИрдВ) рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рд╡реЗ рдШреЛрд╖рдгрд╛ рдХрд░ рд╕рдХрддреЗ рдереЗ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ _рдФрд░ред рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо PS 7 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЖрд╢рд╛ рд╣реИ рдХрд┐ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рд╕рдлрд▓рддрд╛ рдХреА рдХрд╣рд╛рдиреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ / рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ / рдмреИрдмреЗрд▓ рд╣реИред рдПрдХ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд░ (рд╕реНрд░реЛрдд-рдорд╛рдирдЪрд┐рддреНрд░ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде) рднрд╛рд╖рд╛ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрддрд╛-рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред

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

@BurtHarris

рдЕрдЬрдЧрд░ 3 рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣реЙрд░рд░ рд╢реЛ рд╣реИ, рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрднреА рддрдХ рдкрдХрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ?

рдореИрдВ рдкрд┐рдЫрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдПрдХ рд▓реЗрдЦ рдкрдврд╝ рд░рд╣рд╛ рдерд╛ рдЬрд╣рд╛рдВ рд▓реЗрдЦрдХ рджрд╛рд╡рд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдкрд╛рдпрдерди 3 рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рджреНрд░рд╡реНрдпрдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╕рднреА рдореБрдЦреНрдп рдореЙрдбреНрдпреВрд▓ рдЙрдкрд▓рдмреНрдз рдереЗ рдФрд░ рдЕрдм рд▓реЛрдЧ рдЬрд╣рд╛рдВ рдбреНрд░рд╛рд╡ рдореЗрдВ рдкреНрд░рд╡рд╛рд╕ рдХрд░ рд░рд╣реЗ рдереЗред рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ..

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

WRT .ps1 , рд╣рдо рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рднрд╛рд╖рд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрд▓рдд рдорд┐рд▓реА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд░рдирдЯрд╛рдЗрдо рдХреЗ рд▓рд┐рдП рднрдпрд╛рд╡рд╣ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдП рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧреАред рд▓реЗрдХрд┐рди рд╡рд┐рд╕реНрддрд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рднреА рдХрд╛рдо рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдвреЗрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЗрдВ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬреБрдбрд╝реА рд╣реЛрддреА рд╣реИрдВред рддреЛ рдпрд╣ рдХреБрдЫ рд╣рд▓реНрдХрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИред рдФрд░ рд╣рд╛рдВ, рд╡рд┐рдВрдбреЛрдЬ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рдЕрдЧрд░ рд╣рдо рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рднреВрд▓ рдЧрдП, рддреЛ рд╣рдореЗрдВ рдЕрднреА рднреА рджреЛрдиреЛрдВ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ (рдЬреИрд╕реЗ рдкрд╛рдпрдерди 2/3) рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред

@bergmeister :

рдорд╛рдиреНрдп рдЪрд┐рдВрддрд╛рдПрдВ, рд▓реЗрдХрд┐рди рдХреА рднрд╛рд╡рдирд╛ рдореЗрдВ:

рд╕рдмрд╕реЗ рдореВрд▓реНрдпрд╡рд╛рди рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ

рдХреГрдкрдпрд╛ рдЖрдкрдХреЗ рдорди рдореЗрдВ рдЬреЛ рднреА рд╣реЛ рдЙрд╕реЗ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВред

рдПрдХ рд╕рдордп рдореЗрдВ рдзреАрд░реЗ-рдзреАрд░реЗ рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди

рдЬрдмрдХрд┐ рдЕрд╕рдВрдЧрдд рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП (lexically scoped) рдСрдкреНрдЯ-рдЗрди рддрдВрддреНрд░ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдореИрдВ рджреЛ рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд┐рдд рд╣реВрдВ:

  • рдЯреБрдХрдбрд╝рд╛-рдЯреБрдХрдбрд╝рд╛ рдкрд░рд┐рдЪрдп рдХрд┐рд╕реА рдХреЛ рдпрд╣ рдпрд╛рдж рд░рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ; рдкрд░реНрд▓ (v5-) рдХреЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддрд╛ рд╣реИред

  • рдХреЛрдб рдмреЗрд╕ рдлреВрд▓рд╛ рд╣реБрдЖ рдФрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рдХрдард┐рди рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдмрд╛рдЗрдирд░реА рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдлреВрд▓рд╛ рд╣реБрдЖ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ (рдХрдо рд╕реЗ рдХрдо) рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рддрд╛ рд╣реИред

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

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

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

рдУрдкреА рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдерди рд╢рд╛рдорд┐рд▓ рд╣реИ:

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

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

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

  • рд╕рд╢рд░реНрдд рджреЗрд░реА [scriptblock] рддрд░реНрдХреЛрдВ (# 6419) рдХреЗ рдмрдВрдзрди рдореЗрдВ рджреЗрд░реА
  • рдЬрдм, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдирд┐рд╣рд┐рддрд╛рд░реНрде рд╣реЛрддрд╛ рд╣реИ (# 5832)
  • рдкреИрд░рд╛рдореАрдЯрд░ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди [AutomationNull]::Value рд╕реЗ $null рд░реВрдкрд╛рдВрддрд░рдг (# 6357 рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ)
  • рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдкрд░ break рдФрд░ continue рдХрд╛ рдкреНрд░рднрд╛рд╡ (# 5811)
  • рдЬрдм рдЖрдк $null ( SO ) рдмрдВрдЯрддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ
  • рд╕рддреНрд░ рд░рд╛рдЬреНрдпреЛрдВ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдмреНрд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ $_ ( SO 1 , SO 2 ) рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ

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

  1. рд╡реЗ рдРрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╢рд╛рдпрдж PowerShell рдореЗрдВ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░
  2. рдкрд╛рд╡рд░рд╢реЗрд▓ рдкрдврд╝рддреЗ рдпрд╛ рд▓рд┐рдЦрддреЗ рд╕рдордп рдореБрдЭреЗ рдЙрдирдХреЗ рд╕рднреА рдирд┐рд╣рд┐рддрд╛рд░реНрдереЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╣реИред

рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реВрдВред рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдкреЙрд╡рд░рд╢реЗрд▓ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рднрд╛рд░реА рдмрд╣реБрдордд рдкреЙрд╡рд░рд╢реЗрд▓ рдХреЗ рд╕рд╛рде рдореЗрд░реА рд╕рдлрд▓рддрд╛ рдкрд░ рд╕реНрдерд╛рдпреА рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдбрд╛рд▓рддрд╛ рд╣реИред рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдкрд░реАрдХреНрд╖рдг рдХрд░рдХреЗ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдкрдХрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдЙрди рдЪреАрдЬреЛрдВ рд╕реЗ рд╕реАрдЦрддрд╛ рд╣реВрдВ рдЬреЛ рдореЗрд░реА рдкрд░реАрдХреНрд╖рдг рд░рдгрдиреАрддрд┐ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╕рдЪ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╡реЗ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдРрд╕реЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдЬрд┐рд╕ рддрд░рд╣ рдХрд╛ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдКрдкрд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рдЧрдП рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ, PowerShell рдХрднреА рднреА рдЗрддрдирд╛ рдЕрдиреБрдорд╛рдирд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдХрд╡рд░реЗрдЬ рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВ рдкреЙрд╡рд░рд╢реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреЛрдИ рдЙрд▓реНрдЯрд╛-рд╕реАрдзрд╛ рд╣реИ, рдЬреЛ рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдмрджрд▓рдХрд░ рд╕рдВрднрд╡ рд╣реИред

(BTW, рдЗрд╕ рд╕рд╡рд╛рд▓ рдХреЛ рд╕реАрдзреЗ рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП @ mklement0 рдХрд╛ рд╢реБрдХреНрд░рд┐рдпрд╛ред рдпрд╣ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рд░рд╣рд╛ рд╣реИред рд╕рднреА рдХреЛ рдЕрдкрдирд╛ рдЕрдВрд╢ рдХрд╣рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИред)

рдзрдиреНрдпрд╡рд╛рдж, @ alx9r

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ _intrinsic_ рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ _extrinsic_ рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ:

  • _Irrinsic_ рдЬрдЯрд┐рд▓рддрд╛ рдЙрди рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЬрдЯрд┐рд▓рддрд╛ рд╕реЗ рдЙрдкрдЬреА рд╣реИ, рдЬреЛ PowerShell рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рджреЛ рдкреНрд░рд╛рдердорд┐рдХ рд╕реНрд░реЛрдд рд╣реИрдВ: _internal_ рдЬрдЯрд┐рд▓рддрд╛ рдПрдХ рдирдП рдкреНрд░рддрд┐рдорд╛рди (рд╡рд╕реНрддреБ-рдЖрдзрд╛рд░рд┐рдд рдкрд╛рдЗрдкрд▓рд╛рдЗрди) рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рджреБрдирд┐рдпрд╛ (рд╢реЗрд▓ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ-рднрд╛рд╖рд╛-рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕) рд╕реЗ рд╢рд╛рджреА рдХрд░рдиреЗ рд╕реЗ ), рдФрд░ _external_ рдЬрдЯрд┐рд▓рддрд╛ рд╕реЗ рдХрдИ рдХреЗ рд╕рд╛рде рдЕрдВрддрд░ рдХрд░рдиреЗ рд╕реЗ, рдмрд╛рд╣рд░ рдХреА рджреБрдирд┐рдпрд╛ рд╕реЗ рдЕрд▓рдЧред

  • _Extrinsic_ рдЬрдЯрд┐рд▓рддрд╛ рд▓реАрдХ рдХреЗ рд╕рд╛рд░ рдФрд░ рд╡рд┐рд╕рдВрдЧрддрд┐рдпреЛрдВ рд╕реЗ рдЙрдкрдЬреА рд╣реИред

    • рдЗрд╕ рддрд░рд╣ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
    • рдпрджрд┐ рд╡рд╣ рдкрд┐рдЫрдбрд╝реА-рдЕрдиреБрдХреВрд▓рддрд╛ рдХреА рдЪрд┐рдВрддрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ, рддреЛ рдРрд╕реА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ _Documented рдЬреНрдЮрд╛рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

    • рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдореЙрдбреНрдпреВрд▓ рд╡реИрд░рд┐рдПрдмрд▓ рд╕реНрдХреЛрдкрд┐рдВрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ (рдЬрд┐рд╕реЗ рдЖрдк $_ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВ) рд╕рд┐рд░реНрдл рдПрдХ рдЙрджреНрдзрд░рдг рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ: рдпрд╣ рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдореВрд▓ рдХрд╛рд░рдг рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ # 4568ред

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

      • рдпрд╣ $null рд╕рд╛рде рдмрд┐рдЦрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рдПрдХ $null рддрд░реНрдХ рдХреЗ рдмрдЬрд╛рдп _no_ рддрд░реНрдХреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред
      • [System.Management.Automation.Internal.AutomationNull]::Value рдХреЛ $null _ Https://github.com/PowerShell/PowerShell/issues/9150#issuecomment-474743435 рджреЗрдЦреЗрдВ
      • рдХреЙрд▓ рд╕реНрдЯреИрдХ рдХреЗ рдкрд╛рд░, _quiet рдЯрд░реНрдорд┐рдиреЗрд╢рди_ рдХреЗ рд╕рд╛рде _ break рдФрд░ continue рд╣реЛрдиреЗ рдХрд╛ _ рд▓рд╛рдн рдХреНрдпрд╛ рд╣реИ, рдЕрдЧрд░ рдХреЛрдИ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд▓реВрдк рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ?

рдЬрдмрдХрд┐ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рд╕рдВрдкрддреНрддрд┐ рдФрд░ рдЕрд╕рдорд╛рди рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рд╕реЗ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ _intrinsic_ рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, _extrinsic_ рдПрдХ рдХреЛ рдХрдо рдХрд░рдирд╛ рдЕрднреА рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

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

рдпрд╣ рдареЛрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИ (рдЬреЛ рд╕рд╣рдЬ рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ), рд╡рд░реНрдгрдирд╛рддреНрдордХ рдирд╛рдордХрд░рдг рдФрд░ рдЕрдЪреНрдЫрд╛ рдкреНрд░рд▓реЗрдЦрди:

рдЕрдЧрд░ рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ / рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд╕рд╣реА рдпрд╛рдж рд╣реИ, рддреЛ рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рдХрд╣рд╛рдБ рджреЗрдЦрдирд╛ рд╣реИ, рдФрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдкрд░рд┐рдЪрд┐рдд рд╕рдорд╕реНрдпрд╛рдПрдБ рдФрд░ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЗ_ рднреА рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИрдВ (рдпрд╛ рддреЛ рдирд┐рдпрдорд┐рдд рд╕рд╣рд╛рдпрддрд╛ рд╡рд┐рд╖рдпреЛрдВ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╛ рд▓рд┐рдВрдХ рд╕реЗ рд╡рд╣рд╛рдБ)ред

рдЗрд╕рд▓рд┐рдП рдЕрдЧрд░ рд╣рдо рдпрд╣ рддрдп рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ _eliminating_ рдПрдХреНрд╕рдЯреНрд░рд┐рдВрд╕рд┐рдХ рдЬрдЯрд┐рд▓рддрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рдХрдо рд╕реЗ рдХрдо _document рдЗрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд░реВрдк рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдФрд░ рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ "рдкрд┐рдЯрдлреЙрд▓ рдЧреИрд▓рд░реА" рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИ (рдЬрд┐рд╕рдореЗрдВ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп _intrinsic_ рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рднреА рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ) рдЖрд╢реНрдЪрд░реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред

рд╣рдо рдХрдо рд╕реЗ рдХрдо рдЗрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд░реВрдк рд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдФрд░ рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ "рдкрд┐рдЯрдлреЙрд▓ рдЧреИрд▓рд░реА" рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИ

рд░реЛрдорди рдХреБрдЬрд╝рдореАрди рдХреБрдЫ рд╕рдордп рд╕реЗ рдРрд╕реА рдЧреИрд▓рд░реА рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдпрд╣рд╛рдБ: https://github.com/nightroman/PowerShellTraps

рдзрдиреНрдпрд╡рд╛рдж, @HumanEquivalentUnit - рдЬреЛ рдПрдХ рдорд╣рд╛рди рд╕рдВрдЧреНрд░рд╣ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред

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

  • рдПрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рддрд░реНрдХ, рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╢рд╛рдпрдж рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рд╣реИ, рд╕рдм рдХреЗ рдмрд╛рдж рдЙрдЪрд┐рдд рд╣реИ (рдПрдХ рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рддреИрдпрд╛рд░ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдЖрд╢реНрдЪрд░реНрдп рдХрд╛ рддрддреНрд╡ рджреВрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)

  • рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рдХрд╣рд╛ рдХрд┐:

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

рдпрд╣ рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдпрд╣ рдкреВрдЫрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ "PowerShell vZeroTechnicalDebt_ _ рдХреЗ рд▓рд┐рдП _it рдХрд╛ рд╕рдордп рд╣реИ

рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕реНрдХрд░рдг рдХрдорд╛рдВрдб рд╣реИред

рдЕрдЧрд░ рдХрд┐рд╕реА рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреБрдЫ рдЯреВрдЯрддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЬреЛ рдПрдХрдорд╛рддреНрд░ рджрд░реНрдж рд╣реЛрддрд╛ рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдЫреЛрдЯреЗ рдЕрдВрддрд░реЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рдФрд░ рд╕реАрдЦрдирд╛ рд╣реЛрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рд╣рдореЗрдВ (рдЕрдВрдд рдореЗрдВ) рдПрдХ рдордВрдЪ рдорд┐рд▓рддрд╛ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрд░ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред

рдирд╣реАрдВ, рдпрд╣ рдХрднреА рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдХрд┐ рдирдП рдбрд┐рдЬрд╛рдЗрди рдФрд░ рддрдХрдиреАрдХ рджреНрд╡рд╛рд░рд╛ рдЦрд░рд╛рдм рдбрд┐рдЬрд╛рдЗрди рдФрд░ рдлреИрд╕рд▓реЛрдВ рдХреЛ рдХрд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреАрд╡рд┐рдд рдШреЛрдбрд╝реЗ рдХреЛ рдорд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд░реЗ рд╣реБрдП рдШреЛрдбрд╝реЗ рд╕реЗ рдмрд╛рд╣рд░, рдпрд╣ рдЕрднреА рднреА рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд┐рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди рдпрд╛ cmdlet рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдард┐рди рд╣реИ рдЬреЛ рдореЗрдЬрдмрд╛рди рдХреЗ рдореВрд▓ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдФрд░ filesystemprovider рдХреЗ рдмреАрдЪ рдЬрд╛рджреБрдИ рдЕрдВрддрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрд╛рд░реАрдХ рдХреЛрдб рдХреЛ рд▓рд┐рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдФрд░ рдЕрдХреНрд╕рд░ рдЧрд▓рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдкрд░ рдПрдХ рдкреЛрд╕реНрдЯ рд╣реИ stackoverflow рдореИрдВ рд╕рд╛рдд рдпрд╛ рдЖрда рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╡рд╛рдм рджрд┐рдпрд╛ рдХрд┐ рдЕрднреА рднреА рдорд╛рдиреНрдп рд╣реИ:

https://stackoverflow.com/questions/8505294/how-do-i-deal-with-paths-when-writing-a-powershell-cmdlet

Ref: # 8495

рдХреБрдЫ рдЕрдЬреАрдм рдСрдкрд░реЗрдЯрд░ рдкреВрд░реНрд╡рд╡рд░реНрддреА рдирд┐рдпрдо рд╣реИрдВ рдЬреЛ рд╕рдВрд╢реЛрдзрди рдХреЗ рд▓рд╛рдпрдХ рд╣реИрдВ:

PS> 1, 2, 2 + 1, 4, 4 + 1
1
2
2
1
4
4
1

рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ, рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рдпрд╣ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрдЧрд╛:

1
2
3
4
5

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

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ _nice_ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп ... рдкреВрд░реА рддрд░рд╣ рд╕реЗ ... рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреА рдкреНрд░рдХреГрддрд┐, рдпрд╣ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ _splitting_ рдХреЛ "рд╕рд╛рдорд╛рдиреНрдп" рдФрд░ "рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ" рдХреЗ рдмреАрдЪ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреА рдЕрдиреБрдХреВрд▓рддрд╛ рдФрд░ рд╕рдВрднрд╡рддрдГ рдХрдИ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдЦрд┐рдо рдореЗрдВ рдбрд╛рд▓рддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдиреЗ рдЭрдВрдбреЗ рд╕рдХреНрд╖рдо рдХрд┐рдП рд╣реИрдВред

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

рдпрд╣ _might_ рдкрд░рд┐рд╣рд╛рд░реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди ... рдпрджрд┐ рд╣рдо, рдкреНрд░рддрд┐-рдореЙрдбреНрдпреВрд▓-рдЧреБрдВрдЬрд╛рдЗрд╢ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЗрдЪреНрдЫрд╛, рд╕рдХреНрд╖рдо рдФрд░ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдорд╛рдорд▓реЛрдВ рдХреЛ рдФрд░ рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ рд╣реИ, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╣рд╛рди рд╕рдорд╛рдзрд╛рди рд╣реИ, рдпрд╛ рддреЛред

@ vexx32 рд╕рд┐рд░реНрдл рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ experimental рдзреНрд╡рдЬ рдХрд╛ рд╕реБрдЭрд╛рд╡ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рдерд╛ рдЬреЛ рдЕрдВрддрддрдГ рдЧреИрд░-рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдореИрдВ рдХреБрдЫ рдЕрд▓рдЧ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ (рд╢рд╛рдпрдж рдЕрдзрд┐рдХ Enable-PSFeature рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд╣реЛрдЧрд╛ (рдФрд░ рдЗрд╕ рддрд░рд╣ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ)ред рдореИрдВ рдпрд╣ рднреА рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдпрд╣ рдПрдХ рдПрдХрд▓ рдзреНрд╡рдЬ рд╣реЛрдЧрд╛ рдЬрд╣рд╛рдВ рдЖрдк рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдмрдЬрд╛рдп рдПрдХ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрди рдирдП рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЪреБрдирддреЗ рд╣реИрдВред

рдУрд╣, рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ ... рд╣рд╛рдБ, рдмрд┐рд▓реНрдХреБрд▓ред рдпрд╣ рд╣рдореЗрдВ рдмрдбрд╝реЗ рдХрд░реАрдиреЗ рд╕реЗ рдПрдХ рдЫрддреНрд░ рдХреЗ рдиреАрдЪреЗ рд╕рдм рдХреБрдЫ рдПрдХ рд╕рд╛рде рдкреИрдХреЗрдЬ рдХрд░рдиреЗ рджреЗрдЧрд╛, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред рдореИрдВ рдЬреЛ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛, рдЙрд╕рд╕реЗ рдмрд╣реБрдд рдмреЗрд╣рддрд░! ЁЯШД

# 8512 рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣рд╛рдБ рд╕рдВрдХрд▓рд┐рдд рдореБрджреНрджреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рдЕрд▓рд╛рд╡рд╛ @ jszabo98 :

-and рдФрд░ -or рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ _same_ рдкреВрд░реНрд╡рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ (C # рд╕рд╣рд┐рдд) -and рдХреА -or рд╕реЗ рдЕрдзрд┐рдХ рдкреВрд░реНрд╡рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЬреЛ рдЙрдореНрдореАрджреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддреА рд╣реИ:

PS> $true -or $true -and $false
False

рдмрд╛рдПрдВ-рд╕рдорд░реВрдкрддрд╛ рдФрд░ -and рдФрд░ -or рдПрдХ рд╣реА рдорд┐рд╕рд╛рд▓ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг, рдЙрдкрд░реЛрдХреНрдд рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди ($true -or $true) -and $false рдмрдЬрд╛рдп рдЕрдкреЗрдХреНрд╖рд┐рдд $true -or ($true -and $false)

рдпрд╣ рд╕рдм рд╕рд┐рд░реНрдл рдПрдХ рдкрд╛рдЗрдк рд╕рдкрдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХрд╛ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдореЙрдбрд▓ рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реЛ ...

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

рдореИрдВрдиреЗ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрдм рдореИрдВ PHP 4 рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдЕрдЧрд▓реЗ PHP рд╕рдВрд╕реНрдХрд░рдг рддрдХ рдПрдХ рдкреБрд░рд╛рдиреА рдкреНрд░рдгрд╛рд▓реА рдЪрд░рдгрдмрджреНрдз рд░реВрдк рд╕реЗ (рд╕рдВрд╕реНрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕реНрдХрд░рдг) рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрдм рддрдХ рдХрд┐ рдореИрдВ рд╕рдорд░реНрдерд┐рдд PHP 5.x рд╕рдВрд╕реНрдХрд░рдг рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рдЧрдпрд╛ред рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдореЗрдВ, рдореБрдЭреЗ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЫреЛрдЯреЗ рдФрд░ рддреНрд╡рд░рд┐рдд рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдкрдбрд╝реЗ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЕрдЧрд▓реЗ рдЪрд░рдг рддрдХ рдХреБрдЫ рд╕рдордп рддрдХ рдкреНрд░рдгрд╛рд▓реА рдХрд╛рдо рдХрд░рддреА рд░рд╣реАред

рдЕрдкрдбреЗрдЯ: рдпрд╣ .Net рдХреЛрд░ LTS рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ .net Core 3.1 рдЕрдЧрд▓рд╛ LTS рд╣реЛрдЧрд╛ рдФрд░ рд╡рд░реНрдЬрди рдкрд░ PowerShell Core 6.x рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред

рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ PowerShell Core рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ _great_ рд╡рд┐рдЪрд╛рд░ рд╣реИред рдпрд╣ рд╣рдореЗрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рди рдХрд┐ рдЗрд╕реЗ рд╕рдВрдЧрддрддрд╛ рдЪрд┐рдВрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЕрддрд┐рд╡реНрдпрд╛рдкреА, рдЬрдмрдХрд┐ _also_ рдПрд▓рдЯреАрдПрд╕ рд░рд┐рд▓реАрдЬ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░рд┐рдо рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдУрд╡рд░рдмрд░реНрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

Ref: https://github.com/PowerShell/PowerShell/pull/8407#issuecomment -453221566

Get-Variable -ValueOnly -Name myVar | Should -Be $var рдЬреЛрд░ рддрдм рд╡рд┐рдлрд▓ рд╣реЛрддрд╛ рд╣реИ рдЬрдм $var рдПрдХ рд╕рд░рдгреА рд╣реЛред

рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ Get-Variable -ValueOnly WriteObject() рд▓рд┐рдП рдЧрдгрдирд╛ рдЕрдзрд┐рднрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

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

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

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

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

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

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

@ jtmoree-kahalamgmt-com рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдФрд░ рдирдИ рд╕рд╣рд╛рдпрдХ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рдореБрджреНрджреЛрдВ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред

рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ рдпрджрд┐ рдХреЛрд░ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ .ps6 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ, рддрд╛рдХрд┐ рдкрд╛рд╡рд░рд╢реЗрд▓ рдЗрдВрдЬрди рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд╕рдХреЗред

Https://github.com/PowerShell/PowerShell/issues/2013#issuecomment -24798797777 рджреЗрдЦреЗрдВ

рдФрд░ рдореИрдВрдиреЗ рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ https://github.com/PowerShell/PowerShell/issues/9138 рдмрдирд╛рдпрд╛ред

рдЕрдЬрдЧрд░ 3 рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣реЙрд░рд░ рд╢реЛ рд╣реИ, рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрднреА рддрдХ рдкрдХрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ? рдореИрдВ рдЕрднреА рднреА 2.7 рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдБ, рдФрд░ рдЬрд▓реНрдж рд╣реА рдХрд┐рд╕реА рднреА рд╕рдордп рдЙрдиреНрдирдпрди рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкрд░реНрд▓ 6 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВ рд╕реБрдирд╛ рд╣реИ ...

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╛рдпрдерди рд╕реЗ рд╕реАрдЦрдиреЗ рдХреЗ рд╕рдмрдХ рдЗрдВрдЬрди рдХреЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рднрд╛рд╖рд╛ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВред Hypothetically, рдПрдХ PS 7 рдЗрдВрдЬрди рдЕрднреА рднреА рдкрд╣рд▓реЗ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ (.PS1) рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдиреЛ-рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдореЛрдб рдореЗрдВ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдпрджрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ 7 рдЬрд╛рдЧрд░реВрдХ (a .PS7 рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдХрд╣рддреЗ рд╣реИрдВ) рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рд╡реЗ рдШреЛрд╖рдгрд╛ рдХрд░ рд╕рдХрддреЗ рдереЗ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ _рдФрд░ред рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо PS 7 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЖрд╢рд╛ рд╣реИ рдХрд┐ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╛рдпрдерди 3 рдХреЛ рд╣реЙрд░рд░ рд╢реЛ рдХрд╣рдирд╛ рдЕрддреНрдпрдзрд┐рдХ рдирд╛рдЯрдХреАрдп рд╣реИред рдЕрдЧрд░ рдореИрдВ PyPi рдХреЗ рд╢реАрд░реНрд╖ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╣рдбрд╝рдкрддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ v3 рдиреЗ рдЕрдм рд╕рднреА рд╢реАрд░реНрд╖ рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП 33% рдкреНрд░рд╡реЗрд╢ рдХреЛ рддреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИ, рдФрд░ рдХреЗрди рд░реЗрдЗрдЯреНрдЬ рдХреЗ рдЕрдиреБрд░реЛрдз рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреИрд╕реЗ рдирдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╣реИ рд▓рдЧрднрдЧ 50/50 рд╡рд┐рднрд╛рдЬрди: рдХрд▓ v3 рдХрд╛ 685k рдбрд╛рдЙрдирд▓реЛрдб рдерд╛, рдмрдирд╛рдо 875k рдХрд╛ v2ред

рдкрд╛рдпрдерди 3 рдХреЛ рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рд░рдЦрдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдореБрдЦ рдмрд╛рдд рдкрдВрдбреЛрдВ рдФрд░ pysci рдХреЗ рд▓рд┐рдП рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд╕рдореБрджрд╛рдп рдХрд╛ рд╕рдорд░реНрдерди рдерд╛ред рд▓реЗрдХрд┐рди, рдирд╡реАрдирддрдо рдЖрдВрдХрдбрд╝реЛрдВ рдореЗрдВ, рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд╕рдореБрджрд╛рдп рдЕрдм рдкрд╛рдпрдерди 3 рдХреЛ рдкрд╛рдпрдерди 2: https://pypistats.org/packages/pandas 231k v3 рдбрд╛рдЙрдирд▓реЛрдб, 175k v2 рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдкреНрд░рд╕рд┐рджреНрдз рдбреЙред рдбрдмреНрд▓реНрдпреВред рдПрдбрд╡рд░реНрдбреНрд╕ рдбреЗрдорд┐рдВрдЧ рдХрд╣рддреЗ рд╣реИрдВ, "рднрдЧрд╡рд╛рди рдореЗрдВ рд╣рдореЗрдВ рднрд░реЛрд╕рд╛ рд╣реИ; рдЕрдиреНрдп рд╕рднреА, рдбреЗрдЯрд╛ рд▓рд╛рдПрдВ!" рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк PyPi рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PowerShell рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ Python 3 рдбреЗрдЯрд╛ рдХрд╛ рдХрд┐рддрдирд╛ рднрдпрд╛рд╡рд╣ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ: https://packaging.python.org/guides/analyzing-pypi-package-ding/

рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА (рдЗрд╕ рд╕рдЯреАрдХ рдХреНрд░рдо рдореЗрдВ):

  1. рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдЬреЛ рдЕрдЪреНрдЫреЗ рд╕реНрдЯреИрдХ рдХреЗ рдирд┐рд╢рд╛рди рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИред

    • рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, psm1 рдлрд╝рд╛рдЗрд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЗ рд▓рд┐рдП рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдирд┐рдпрдореЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдХреНрд░рд┐рдкреНрдЯрд┐рдХ рд╕реНрдЯреИрдХ рдХреЗ рдирд┐рд╢рд╛рди рдкреИрджрд╛ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╕рднреА рдХрд╛рд░реНрдп psm1 рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рдЧреНрд▓реЛрдмреЗрдб рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╕реНрдЯреИрдХ рдХреЗ рдирд┐рд╢рд╛рди рдкрд░ рд▓рд╛рдЗрди рдирдВрдмрд░ рдЪреЙрдХрд▓реЗрдЯ рдЪрд╛рдпрджрд╛рдиреА рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИрдВред
  2. PowerShell рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддреНрд░реБрдЯрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдХреЛ рдмрджрд▓реЗрдВ рдЬреЛ рд╕реНрдЯреИрдХ-рдЖрдзрд╛рд░рд┐рдд рд╡реЙрди рдирд┐рдпреЙрди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ 99% рд╣рд┐рд╕реНрд╕рд╛ рдирд┐рдЧрд▓рддреА рд╣реИред

    • рд╕реА # рдХрдореЛрдмреЗрд╢ рдпрд╣реА рдЕрдзрд┐рдХрд╛рд░ рдорд┐рд▓рддрд╛ рд╣реИред рдкреЙрд╡рд░рд╢реЗрд▓ рдЖрдзреЗ рд╕реЗ рдмрд╣реБрдд рдЪрд╛рд▓рд╛рдХ рд╣реИред
  3. рдирд▓ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдХреЛ рдареАрдХ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЕрд╢рдХреНрдд рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдмрд░рд╛рдмрд░ рд╣реЛрдВред

  4. рдбрд╛рдпрдирд╛рдорд┐рдХ рд╕реНрдХреЛрдкрд┐рдВрдЧ рдареАрдХ рдХрд░реЗрдВ:

function a($f) {& $f}
function main() {
    $f = {write-host 'success'}
    a {& $f} # stack-overflow
    a {& $f}.getnewclosure() # okay
}
[void] (main)
  1. рдЪрд░ рдХреИрдкреНрдЪрд░ рдХреЛ рдареАрдХ рдХрд░реЗрдВ:
set-strictmode -version 'latest'
$erroractionpreference = 'stop'

function main() {
    $a = 'foo'
    $f = {
        $g = {$a}.getnewclosure()
        & $g # "variable '$a' cannot be retrieved because it has not been set."
    }.getnewclosure()
    & $f
}

main
  1. рдЖрдЙрдЯрдкреБрдЯ рдЬрдорд╛ рд╣реЛрддрд╛ рд╣реИ; return рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рдорд╛рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ; рдЗрд╕реЗ рдареАрдХ рдХрд░реЛред

  2. PowerShell рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдмрд╛рд╣реНрдп рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдирд┐рдкрдЯрд╛рди рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрдЯрд┐рдХ рдЪреАрдиреА рдирд╣реАрдВ рд╣реИ

  3. рдкреЙрд╡рд░рд▓рд╛рдЗрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВред рдпрд╣ рдмрд╣реБрдд рдмреБрд░рд╛ рд╣реИред рдХреЛрдб рдХреА рд╕реИрдХрдбрд╝реЛрдВ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп, рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдирд┐рдЧрд▓рд╛, рдХреЛрдИ рдкрд░реАрдХреНрд╖рдг рдХрд╡рд░реЗрдЬ рдирд╣реАрдВред

  4. рдореЙрдбреНрдпреВрд▓ рдХреИрд╢рд┐рдВрдЧ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдПрдВред

    • рдХреИрд╢ рдереНрд░реЗрдб-рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИред WTF?
    • рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреИрд╢рд┐рдВрдЧ рдХреА рдкреВрд░реА рдЕрд╡рдзрд╛рд░рдгрд╛ рдПрдХ рдХреАрдЪрдбрд╝ / рд╣реИрдХ рд╣реИред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ Microsoft рдХреЗ рднреАрддрд░ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╕рдорд░реНрдерди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ PowerShell рдмрд╣реБрдд рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдЪрд▓ рд░рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рдЪреНрдЪреЗ рдирд┐рд░реНрдзрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдЕрдЧрд▓рд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдЦреЗрдВред
    • рдХреЗрд╡рд▓ рдЕрдкрдиреА AnalysisCache рдХреЛ
    • рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдХреА рдХреИрд╢рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рдХреА рд░рди-рдЯрд╛рдЗрдо рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдХрд╕рдХрд░ рдпреБрдЧрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреА рд╣реИред
  5. "рд╕рдВрдХрд▓рд┐рдд рдореЙрдбреНрдпреВрд▓" рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдХрд┐ рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдкрд╛рдп рдлрд╛рдЗрд▓реЗрдВ рдХреИрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВред

  6. $none рд╢рд╛рдмреНрджрд┐рдХ рдЬреЛрдбрд╝реЗрдВ

    • рдХрдИ рдЬрдЧрд╣реЛрдВ рдкрд░ $null $none рд╕рд╛рде рдмрджрд▓рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ
    • рдЗрд╕ рдмрд╛рдд рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП $none рд╡рд┐рд╢реЗрд╖ рдореВрд▓реНрдп рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдореБрдЭреЗ рдХреЛрдб 5 рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдЧрд▓ рд╕реНрд╡рд┐рдЪ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛред COM рдФрд░ C # рдбрд╛рдпрдирд╛рдорд┐рдХ рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд░рддрд╛ рд╣реИ - PowerShell рдЗрд╕реЗ рдПрдХ рдЖрдкрджрд╛ рдмрдирд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдореБрдЭреЗ рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рдкреНрд░рдХрд╛рд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд ReportingServicesTools рдореЙрдбреНрдпреВрд▓ рдореЗрдВ SSRS рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рдореИрдк рдХрд░рдирд╛ рд╣реИред рдореИрдВ рдХреЗрд╡рд▓ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рдПрдХ рдмреИрдЧ рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЕрдВрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░реА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдмрдЬрд╛рдп рдмрд▓ рдХреЗ рд╕рд╛рде рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЬрдЯрд┐рд▓рддрд╛ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред ParameterSetName рдХреЗрд╡рд▓ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЕрдВрддрд░реНрдореБрдЦрддрд╛ рдХреЗ рд╕рд╛рде рддрджрд░реНрде рдмрд╣реБрд░реВрдкрддрд╛ рдХреЛ рдкрд┐рдШрд▓рд╛рддрд╛ рд╣реИред

@Jzabroski рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ ErrorRecord рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: https://github.com/PowerShell/PowerShell/issues/3647 , рдХреНрдпреЛрдВрдХрд┐ рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдХреЛ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдо рд╡рд╣рд╛рдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

@ рдЬреЗрдЬрдмреНрд░реЛрд╕реНрдХреА рдПрд░рд░рдХрд╛рд░реНрдб рдлреЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реИ: # 3647, рдХреНрдпреЛрдВрдХрд┐ рдлреЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдХреЛ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдо рд╡рд╣рд╛рдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

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

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

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЛ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдпреЗ рдХреНрдпреЛрдВ (рдФрд░ рднрдпрд╛рдирдХ) рдкрд░рд┐рд╡рд░реНрддрди рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЛ рддреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВред

рдЖрдЙрдЯрдкреБрдЯ рдЬрдорд╛ рд╣реЛрддрд╛ рд╣реИ; рд╡рд╛рдкрд╕реА рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рдорд╛рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИ; рдЗрд╕реЗ рдареАрдХ рдХрд░реЛред

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

PowerShell рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рдкреНрд░рд╛рдердорд┐рдХ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдирд┐рдпрдорд┐рдд / рдЙрдиреНрдирдд рдлрд╝рдВрдХреНрд╢рди рдорд╛рдорд▓реЗ рдореЗрдВ, return рдХреЛ рдХрднреА рднреА рддрд░реНрдХ рдирд╣реАрдВ рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдЗрд╕ рддрд░рд╣:

return $foo

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

$foo
return

рдЗрд╕рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рд░рд┐рдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡реЗ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

return рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЗрд╕реЗ class рдкрджреНрдзрддрд┐ рдХреЗ рднреАрддрд░ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдПрдХ рдирд┐рдпрдорд┐рдд / рдЙрдиреНрдирдд рдкреАрдПрд╕ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ "рдЖрдЙрдЯрдкреБрдЯ рдЬрдорд╛ рд╣реЛрддрд╛ рд╣реИ" рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рд╡рд╛рддрд╛рд╡рд░рдг рдЬреИрд╕реЗ рдХреЛрд░реНрди рд╢реЗрд▓ рдФрд░ рдмреИрд╢ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИред

рдореИрдВ рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рд╕реБрдирддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдореЗрдВ @BrucePay ( рдЬреЛрд░ рдореЗрд░рд╛ , рдиреАрдЪреЗ, рдЙрд╕реЗ рдЙрджреНрдзреГрдд рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦреЗрдВ) рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдиреАрдЪреЗ рдХреА рд░реЗрдЦрд╛ рд╣реИ:

рдХреЗрд╡рд▓ PowerShell рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рдЕрддрд╛рд░реНрдХрд┐рдХ "рд░рд┐рдЯрд░реНрди рдирд╣реАрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ" рдЧреИрд░-рд╕рдордЭ рд╣реИ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдЬрдорд╛ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рд╢рд╛рдирджрд╛рд░ рдореЗрдореЛрд░реА рд▓реАрдХ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдкреЙрд╡рд░рд╢реЗрд▓ рдПрдХреНрд╢рди рдореЗрдВ рд╣рд░ рдЬрдЧрд╣ рдореИрдВ "рд╕рдорд╕реНрдпрд╛рдУрдВ" рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реВрдВ, рдореИрдВ vZeroTechnicalDebt рд╕реВрдЪреА рдореЗрдВ рдХреБрдЫ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВред рдпрд╣рд╛рдБ рдмреНрд░реВрд╕ рдиреЗ рд░рд┐рдЯрд░реНрди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ:

7.3 рдкреБрдирд░реНрдореВрд▓реНрдпрд╛рдВрдХрди рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдореВрд▓реНрдп
рдЕрдм рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рд▓реМрдЯрдиреЗ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рд╣рдо рдпрд╣ рд╕рдм рд╕рд╛рде рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдХреБрдЫ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ PowerShell рдПрдХ рд╢реЗрд▓ рд╣реИ, рдпрд╣ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ - рдпрд╣ рдЖрдЙрдЯрдкреБрдЯ рд▓рд┐рдЦрддрд╛ рд╣реИ рдпрд╛ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рджреЗрдЦрд╛ рд╣реИ, рдХрд┐рд╕реА рднреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдпрд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдХреЙрд▓рд░ рдХреЛ рдкрд░рд┐рдгрд╛рдо рд╡рд╕реНрддреБ рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рдирд╛ рд╣реИред рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░, рдпрджрд┐ рдЖрдк рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП рддреАрди рднрд╛рд╡ рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рддреАрдиреЛрдВ рдХрдердиреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдЖрдЙрдЯрдкреБрдЯ рд╣реИрдВ:
[...]
рдкрд╛рд░рдВрдкрд░рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ, рдЖрдкрдХреЛ рдкрд░рд┐рдгрд╛рдо рдЪрд░ рдХреЛ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, $result , рдЙрддреНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рд░рдгреА рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЛ рд╕рд░рдгреА рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рдлрд┐рд░ рд╕рд░рдгреА рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░реЗрдВ:

PS (16) > function tradnum
> {
> $result = @()
> $i=1
> while ($i -le 10)
> {
> $result += $i
> $i++
> }
> $result
> }

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдкреАрдЫреЗ рдХреА рдкреНрд░реЗрд░рдгрд╛ рдЕрдЪреНрдЫреА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд▓рдХреНрд╖реНрдп рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рдл-рд╕реБрдерд░реЗ, рдЖрд╕рд╛рдиреА рд╕реЗ рдкрдврд╝реЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рддрд░реАрдХреЗ рд╣реИрдВ: рдПрдХрд▓ рд╡рд╕реНрддреБ рд╕реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рддрдХ рдкреНрд░реЛрддреНрд╕рд╛рд╣рдиред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, PowerShell рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рддрд░реАрдХрд╛ рд╣реИ: Write-Output ред

рдмреИрд╢ рдореЗрдВ, рд░рд┐рдЯрд░реНрди рдПрдХ рдлрд╝рдВрдХреНрд╢рди, рдЕрд╡рдзрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИред

рд╣реИ рдирд╛? рдмреИрд╢ рд╕рд┐рд░реНрдл рдПрдХ рд╣реА рдЙрддреНрдкрд╛рджрди рдЬрдорд╛ рдХрд░рддрд╛ рд╣реИ:

hillr@Keith-Dell8500:~$ function foo() {
> echo "Hello"
> ls ~
> date
> return
> echo "World"
> }
hillr@Keith-Dell8500:~$ foo
Hello
bar.ps1  date.txt   test.ps1
baz.ps1  dotnet    powershell-preview_6.2.0-rc.1-1.ubuntu.16.04_amd64.deb
Tue Mar 26 16:06:18 DST 2019

рдкреЙрд╡рд░рд╢реЗрд▓ рдХреА рддрд░рд╣, рдмреИрд╢ рдЕрднреА рднреА return рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рддрдХ рдкреНрд░рддреНрдпреЗрдХ рдХрдорд╛рдВрдб рд╕реЗ рд╕рдм рдХреБрдЫ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИред

рдЖрд╣, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк $? рдореЗрдВ рдЬреЛ рд▓реМрдЯрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЙрд╕рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рд╛рдБ, рдпрд╣ рдПрдХ рдЕрдВрддрд░ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдлрд▓рддрд╛ / рдЕрд╕рдлрд▓рддрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдмреИрд╢ рдореЗрдВ int рд░рд┐рдЯрд░реНрди рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред PS рдореЗрдВ, $? рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╕рдлрд▓рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдлрд▓рддрд╛ / рд╡рд┐рдлрд▓рддрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ $? рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрддрдирд╛ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп try/catch/finally рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

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

рдЖрдк "рдЖрдЙрдЯрдкреБрдЯ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди" рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ: рдПрдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдФрд░ рдПрдХ рдкреНрд░реЛрд╕реЗрд╕рд░рдСрдирдЯреЗрдХреНрд╕реНрдЯред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдиреЗ рдореЗрд░реЗ рдореВрд▓ рдмрд┐рдВрджреБ рдХреЛ рдХреНрдпреЛрдВ рджреЛрд╣рд░рд╛рдпрд╛ред рдЖрдкрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдореИрдВ рдХрд╣ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рджреЗрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдмреБрд░рд╛ рд╣реИред рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп PowerShell рджреНрд╡рд╛рд░рд╛ рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдЦрд░рд╛рдм рд╣реЛрдиреЗ рдХреА рдмрд╛рдд рдХрд╣ рд░рд╣рд╛ рд╣реВрдВред

рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп try/catch/finally рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

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

рдЦреИрд░, PowerShell .NET рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдЬреЛ рдХрдЪрд░рд╛ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдореЗрдореЛрд░реА "рд▓реАрдХ" рд╕реЗ рдкреАрдбрд╝рд┐рдд рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдореЗрдореЛрд░реА рд╣реЛрд░реНрдб рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдмрдбрд╝реЗ рдЖрдЙрдЯрдкреБрдЯ / рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд╕рдВрднрд╛рд▓рддреЗ рд╕рдордп рдереЛрдбрд╝рд╛ рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдХрд┐рд╕реА рдЪрд░ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реИрд╢рдЯреЗрдмрд▓ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ PowerShell рдХреЗ return рдХрдерди рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЙрджреНрджреЗрд╢реНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЬрд▓реНрджреА рд▓реМрдЯреЗрдВ - рдФрд░ рдХреБрдЫ рдирд╣реАрдВред рдЬрдм рдХреЛрдИ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ return 42 рдЙрд╕ рдкрд░ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ $? ред рдпрд╣ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рдПрдХ рдФрд░ рдЖрдЗрдЯрдо рдЖрдЙрдЯрдкреБрдЯ (рдЙрдкрдЬ) рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, $? PowerShell рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдЖрдЙрдЯрдкреБрдЯ / рд░рд┐рдЯрд░реНрди рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред $? рдЙрддреНрдкрдиреНрди рддреНрд░реБрдЯрд┐рдпреЛрдВ (рдпрд╛ рдЗрд╕рдХреЗ рдЕрднрд╛рд╡) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬрдм рдЖрдк $res = foo - $ res рдХреЛ рдлрдВрдХреНрд╢рди рдлреВ рджреНрд╡рд╛рд░рд╛ рд╣рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ рдЖрдк рдпрд╣ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдлрд╝рдВрдХреНрд╢рди "рд╡рд┐рдлрд▓" рд╣реИ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдкреНрд░рддреНрдпреЗрдХ рдПрдХрд▓ рдЖрджреЗрд╢ рдкрд░ $? рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЖрдк try/catch рдмреНрд▓реЙрдХ рдореЗрдВ рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд▓рдкреЗрдЯ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рдкреВрд░реНрд╡ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдЯрд╛рдЗрдкрд┐рдВрдЧ рдЖрддреА рд╣реИ (рд▓рд┐рдкрд┐рдпреЛрдВ рдореЗрдВ)ред

рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рд╕реБрдиреЗрдВ, рдЬрд┐рд╕рдореЗрдВ @BrucePay рд╢рд╛рдорд┐рд▓ рд╣реИ (рдиреАрдЪреЗ рдореЗрд░рд╛ рдЬреЛрд░ рджреЗрдЦреЗрдВ, рдЙрд╕реЗ рдЙрджреНрдзреГрдд рдХрд░рддреЗ рд╣реБрдП), рд▓реЗрдХрд┐рди рдиреАрдЪреЗ рдХреА рд░реЗрдЦрд╛ рд╣реИ:
рдХреЛрд░реНрди рд╢реЗрд▓ рдореЗрдВ, рд░рд┐рдЯрд░реНрди рдПрдХ рдлрд╝рдВрдХреНрд╢рди, рдЕрд╡рдзрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИред
рдмреИрд╢ рдореЗрдВ, рд░рд┐рдЯрд░реНрди рдПрдХ рдлрд╝рдВрдХреНрд╢рди, рдЕрд╡рдзрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИред

PowerShell рдореЗрдВ, рд░рд┐рдЯрд░реНрди рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ, рднреА:

PS C:\> function test { "hello"; return "!"; "world"}
PS C:\> test
hello
!

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

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

рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╕рд╣-рджрд┐рдирдЪрд░реНрдпрд╛ рдпрд╛ "рдЙрдкрдЬ рд╡рд╛рдкрд╕реА", рдпрд╛ рдЬрдирд░реЗрдЯрд░, рдЬрдирд░реЗрдЯрд░-рдмрд┐рд▓реНрдбрд░реЛрдВ рдФрд░ рд╕реНрдХреИрдирд░ (рдЪрд┐рд╣реНрди рдХреЗ рд░реВрдк рдореЗрдВ)ред рдЯреА

рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдпрджрд┐ рдЖрдкрдиреЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдХрдорд╛рдВрдб рд▓рд┐рдЦрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд░рдЦреЗрдВ, рдпрд╣ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдЧрд╛:

PS C:\> robocopy /whatever
PS C:\> "robocopy /whatever" | set-content test.ps1; .\test.ps1
PS C:\> function test { robocopy /whatever }

рдореБрдЭреЗ рддреАрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдПрдХ рд╣реА рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рд╣реИ, рджреЛ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдирд┐рдЧрд▓ рдирд╣реАрдВ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХрд╛рд░рдг рдХреЗ yield return рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ PowerShell рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рдПрдХ рд╢реЗрд▓ рдФрд░ рд▓реЗрдЦрди рд╢реЗрд▓ / рдмреИрдЪ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рд╕реБрд╕рдВрдЧрдд рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ - рдХреБрдЫ рдРрд╕рд╛ рдЬреЛ рдЖрдкрдиреЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд▓рд┐рдЦрд╛ рдерд╛ рдФрд░ рдЗрд╕реЗ рдХрд╣реАрдВ рд░рдЦрдХрд░ рдЖрдк рдЗрд╕реЗ рдмрд╛рд░-рдмрд╛рд░ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреЛрдб рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдЗрдирдкреБрдЯ рдХреА рдЦрдкрдд рдЖрд▓рд╕реА рд╣реИ рдФрд░ рд╡рд┐рдлрд▓рддрд╛ рдЧрдгрдирд╛ рдХреЗ рднрд╛рдЧ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реБрдП рдЧрдгрдирд╛ рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░ рджреЗрддреА рд╣реИред

PowerShell рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд░рдирдЯрд╛рдЗрдо рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдЕрдЧрд░ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд╣ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╡рд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ:

PS D:\> 1..1mb |foreach { write-verbose -Verbose "incoming number: $_"; $_ } |select -first 3
VERBOSE: incoming number: 1
1
VERBOSE: incoming number: 2
2
VERBOSE: incoming number: 3
3

select рддреАрди рдЪреАрдЬреЛрдВ рдХреЗ рд╣реЛрддреЗ рд╣реА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдмрд╛рдХреА рд▓рд╛рдЦреЛрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ foreach рдореЗрдВ рдирд╣реАрдВ рдЦрд┐рд▓рд╛рдпрд╛ рдЧрдпрд╛ред рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рдиреАрдЪреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЬрд╛рдирдХрд╛рд░реА рдПрдХ "рдкреБрд╢" рдореЙрдбрд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╛рд╡рд░рд╢реЗрд▓ рдЗрдВрдЬрди рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рд╢реЗрд▓ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ "рдЕрднрд┐рдХрд▓рди рдХреЛ рдирд┐рд▓рдВрдмрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЗрдирдкреБрдЯ рд╡рд┐рдлрд▓рддрд╛" рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реЛрдЧрд╛ рдпрджрд┐ рдЗрдирдкреБрдЯ рдПрдХ рдореВрд▓ рдХрдорд╛рдВрдб рдпрд╛ рдкреАрдПрд╕ cmdlet рдХреЗ рдмрд╛рд╣рд░ рдХреБрдЫ рд╕реЗ рдЖ рд░рд╣рд╛ рд╣реИред

"рд╕рдВрдХрд▓рд┐рдд рдореЙрдбреНрдпреВрд▓" рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдХрд┐ рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдкрд╛рдп рдлрд╛рдЗрд▓реЗрдВ рдХреИрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдЗрдЪреНрдЫрд┐рдд рд╕рдорд╛рдзрд╛рди C # рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рд▓рд┐рдЦрдирд╛ рд╣реИред PowerShell рдХреЛрдб рдХреБрдЫ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ JIT рд╕рдВрдХрд▓рд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди PS рдЯреАрдо рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдиреЗ рдХрд╣рд╛ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╡реЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕реЗ IIRC рдбреЛрдВрдЧрдмреЛ рд╡рд╛рдВрдЧ рдХреЗ PS Conf Asia рдиреЗ PS рдЗрдВрдЬрди рдЗрдВрдЯрд░реНрдирд▓ Nov 2018

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

рд╡рд╛рдВрдЫрдиреАрдп, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд▓рдЧрддреА рд╣реИ; $null = 4 рдПрдХ рд╕рд░рд▓ рдЪрд░ рдмрд╛рдБрдз рд╣реИ, 4 | out-null рдХреЛ рдПрдХ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдХрдорд╛рдВрдб рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХрд░рдиреЗ рдХреЗ рдУрд╡рд░рд╣реЗрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдХрд┐рд╕реА рдиреЗ рдЬрд╛рдирдмреВрдЭрдХрд░ out-null рдПрдХ рдкреНрд░реЙрдХреНрд╕реА-рд░реИрдкрд░ рдмрдирд╛рдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХреЛрдб? рдХреНрдпрд╛ рд╡рд╣ рддрдХрдиреАрдХреА рдЛрдг, рдЬрд┐рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдФрд░ cmdlet рдХреЗ рд▓рд┐рдП рдкреВрдЫрдирд╛ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдзреАрдорд╛ рд╣реИ?

рдбрд╛рдпрдирд╛рдорд┐рдХ рд╕реНрдХреЛрдкрд┐рдВрдЧ рдареАрдХ рдХрд░реЗрдВ:

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

рдпрд╣ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рдПрдХ рд╢реЗрд▓ рдХреЗ рд▓рд┐рдП "рддрдХрдиреАрдХреА рдЛрдг" рд╣реИ, рдФрд░ рдЕрдЧрд░ рдЗрд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рддреЛ рдпрд╣ "рдЬреАрд░реЛрдЗрд▓реЗрдХреНрдЯреНрд░рд┐рдХрд▓рдбреЗрдм" рд╣реЛрдЧрд╛?

рдЦреИрд░, PowerShell .NET рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдЬреЛ рдХрдЪрд░рд╛ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдореЗрдореЛрд░реА "рд▓реАрдХ" рд╕реЗ рдкреАрдбрд╝рд┐рдд рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдореЗрдореЛрд░реА рд╣реЛрд░реНрдб рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдмрдбрд╝реЗ рдЖрдЙрдЯрдкреБрдЯ / рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд╕рдВрднрд╛рд▓рддреЗ рд╕рдордп рдереЛрдбрд╝рд╛ рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдХрд┐рд╕реА рдЪрд░ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реИрд╢рдЯреЗрдмрд▓ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХ рдерд╛, рдЬреЛ рдПрдХ рдЗрдВрдЬреАрдирд┐рдпрд░ рдирд╣реАрдВ рд╣реИ, 8 рдЯреАрдмреА рдлрд╝рд╛рдЗрд▓ рд╢реЗрдпрд░ рдкрд░ рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдкрд░ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рд╕рд╛рд░рдгреАрдмрджреНрдз рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рддрд░реНрдХ рд▓рд┐рдЦреЗрдВред рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдЖ: рдпрд╣ рдмрд╣реБрдд рдореЗрдореЛрд░реА рдЦрд╛ рдЧрдпрд╛, рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЛ 100% рд╕реАрдкреАрдпреВ рдкрд░ рднреА рдЖрдВрдХрд╛ рдЧрдпрд╛ ... рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рднреА рдмреЙрдХреНрд╕ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдирд╣реАрдВ рдХрд░ рд╕рдХреЗ, рдФрд░ рд╕рд░реНрд╡рд░ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рд╕рдорд╛рдзрд╛рди _in рдкреНрд░реЛрдбрдХреНрд╢рди_ рдЗрд╕реЗ рд╣рд╛рд░реНрдб рд░рд┐рдмреВрдЯ рдХрд░рдирд╛ рдерд╛ред

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

@jzabroski рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдХрд┐рд╕реА рднреА рд╡рд┐рд╡рд░рдг рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдкреЙрд╡рд░рд╢реЗрд▓ рд▓реЛрдЧреЛрдВ рдХреЛ рдореЗрдореЛрд░реА рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдмреВрдЭрдХрд░ рдПрдХ рд▓реЛрдбрд┐рдВрдЧ рдбреЗрдЯрд╛рд╕реЗрдЯ ( $files = get-childitem; $files | foreach-object ) рдХреЗ рдмрдЬрд╛рдп рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ ( get-childitem | foreach-object {} ) рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдк-рдлреНрд░рдВрдЯ рд▓реЛрдбрд┐рдВрдЧ?

рдХреНрдпрд╛ рд╕рдорд╛рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Group-Object рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛? рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЧреНрд░реБрдк-рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реБрдЖ рд╣реИ, рдЬреЛ рдХрд┐ рд╕реАрдкреАрдпреВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдХрдо рдХрд░реЗрдЧрд╛, рдпрджрд┐ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

PowerShell рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рд┐рдВрдЧрд▓-рдХреЛрд░ рд╣реИ, рдХреНрдпрд╛ рдЗрд╕рдореЗрдВ рдЬреЙрдм / рд░рдирд╕реНрдкреЗрд╕ рдХреЛрдб рдерд╛, рдХреНрдпрд╛ рдпрд╣ рд╕рд┐рдВрдЧрд▓ рдХреЛрд░ рд╕рд░реНрд╡рд░ рдерд╛? PS 6.1 рдореЗрдВ рд╕реНрдЯрд╛рд░реНрдЯ-рдереНрд░реЗрдбрдЬреЙрдм рд╣реИ рдЬреЛ рд╕реАрдкреАрдпреВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рдУрд╡рд░рд╣реЗрдб рдФрд░ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрдИ рдиреМрдХрд░рд┐рдпреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ, PowerShell рдЗрд╕ рддрд░рд╣ рдХреА рдмрдХрд╡рд╛рд╕ рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ

рд╕рднреА рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдФрд░ рдХрд┐рддрд╛рдмреЗрдВ рдЬреЛ рдЖрдкрдХреЛ $files = @(); $files += $f рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреА рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП cpu рд╕рд╛рдЗрдХрд┐рд▓ рдФрд░ рдореЗрдореЛрд░реА рдореЗрдВ рджреБрдирд┐рдпрд╛ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рднрд╛рдЧреНрдп рдЕрд╡рд╢реНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдПрдХ рдРрд╕рд╛ рдкреИрдЯрд░реНрди рд╣реИ рдЬреЛ рдзреАрдорд╛ рд╣реИ, рдкреНрд░реЛрд╕реЗрд╕рд░ рдФрд░ рдореЗрдореЛрд░реА рдХрд╛ рдорд╣рдВрдЧрд╛ рд╣реИ, рдФрд░ рдЪрд┐рдВрддрд╛рдЬрдирдХ рд░реВрдк рд╕реЗ рдЖрдо рд╣реИред рдореБрдЭреЗ рдЙрддреНрд╕реБрдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╡рд╣ рдкреИрдЯрд░реНрди рдерд╛? (рдФрд░ рдЕрдЧрд░ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╣рдо рдЗрд╕реЗ рдкреАрдЫреЗ рдХреА рд╕рдВрдЧрддрддрд╛ рдХреЛ рддреЛрдбрд╝реЗ рдмрд┐рдирд╛ рдмреНрд▓реЙрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рднрд╡рд┐рд╖реНрдп рдХреЗ рдмреНрд░реЗрдХрд┐рдВрдЧ-рдкрд░рд┐рд╡рд░реНрддрди рдореЗрдВ рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ + = рдЕрдорд╛рдиреНрдп рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ?)ред

рд▓реЗрдХрд┐рди, рдпрд╣рд╛рдВ рдПрдХ рд╡реНрдпрд╛рдкрд╛рд░ рд╣реИред Get-ChildItem -Recurse 22 рдЕрдХреНрд╖рд░ рд╣реИрдВ рдФрд░ рд╕рд┐рд░реНрдл рдореЗрд░реЗ C: рдбреНрд░рд╛рдЗрд╡, C # рдкрд░ 800 + MB рдХреА рд░реИрдо рдЦрд╛рддрд╛ рд╣реИ, рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдЯрд╛рдбрд╛рдЯрд╛ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рдФрд░ рд╣реЛрдЧрд╛ рдЕрдзрд┐рдХ 80MB рдХреА рддрд░рд╣ред рдпрд╣ PS рд▓реАрдХ рдореЗрдореЛрд░реА рдирд╣реАрдВ рд╣реИ, рдпрд╣ PS рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред

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

рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╣рд▓реЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдмрджрд▓рд╛рд╡реЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдиреЗ рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ?

рдЖрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд░ рдПрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рддрдХ рдХрд┐ рдЖрдкрдХрд╛ рд╕рд░реНрд╡рд░ рдЦрддреНрдо рди рд╣реЛ рдЬрд╛рдП рдФрд░ рдЖрдк рдЙрд╕рдореЗрдВ рдПрд╕рдПрд╕рдПрдЪ рднреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЖрдк рдПрдХ рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ os.walk() рдлрд╝рд╛рдЗрд▓ рдлрд╝рд╛рдЗрд▓ рдЯреНрд░реА рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП os.stat() рдХреЙрд▓ рдХрд░рддреА рд╣реИ рдФрд░ рдХрдо рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ рдФрд░ рддреЗрдЬрд╝реА рд╕реЗ рдЦрддреНрдо рд╣реЛрддреА рд╣реИ - рд▓реЗрдХрд┐рди 1 рдХреЗ рдмрдЬрд╛рдп 10 рд▓рд╛рдЗрдиреЗрдВ рд▓реЗрддреА рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЕрднреА рднреА рдзреНрдпрд╛рди рд░рдЦрдирд╛ рд╣реИ рдУрдПрд╕ рдФрд░ рдХреЛрдб рд╡рд┐рд╡рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреЗрдЦрднрд╛рд▓ (рдФрд░ рдпрд╣ рдЕрднреА рднреА рдПрдХ рд╢реЗрд▓ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдкреАрдПрд╕ рдкреНрд░реЛрд╡рд╛рдЗрдбрд░реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛)ред

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

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

рдореИрдВ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ PS рдХреЛ "рдЕрдзрд┐рдХ рд╕рдлрд▓рддрд╛ рдХреЗ рдЧрдбреНрдвреЗ" рдФрд░ рдХрдо рдпрд╛рддреНрд░рд╛ рдХреЗ рдЦрддрд░реЗ рд╣реЛрдВред

рдЕрдЧрд░ рдореИрдВ рдЙрд╕ рдЕрдХреЗрд▓реЗ рдХреЗ рд▓рд┐рдП рдмреАрд╕ рдЕрдВрдЧреВрдареЗ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдХрд░реВрдВрдЧрд╛ред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреИрдЯрд░реНрди рдФрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ PowerShell рдХреЛ рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

For-EveryObject PowerShell рд╕рдВрдЧреНрд░рд╣ рд▓реЗрдиреЗ рдФрд░ рдЗрд╕реЗ рдЕрдкрдардиреАрдп рд╕реНрдЯреИрдХ рдХреЗ рдирд┐рд╢рд╛рди рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ PowerShell рдлрд╝рдВрдХреНрд╢рди рд╣реИред

рдЖрдЬ, рдореИрдВрдиреЗ EC2 рд╡рд┐рдВрдбреЛрдЬ рдбрд┐рд╕реНрдХ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдореЗрдЬрд╝реЕрди рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд┐рдд рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реА: https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-windows-volumes.html#windows -list-disks

рдЕрдВрджрд╛рдЬрд╝рд╛ рд▓рдЧрд╛рдУ? рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ PC рдкрд░ Initialize-AWSDefaults рд╕реЗрдЯ-рдЕрдк рдирд╣реАрдВ рдерд╛, рдФрд░ рдЪреВрдВрдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЗрдЦрдХ рдиреЗ ForEach-Object рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛, рдореЗрд░реЗ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдЗрд╕ _garbage_ рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣реЗ рдереЗ:

PS C:\Windows\system32> D:\Installs\PowerShell\List-EC2Disks.ps1
Could not access the AWS API, therefore, VolumeId is not available. 
Verify that you provided your access keys.
ForEach-Object : You cannot call a method on a null-valued expression.
At D:\Installs\PowerShell\List-EC2Disks.ps1:39 char:12
+ Get-disk | ForEach-Object {
+            ~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [ForEach-Object], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull,Microsoft.PowerShell.Commands.ForEachObjectCommand

рдРрд╕рд╛ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд▓реЛрдЧ рдЕрдкрдиреЗ рдХреЛрдб_ рдореЗрдВ ForEach-Object рднрд╛рд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╕реНрдЯреИрдХ рдХреЗ рдирд┐рд╢рд╛рди _always рднрдпрд╛рдирдХ_ рд╣реИрдВред рдпрд╣ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рджрд░реНрджрдирд╛рдХ рд╣реИред рд╢реБрдХреНрд░ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХрд░рддрд╛ рд╣реВрдВ, рд╕рд╣реЗрдЬрддрд╛ рд╣реВрдВ, рдФрд░ рдЪрд▓рд╛рддрд╛ рд╣реВрдВред рдпрджрд┐ рдпрд╣ рдПрдХ рдмрдбрд╝реЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рдИрд╢реНрд╡рд░ рд╕реЗ рдпрд╣ рдЙрдореНрдореАрдж рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдлреЙрд░рдПрдЪ-рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкрд╛рд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рддреЛрдбрд╝реВрдВрдЧрд╛ рдФрд░ рдЖрд╢рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдореИрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХрд╣рд╛рдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдкрдирд╛ рдХрд╛рдо_ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдФрд░ рдЕрдм рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдХрд╕реНрдЯрдо рдХреЛрдб рд╣реИрдВ рдЬреЛ рдореИрдВрдиреЗ рдХреБрдЫ рдкреНрд░рдореБрдЦ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд▓рд┐рдП рдереЗ, рдмрд╕ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рддреНрд░реБрдЯрд┐ рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣реА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ PowerShell рдХреЗ Write-Error IS throw new Exception("message", ex) # рд╕рд░рд▓ рдореБрд╣рд╛рд╡рд░реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ AWFUL рд╣реИред

for ($var in $list) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛, рдЪрд░ $results рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдЬрдорд╛ рдХрд░рдирд╛, рдореБрдЭреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

PS C:\Windows\system32> D:\Installs\PowerShell\List-EC2Disks.ps1
Could not access the AWS API, therefore, VolumeId is not available. 
Verify that you provided your access keys.
You cannot call a method on a null-valued expression.
At D:\Installs\PowerShell\List-EC2Disks.ps1:58 char:26
+ ... lDevice = If ($VirtualDeviceMap.ContainsKey($BlockDeviceName)) { $Vir ...
+                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

рдУрд╣, рдФрд░ рд╡реИрд╕реЗ рднреА, рд╣рд░ рдмрд╛рд░ рдореБрдЭреЗ рдпрд╣ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╕реВрдЪреА рдореЗрдВ рдЖрдЗрдЯрдо рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЙрд╡рд░рд╢реЗрд▓ рдХреЗ рдмреЗрд╡рдХреВрдл рдирд┐рдпрдореЛрдВ рдХреЛ рдпрд╛рдж рдирд╣реАрдВ рд░рдЦ рд╕рдХрддрд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ Google https://www.google.com/search?q=powershell+append рдХрд░рдирд╛ рд╣реЛрдЧрд╛ + рд╕реЗ + рд╕реВрдЪреА рдФрд░ рдХрд┐рд╕реА рдЧреИрд░-рд╕рд╣рдЬ рдЬреНрдЮрд╛рди рдпреБрдХреНрдд PowerShell рдХреЗ рд╕реВрдЪреА рд╕рдВрдЪрд╛рд▓рди рдХреИрд╕реЗ рд╣реИрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдкрдврд╝реЗрдВред

рдпрджрд┐ рдЖрдк C # рдпрд╛ рдРрд╕реА рднрд╛рд╖рд╛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдЬреЛ рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд░рддреА рд╣реИ, рддреЛ рдпрд╣ рддрд░реНрдХ рджреЗрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдареАрдХ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, C # рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдордЭрджрд╛рд░реА рд╕реЗ рдПрдХ AggregateException рдореЗрдВ рдЕрдкрд╡рд╛рдж рдХреЛ рд▓рдкреЗрдЯрдХрд░ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдЖрдВрддрд░рд┐рдХ рдФрд░ рдмрд╛рд╣рд░реА рджреЛрдиреЛрдВ рдЕрдкрд╡рд╛рдж рдорд┐рд▓реЗрдВред рд╢рдХреНрддрд┐ рдХреЛрд╢рд┐рдХрд╛? рд╣рд╛ рд╣рд╛ рд╣рд╛ рд╣рд╛ред рд╣рд╛рдБ, рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

@jzabroski рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдХрд┐рд╕реА рднреА рд╡рд┐рд╡рд░рдг рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

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

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЗрд╕реЗ рдЯреАрдо рдЪреИрдЯ рдореЗрдВ рдорд┐рд▓рд╛ред

$big32┬а=┬аGet-ChildItem┬аD:\Data\Website\Data┬а-recurse┬а|┬аSort-Object┬аlength┬а-descending┬а|┬аselect-object┬а-first┬а32┬а|┬аmeasure-object┬а-property┬аlength┬атАУsum

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

рдХреЛрдИ рдорд┐рд╢реНрд░рдг рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ PowerShell рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдФрд░ рд░рд┐рдЯрд░реНрди рдорд╛рди рдХреЗ рдмреАрдЪ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИред

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

@jzabroski рдЖрдкрдХреЗ For-EachObject рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк Powershell Core (рдЬреЛ рдХрд┐ рдЗрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рд╕рдорд░реНрдкрд┐рдд рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдХреНрдпрд╛ рдЖрдк Powershell Core рдХреЛ рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред рдзреНрдпрд╛рди рд░рдЦреЗрдВ, рдХрд┐ рд╡рд┐рдВрдбреЛрдЬрд╝ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ (рдЬреИрд╕реЗ рдЧреЗрдЯ-рдбрд┐рд╕реНрдХ) рдкреЙрд╡рд░реНрд╕рд╢реЗрд▓ рдХреЛрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред

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

$ test () { ls /tmp; ls /etc/pm; return 5; ls /v*; } ; x=$(test)
$ echo "$x"
tmux-1000
sleep.d
$ echo $?
0

рдпрд╣ рджреЛрдиреЛрдВ рдмреИрд╢ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЬрдорд╛ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрдорд╛рдВрдб рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рд╣реИ, рдФрд░ рдмреИрд╢ C # рдореЗрдВ рд░рд┐рдЯрд░реНрди рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, "рдмреИрд╢ рдХреНрдпрд╛ рдирд╣реАрдВ рд╣реИ"?

рдЖрдк рдмреИрд╢ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХреИрдкреНрдЪрд░ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред $ рдХреА рд╡рдЬрд╣ рд╕реЗ рд░рд┐рдЯрд░реНрди рдЦреЛ рдЧрдпрд╛ рд╣реИ? рд╣рдореЗрд╢рд╛ рдЕрдВрддрд┐рдо рдЖрджреЗрд╢ рд╣реИред рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ 'рдЧреВрдВрдЬ'ред

$ test () { ls /tmp; ls /etc/pm; return 5; ls /v*; } ; x=$(test)
$ echo $?
5
$ echo $x
tmux-1000
sleep.d

POWERSHELL рдпрд╣ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд░рддрд╛ рд╣реИ

> function test() { ls; return 5 ; ls } ; $x=test
> echo $?
True
> echo $x
    Directory: c:\foo\bar

Mode                LastWriteTime         Length Name
----                -------------         ------ ----

рдЕрдзрд┐рдХ PowerShell рд╡рд┐рд╖рдорддрд╛рдПрдБ:

Chocolatey рдПрдХ RefreshEnv.cmd рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдЬреЛ рдПрдХ GODSEND рд╣реИред рдХреНрдпреЛрдВ рдпрд╣ рд╕рд┐рд░реНрдл PowerShell рдХреЗ рд╕рд╛рде рдЬрд╣рд╛рдЬ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ? рдореБрдЭреЗ рдЕрдкрдирд╛ рд╢реЗрд▓ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдпрд╛ рдЕрдкрдирд╛ $ env рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдХреБрдЫ рдмреЗрд╡рдХреВрдл рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?

@jzabroski рдпрд╣ https://github.com/PowerShell/PowerShell-RFC/pull/92 рдореЗрдВ рд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЖрдк рдЗрд╕рдореЗрдВ рдЭрдВрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

PowerShell рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЙрдбрд▓ рдмрдирд╛рдПрдБ: https://github.com/PowerShell/SHiPS/issues/66#issuecomment -368924485

SHiPS рдореБрджреНрджреЗ рдкрд░ рд▓рд┐рдВрдХ 66 рдореЗрдВ, рдореИрдВ рд╕рдВрднрд╛рд╡рд┐рдд cmdlets рдХреА рд░реВрдкрд░реЗрдЦрд╛ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рдЗрди рдореБрдЦреНрдп cmdlets рдХреЗ рд▓рд┐рдП рд╣рд╛рд╕реНрдХреЗрд▓ рдЯрд╛рдЗрдкрдХрд╛рд╕реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдЬреИрд╕рд╛ рдХреБрдЫ рдХреНрдпреЛрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ API рдкрд╣рд▓реЗ рд╕реЗ рд╣реА PowerShell рдореЗрдВ рд╣реИред

@iSazonov рдХреНрдпрд╛ рдЖрдк рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдмреЛрд▓реА рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдЙрддреНрддрд░ рджреЗ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдХреБрдЫ рд╕рдВрджрд░реНрдн рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдЙрдХреНрдд рдПрдкреАрдЖрдИ рдХреЗ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХ? TYVM

@jzabroski srcSystem.Management.Automationnamespaces рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рджреЗрдЦреЗрдВред

POWERSHELL рдпрд╣ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд░рддрд╛ рд╣реИ

рдпрд╣ bash рдЬреЛ рдЗрд╕реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд░ рд░рд╣рд╛ рд╣реИ - return рдХреЗрд╡рд▓ (рдкреВрд░реНрдгрд╛рдВрдХ) рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХрд╛ рдХреЛрдб рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдпрд╣ рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ "рд╡рд╛рдкрд╕реА" рдХрд╛ рдЕрд░реНрде рдирд╣реАрдВ рд╣реИ, рдпрд╣ exit ) ред

PowerShell exit 5 рд╕рд╛рде рднреА рдРрд╕рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рд╣рдо PowerShell рдореЗрдВ рдмрд╣реБрдд рдмрд╛рд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рдХреЗрд╡рд▓ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдиреНрдп OSes рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реЛрдк рдХрд░рддреЗ рд╣реИрдВ), рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛-рдЖрдзрд╛рд░рд┐рдд рд╢реЗрд▓ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдирд┐рдХрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред

рджрд┐рди рдХреЗ рдЕрдВрдд рдореЗрдВ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╕реНрдЯрдбрдЖрдЙрдЯ рд╣реИрдВрдбрд▓ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдкрд╛рд╡рд░рд╕реНрд▓реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИ (рдФрд░ рдХреНрдпреЛрдВ рдЖрдЙрдЯ-рдирд▓ рдХреЗ рд▓рд┐рдП "рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди" [void] рд▓рд┐рдП рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдпрд╛ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИ) $null )

рдореИрдВ рд▓реЛрдЧреЛрдВ рдХреЛ рдирдП рдореБрджреНрджреЛрдВ рдХреЛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдпрджрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдлреАрдбрдмреИрдХ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рд╣реИ - рдЪреВрдВрдХрд┐ рдЯреАрдо рдиреЗ _clearly рдФрд░ unequivocally рдиреЗ рд╢рд╛рд╕рди рдХрд┐рдпрд╛ рд╣реИ_ PowerShell рдХрд╛ рдПрдХ рдирд╣реАрдВ-рдкрд┐рдЫрдбрд╝рд╛-рд╕рдВрдЧрдд рд╕рдВрд╕реНрдХрд░рдг, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдереНрд░реЗрдб рдмрд╕ рдХреНрдпреЛрдВ рд░рдЦрддрд╛ рд╣реИ ...

рдЪреВрдБрдХрд┐ рдЯреАрдо рдиреЗ _clearly рдФрд░ unequivocally рдиреЗ out_ рдХрд╛ рдПрдХ рдкреАрдЫреЗ-рдкреАрдЫреЗ-рд╕рдВрдЧрдд рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рджрд┐рдпрд╛ рд╣реИ

рд╡рд╣ рдореБрдЭреЗ рдЦрдмрд░ рд╣реИред рдпрд╣ рдХреИрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИ? рдХреГрдкрдпрд╛ рдкреЛрд╕реНрдЯ рдпрд╛ рдЕрдиреНрдп рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд▓рд┐рдВрдХ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред

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

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

рдореИрдВ рджреЛрд╣рд░рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЯреАрдо рдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд╛рд╡рд░рд╢реЗрд▓ рд╕реЗ pwsh рддрдХ рдХрдорд╛рдВрдб рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдкрд╛рд╡рд░рд╢реЗрд▓ рдХрд╛ рдПрдХ 'рди-рдмреИрдХрд╡рд░реНрдб рдХрдВрдкрд╛рдЙрдВрдбрд░' рд╡рд░реНрдЬрди рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рд╣реИред рд╢рдХреНрддрд┐ (рд╢реЗрд▓) рдПрдХ рдЦреЛрд▓ рд╣реИред рд╢реЗрд▓ рдХрд╛ рдХрд╛рдо рдЙрди рдордиреБрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЧреЛрдВрдж рд╣реЛрдирд╛ рд╣реИ рдЬреЛ рдбрд┐рдЬрд┐рдЯрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдпрд╣ рдиреНрдпреВрдирддрдо рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдмрд╛рдЗрдирд░реА рдирд╣реАрдВ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдПрдВ рднреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреА рд╣реИрдВ рдФрд░ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддреА рд╣реИрдВред

POWERSHELL рдпрд╣ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд░рддрд╛ рд╣реИ

рдпрд╣ bash рдЬреЛ рдЗрд╕реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд░ рд░рд╣рд╛ рд╣реИ - return рдХреЗрд╡рд▓ (рдкреВрд░реНрдгрд╛рдВрдХ) рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рдХрд╛рд╕ рдХреЛрдб рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдпрд╣ рдирд╣реАрдВ рд╣реИ

рдореИрдВ рдЕрдиреНрдп рдЧреЛрд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВред рд╡реЛ рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ? korn, csh, рдЖрджрд┐ред

рдпрд╣рд╛рдБ рдХрдИ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд░рд┐рдЯрд░реНрди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд▓реЗрдЦ рд╣реИ: https://en.wikipedia.org/wiki/Return_statement

рдпрд╣ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо [рдЧреЛрд▓реЗ] рдХрдИ рдЪреАрдЬреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ: рд░рд┐рдЯрд░реНрди рдХреЛрдб рдФрд░ рдЖрдЙрдЯрдкреБрдЯред

рдореЗрд░реА рдЯреАрдо рдХреЗ рдкрд╛рд╕ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ PowerShell 5 рдореЗрдВ рдЪрд▓рддреА рд╣реИрдВ рднрд▓реЗ рд╣реА рд╣рдо PowerShell 6 рдХрд╛ рдпрдерд╛рд╕рдВрднрд╡ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ, PowerShell рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд┐рдЫрдбрд╝рд╛-рд╕рдВрдЧрдд рд╣реИ рдХрд┐ рдЖрдзрд╛рд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЧрд▓рдд рд╣реИред рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдЪрд░рдо рдорд╛рдорд▓реЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг: ErrorActionPreference рд╕рд╣рдЬ рд░реВрдк рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдХрд░рдирд╛) рдЬрд┐рд╕реЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - рдРрд╕реЗ рдорд╛рдорд▓реЗ рдЬрд╣рд╛рдВ рдлрд┐рдХреНрд╕рд┐рдВрдЧ рдХрд░рдирд╛ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо "рдмреНрд░реЗрдХрд┐рдВрдЧ" рд╣реЛрдЧрд╛ред

@chriskuech ErrorActionPreference рд╕рд╛рде рдЕрдкрдиреЗ рдореБрджреНрджреЗ рдХрд╛ рд╡рд┐рд╡рд░рдг рджреЗрдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдореБрджреНрджрд╛ рд╣реИ?

@ SteveL-MSFT рдореЗрд░рд╛ рдорд╛рдирдирд╛ рд╣реИ рдХрд┐ рдореЛрдЬрд╝реЗрдХ @KirkMunro рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдХрд┐ рд╕реАрдзреЗ @chriskuech рдЯрд┐рдкреНрдкрдгреА рдиреАрдЪреЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЖрдк рдХреЗ рд▓рд┐рдП рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред рдФрд░ рд╣рд╛рдВ, рдореИрдВ рдореЛрдЬрд╝реЗрдХ рд╢рдмреНрдж рдХреЛ рдПрдХ рддрдХрдиреАрдХреА рд╡рд╛рд░реНрддрд╛рд▓рд╛рдк рдореЗрдВ рдирд┐рдЪреЛрдбрд╝рддрд╛ рд╣реВрдВред

рдЙрд╕ рдиреЗ рдХрд╣рд╛, @iSazonov рдиреЗ 1 рдЕрдХреНрдЯреВрдмрд░, 2018 рдХреЛ @chriskuech рдореВрд▓ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛: https://github.com/PowerShell/PowerShell/issues/7774 рджреЗрдЦреЗрдВ

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╛рдорд╛рди рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░реВрдкреЛрдВ рдореЗрдВ рд╕рд╛рдордиреЗ рдЖрддрд╛ рд░рд╣рддрд╛ рд╣реИ, рдФрд░ рд╕рдорд┐рддрд┐ рдЗрд╕рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рдмрдВрдж рдХрд░рддреА рд░рд╣рддреА рд╣реИред

@ рдЬрд╝рдЬрд╝рдмреНрд░реЛрд╕реНрдХреА рдиреЗ рдореЗрд░реЗ рдореБрдЦреНрдп рдореБрджреНрджреЗ рдХреЛ рдореВрд▓ рдХрд╛рд░рдг рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ред

рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рднреА рд▓рдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдПрдХ рдореБрджреНрджрд╛ рджрд╛рдпрд░ рдХрд┐рдпрд╛ рдерд╛: Invoke-WebRequest рдПрдХ рд╕рдорд╛рдкреНрддрд┐ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХред рдореИрдВрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЛ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ try / catch boilerplate рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рдлрд▓ HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬреЛ рддрдм рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдВрддрд░рд┐рдХ .NET рд╡рд┐рдзрд┐рдпрд╛рдБ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддреА рд╣реИрдВред рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ, рдЗрдВрдЬреАрдирд┐рдпрд░ рдиреЗ рдПрдХ рдмрд╛рд╣рд░реА рдЬрд╡рд╛рдм рджрд┐рдпрд╛ рдЬрдм рдореИрдВрдиреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рдордЭрд╛рдпрд╛ рдФрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдХрдерд┐рдд рддреМрд░ рдкрд░ рдХрднреА рднреА рддрдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╕рд╛рд░рд╛рдВрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП , рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреЙрд╡рд░рд╢реЗрд▓ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рддреНрд░реБрдЯрд┐ рд╕реЗ рдЖрдЧреЗ рдирд╣реАрдВ рдмрдврд╝ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рдХрднреА рднреА рд╣реИ, рд▓реЗрдХрд┐рди рдорд╛рдорд▓рд╛-рджрд░-рдорд╛рдорд▓рд╛ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреНрд░рд┐рдлреНрдЯрд░ рдХрд╛ рдирд┐рд░реНрдгрдпред рдХреЗрд╡рд▓ рд╡реЗ рд╣реА рддрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ Stop , SilentlyContinue , Continue , рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдЪрд╛рд╣рддреЗ рд╣реИрдВред

(рдКрдкрд░ рдХреЗ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд░реНрд╢рд░реЗрдЦрд╛)

рдпрджрд┐ PowerShell рдПрдХ рдСрдкреНрдЯ-рдЗрди "ZeroTechDebt" рдореЛрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ $ErrorActionPreference = "Stop" рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХрд╛ REPL рдореЗрдВ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕рднреА рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рд╕рдЪрдореБрдЪ рдореЗрд░реА рд╕рднреА рд▓рд┐рдкрд┐рдпрд╛рдБ "рд░рдХреНрд╖рд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ" рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП $ErrorActionPreference = "Stop" рд╕рд╛рде рдЙрдкрд╕рд░реНрдЧ рдХрд░рддреА рд╣реИрдВ рдФрд░ "рд╕рд╛рдорд╛рдиреНрдп" рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреА рд╣реИрдВ " рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ред

@chriskuech рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ RFC рдХреЗ рдЗрд╕ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдПрдХ рд░реВрдк рджреЗрдВ: https://github.com/PowerShell/PowerShell-RFC/pull/187ред рд╡реЗ рд╕реАрдзреЗ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдмрд┐рдирд╛ рдкрд╛рд╡рд░рд╕реНрд▓реЗ рдХреЗ рдПрдХ рдирдП рд╢реВрдиреНрдп рддрдХрдиреАрдХ рдЛрдг рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЖрдк рдЪрд╛рд░ рдЖрд░рдПрдлрд╕реА рдХреЛ рдЙрд╕ рд░реЗрдкреЛ рдореЗрдВ рдЗрд╢реНрдпреВ рдкреЗрдЬ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореБрджреНрджреЛрдВ рдореЗрдВ рднреА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЗрд╕рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдкрдврд╝рдиреЗ / рдкрдЪрд╛рдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╣реЛрддреА рд╣реИред рдмрд╕ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдЦреБрд▓реЗ рдореБрджреНрджреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ рдФрд░ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдвреВрдВрдв рд▓реЗрдВрдЧреЗ

@ рд╕реНрдЯреАрд╡рдПрд▓-рдПрдордПрд╕рдПрдлрдЯреА рдпрд╣рд╛рдВ рдПрдХ рдРрд╕рд╛ рд╣реА рдореБрджреНрджрд╛ рд╣реИ рдЬреЛ рдореЗрд░реА рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ $ErrorActionPreference рдмрд▓реНрдХрд┐ $ConfirmPreference :

рдиреАрдЪреЗ рдПрдХ рдмрджрд╕реВрд░рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ рдореИрдВрдиреЗ SQL рд╕рд░реНрд╡рд░ рдбрд┐рд╕реНрдХ рд╡реЙрд▓реНрдпреВрдо 64kb рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдерд╛ред

Import-Module Storage;

function Format-Drives
{
    # See https://stackoverflow.com/a/42621174/1040437 (Formatting a disk using PowerShell without prompting for confirmation)
    $currentconfirm = $ConfirmPreference
    $ConfirmPreference = 'none'

    Get-Disk | Where isOffline | Set-Disk -isOffline $false
    # The next line of this script is (almost) copy-pasted verbatim from: https://blogs.technet.microsoft.com/heyscriptingguy/2013/05/29/use-powershell-to-initialize-raw-disks-and-to-partition-and-format-volumes/
    Get-Disk | Where partitionstyle -eq 'raw' | Initialize-Disk -PartitionStyle MBR -Confirm:$false -PassThru | New-Partition -AssignDriveLetter -UseMaximumSize -IsActive | Format-Volume -FileSystem NTFS -AllocationUnitSize 64kb -Confirm:$false

    # See https://stackoverflow.com/a/42621174/1040437 (Formatting a disk using PowerShell without prompting for confirmation)
    $ConfirmPreference = $currentconfirm
}

Format-Drives

рд╕рд╛рдЗрдб рдкреЙрдЗрдВрдЯ рдХреЗ рдЬреЛрдбрд╝реЗ:

  1. Format-Volume рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдЕрдзрд┐рдХ рдХреЗ рд▓рд┐рдП рдЪрд╛рд╣ рд░рд╣рд╛ рд╣реИред рдХреЗрд╡рд▓ рджреЛ рдЙрджрд╛рд╣рд░рдг? рдФрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХ рдореЗрдВ рдирд╣реАрдВ рд╣реИ: https://github.com/MicrosoftDocs/windows-powershell-docs/issues/1170
  2. рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП GUI рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рддрд░реАрдХреЗ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ StackOverflow рдореЗрдВ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?
  3. рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЗрддрдиреА рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг / рдмреЗрд╡рдХреВрдлреА рд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ "рдмрд┐рдирд╛ рд╕реЛрдЪреЗ рд╕рдордЭреЗ" рд╕рд┐рд░реНрдл https://github.com/PowerShell/PowerShell-RFC/issues/198 рдЬреИрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░рддрд╛ рд╣реИ - рдпрд╣ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рдмреНрд░реВрд╕ рдкреИрд▓реЗрдЯ рдХрд╛ рд╡рд╛рджрд╛ " рдкреЙрд╡рд░рд╢реЗрд▓ рдЗрди рдПрдХреНрд╢рди "рдЬреЛ рдЖрдкрдХреЛ рд╕рд╣реА рд▓рдЧрддрд╛ рд╣реИ рдЙрд╕реЗ рдЯрд╛рдЗрдк рдХрд░реЗрдВ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ... рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЭреВрда рд╣реИред
  4. @ Mklement0 рдХрд╛ рдореБрджреНрджрд╛ рднреА рджреЗрдЦреЗрдВ: https://github.com/PowerShell/PowerShell/issues/4568

рдЖрд╡рд╢реНрдпрдХрддрд╛ -Version рдореЗрдВ рдЕрдзрд┐рдХрддрдо рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ

рджреЗрдЦреЗрдВ: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_requires?view=powershell-6

рдЬрдм рдЖрдк рдПрдбрд╡рд╛рдВрд╕реНрдб рдлрдВрдХреНрд╢рдиреНрд╕ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реЛрддрд╛ рд╣реИред .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдПрдкреАрдЖрдИ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ .NET рдХреЛрд░ рдХреЗ рдмреАрдЪ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣реЛрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ AccessControl API рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

@ jzabroski рдЖрдк рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ

#requires -PSEdition Desktop
# versus
#requires -PSEdition Core

рдмрд╕ рдПрдХ рддреНрд╡рд░рд┐рдд рдЯрд┐рдкреНрдкрдгреА рд╣реИ рдХрд┐ @rjmholt рдиреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рдПрдХ рдЪрд░реНрдЪрд╛ рд╢реБрд░реВ рдХрд░ рджреА рд╣реИ рдХрд┐ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ: # 13129ред

рд╕рд╛рде рд╣реА, # 6817 рдФрд░ # 10967 рдЕрдзрд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХ рдмрд╛рд░ рддреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рддреА рд╣реИред
(рдЙрдирдХрд╛ рдПрдХ рд╣реА рдореВрд▓ рдХрд╛рд░рдг рд╣реИ, https://github.com/PowerShell/PowerShell/issues/10967#issuecomment-561843650 рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред

рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ , + рд╕реЗ рдЕрдзрд┐рдХ рдордЬрдмреВрдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ PowerShell рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реИред IMHOред

@rjmholt рдиреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рдПрдХ рдЪрд░реНрдЪрд╛ рд╢реБрд░реВ рдХрд░ рджреА рд╣реИ

рдореБрдЭреЗ рдХрд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдЪрд░реНрдЪрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдирд╣реАрдВ рд╣реИ

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

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

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

HumanEquivalentUnit picture HumanEquivalentUnit  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

pcgeek86 picture pcgeek86  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rkeithhill picture rkeithhill  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

MaximoTrinidad picture MaximoTrinidad  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

SteveL-MSFT picture SteveL-MSFT  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ