ืชื‘ื ื™ืช ืœื‘ื•ื˜ ื˜ืœื’ืจื ืคืฉื•ื˜ ืœืชืœืžื™ื“ื™ ื‘ื™ืช ืกืคืจ ื‘ื›ื™ืชื•ืช ื–'-ื˜' ื‘ืืžืฆืขื•ืช Powershell

ื‘ืฉื™ื—ื•ืช ืขื ื—ื‘ืจื” ืœืžื“ืชื™ ืคืชืื•ื ืฉื™ืœื“ื™ื ื‘ื›ื™ืชื•ืช ื—'-ื™' ื‘ื‘ื™ืช ื”ืกืคืจ ืฉืœื”ื ืœื ืžืœืžื“ื™ื ื‘ื›ืœืœ ืชื›ื ื•ืช. ื•ื•ืจื“, ืืงืกืœ ื•ื”ื›ืœ. ืื™ืŸ ืœื•ื’ื•, ืืคื™ืœื• ืœื ืคืกืงืœ, ืืคื™ืœื• ืœื VBA ืขื‘ื•ืจ ืืงืกืœ.

ื”ื•ืคืชืขืชื™ ืžืื•ื“, ืคืชื—ืชื™ ืืช ื”ืื™ื ื˜ืจื ื˜ ื•ื”ืชื—ืœืชื™ ืœืงืจื•ื -
ืื—ืช ื”ืžืฉื™ืžื•ืช ืฉืœ ื‘ื™ืช ืกืคืจ ืžืชืžื—ื” ื”ื™ื ืœืงื“ื ืืช ื—ื™ื ื•ืš ื“ื•ืจ ื—ื“ืฉ ื”ืขื•ืžื“ ื‘ืชื ืื™ ื—ื‘ืจืช ื”ืžื™ื“ืข ื‘ืจืžืช ื”ืชืคืชื—ื•ืชื• ื•ืื•ืจื— ื—ื™ื™ื•.
ืงื•ืจืก ื–ื” ื™ืืคืฉืจ ืœืกื˜ื•ื“ื ื˜ื™ื ืœื’ื‘ืฉ ื‘ืคื•ืขืœ ืืช ื”ื™ื“ืข ืฉืœื”ื ืขืœ ื”ืžื‘ื ื™ื ื”ื‘ืกื™ืกื™ื™ื ืฉืœ ืฉืคืช ื”ืชื›ื ื•ืช ืคืกืงืœ. (ืžืชื•ืš ื”ืชื•ื›ื ื™ืช ืฉืœ ืžื›ื•ืŸ ื›ื•ืฉืจ ื›ืœืฉื”ื• ืœืฉื ืช 2017)

ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ, ื”ื—ืœื˜ืชื™ ืœื”ืงื“ื™ืฉ ื›ืžื” ืฉืขื•ืช ื•ืœืฉืจื˜ื˜ ื“ื•ื’ืžื” ืฉืœ "ืื™ืš ืœื™ืฆื•ืจ ื‘ื•ื˜ ืคืฉื•ื˜ ืœืชืœืžื™ื“ื™ ื‘ื™ืช ืกืคืจ".

ืžืชื—ืช ืœื—ืชื•ืš ื™ืฉ ืื™ืš ืœื›ืชื•ื‘ ืขื•ื“ ื‘ื•ื˜ ืคืฉื•ื˜ ื‘-Powershell ื•ืœื’ืจื•ื ืœื• ืœืขื‘ื•ื“ ืœืœื webhook, IPs ืœื‘ื ื™ื, ืฉืจืชื™ื ื™ื™ืขื•ื“ื™ื™ื, ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ืคืจื•ืกื•ืช ื‘ืขื ืŸ ื•ื›ืŸ ื”ืœืื” - ื‘ืžื—ืฉื‘ ื‘ื™ืชื™ ืจื’ื™ืœ ืขื Windows ืจื’ื™ืœ.

TLDR: ืขื•ื“ ืžืืžืจ ืžืฉืขืžื ืขื ืฉื’ื™ืื•ืช ื“ืงื“ื•ืงื™ื•ืช ื•ืขื•ื‘ื“ืชื™ื•ืช, ืื™ืŸ ืžื” ืœืงืจื•ื, ืื™ืŸ ื”ื•ืžื•ืจ, ืื™ืŸ ืชืžื•ื ื•ืช.

ืื™ืŸ ืฉื•ื ื—ื“ืฉ ื‘ื›ืชื‘ื”, ื›ืžืขื˜ ื›ืœ ืžื” ืฉื ื›ืชื‘ ืงื•ื“ื ื›ื‘ืจ ื”ื™ื” ื‘-Habrรฉ, ืœืžืฉืœ ื‘ื›ืชื‘ื•ืช ื”ื•ืจืื•ืช: ื›ื™ืฆื“ ืœื™ืฆื•ืจ ื‘ื•ื˜ื™ื ื‘ื˜ืœื’ืจื ะธ ื‘ื•ื˜ ื˜ืœื’ืจื ืœืžื ื”ืœ ืžืขืจื›ืช.
ื™ืชืจื” ืžื›ืš, ื”ืžืืžืจ ืžื™ื•ืชืจ ื‘ื›ื•ื•ื ื” ื›ื“ื™ ืœื ืœื”ืชื™ื™ื—ืก ื›ืœ ืคืขื ืœืกืคืจื•ืช ื—ื™ื ื•ื›ื™ืช. ืื™ืŸ ื”ืชื™ื™ื—ืกื•ืช ืœ-Gang 4, PowerShell Deep Dives ืื•, ื ื ื™ื—, ืœ-5 ืขืžื•ื“ื™ ื”ืชื•ื•ืš ืฉืœ ื”-AWS Architected Well-Framework ื‘ื˜ืงืกื˜.

ื‘ืžืงื•ื ื”ืงื“ืžื”, ืืชื” ื™ื›ื•ืœ ืœื“ืœื’

ืืชื” ืžื•ื–ืžืŸ ืœื“ืœื’ื‘ืฉื ืช 2006, ืžื™ืงืจื•ืกื•ืคื˜ ืคืจืกืžื” ืืช PowerShell 1.0 ืขื‘ื•ืจ Windows XP, Vista ื•- Server 2003 ืฉื”ื™ื• ืื–. ื‘ืžื•ื‘ื ื™ื ืžืกื•ื™ืžื™ื, ื–ื” ื”ื—ืœื™ืฃ ื“ื‘ืจื™ื ื›ืžื• ืกืงืจื™ืคื˜ื™ื ืฉืœ cmdbat, ืกืงืจื™ืคื˜ื™ื vb, Windows Script Host ื•-JScript.

ืืคื™ืœื• ืขื›ืฉื™ื•, PowerShell ื™ื›ื•ืœ ืœื”ื™ื—ืฉื‘ ืจืง ื›ืฉืœื‘ ื”ื‘ื ืื—ืจื™ ืืคืฉืจื•ื™ื•ืช ื”ืœื•ื’ื•, ื‘ืžืงื•ื ื“ืœืคื™ ืฉื›ื ืจืื” ืขื“ื™ื™ืŸ ื‘ืฉื™ืžื•ืฉ (ืื• ืžืฉื”ื• ื™ืฉืŸ ื™ื•ืชืจ), ืœืžืจื•ืช ื”ื ื•ื›ื—ื•ืช ืฉืœ ืœื•ืœืื•ืช, ืžื—ืœืงื•ืช, ืคื•ื ืงืฆื™ื•ืช, ืงืจื™ืื•ืช ืฉืœ MS GUI, ืื™ื ื˜ื’ืจืฆื™ื” ืฉืœ Git ื•ื›ืŸ ื”ืœืื”.

ืžืฉืชืžืฉื™ื ื‘-Powershell ืœืขืชื™ื ืจื—ื•ืงื•ืช ื™ื—ืกื™ืช; ืืชื” ื™ื›ื•ืœ ืœื”ื™ืชืงืœ ื‘ื• ืจืง ื‘ืฆื•ืจื” ืฉืœ PowerShell Core, VMware vSphere PowerCLI, Azure PowerShell, MS Exchange, Desired State Configuration, PowerShell Web Access ื•ืขื•ื“ ืชืจื™ืกืจ ืชื•ื›ื ื™ื•ืช ื•ืคื•ื ืงืฆื™ื•ืช ื‘ืฉื™ืžื•ืฉ ื ื“ื™ืจ. ืื•ืœื™ ื”ื•ื ื™ืงื‘ืœ ืจื•ื— ืฉื ื™ื™ื” ืขื ื”ืฉื—ืจื•ืจ WSL2, ืื‘ืœ ื–ื” ืœื ื‘ื“ื™ื•ืง.

ืœ- Powershell ื™ืฉ ื’ื ืฉืœื•ืฉื” ื™ืชืจื•ื ื•ืช ื’ื“ื•ืœื™ื:

  1. ื–ื” ื™ื—ืกื™ืช ืคืฉื•ื˜, ื™ืฉ ื”ืจื‘ื” ืกืคืจื•ืช ื•ื“ื•ื’ืžืื•ืช ืขืœ ื–ื”, ื•ืืคื™ืœื• ื‘ืจื•ืกื™ืช, ืœืžืฉืœ, ืžืืžืจ ืขืœ Foreach - ืžื”ืกืคืจ PowerShell ืœืขื•ืžืง - ืขืœ ื”ื”ื‘ื“ืœ () ื•-{}
  2. ื”ื•ื ื”ื•ืœืš ืขื ื”ืขื•ืจืš ISE, ื›ืœื•ืœ ืขื Windows. ื™ืฉ ืฉื ืืคื™ืœื• ืกื•ื’ ืฉืœ ื ื™ืคื•ื™ ื‘ืื’ื™ื.
  3. ืงืœ ืœื”ืชืงืฉืจ ืžืžื ื• ืจื›ื™ื‘ื™ื ืœื‘ื ื™ื™ืช ืžืžืฉืง ื’ืจืคื™.

0. ื”ื›ื ื”.

ื ืฆื˜ืจืš:

  • Windows PC (ื™ืฉ ืœื™ ื•ื•ื™ื ื“ื•ืก 10)
  • ืœืคื—ื•ืช ืกื•ื’ ื›ืœืฉื”ื• ืฉืœ ื’ื™ืฉื” ืœืื™ื ื˜ืจื ื˜ (ื“ืจืš NAT ืœืžืฉืœ)
  • ืœืžื™ ืฉื™ืฉ ื’ื™ืฉื” ืžื•ื’ื‘ืœืช ืœื˜ืœื’ืจื - ืคืจื™ื’ื™ื™ื˜ ืžื•ืชืงืŸ ื•ืžื•ื’ื“ืจ ื‘ื“ืคื“ืคืŸ, ื‘ืžืงืจื™ื ืงืฉื™ื, ื™ื—ื“ ืขื Symple DNS Crypt
  • ื™ืฉ ืœืงื•ื— ื˜ืœื’ืจื ืขื•ื‘ื“ ื‘ื˜ืœืคื•ืŸ ืฉืœืš
  • ื”ื‘ื ืช ื”ื™ืกื•ื“ื•ืช ืžืื•ื“ - ืžื”ื• ืžืฉืชื ื”, ืžืขืจืš, ืœื•ืœืื”.

ืคืชื— ื•ืงืจื ืžืืžืจื™ื - ื”ื•ืจืื•ืช: ื›ื™ืฆื“ ืœื™ืฆื•ืจ ื‘ื•ื˜ื™ื ื‘ื˜ืœื’ืจื ะธ ื‘ื•ื˜ ื˜ืœื’ืจื ืœืžื ื”ืœ ืžืขืจื›ืช

1. ื‘ื•ืื• ื ื™ืฆื•ืจ ื‘ื•ื˜ ื‘ื“ื™ืงื” ื ื•ืกืฃ.

ืžื›ื™ื•ื•ืŸ ืฉื›ื•ืœื ื›ื‘ืจ ื™ื•ื“ืขื™ื ืืช ื–ื”, ื•ื›ื‘ืจ ืงืจื”, ืืคืฉืจ ื’ื ืœื“ืœื’ ืขืœ ื–ื”ื›ืคื™ ืฉื ืืžืจ ื‘ืžืืžืจ ืœืžืขืœื” - ืงื•ื“ื ื›ืœ, ื‘ื•ื˜ ืœื˜ืœื’ืจื - ื–ื” ืขื“ื™ื™ืŸ ื™ื™ืฉื•ื ืฉืคื•ืขืœ ื‘ืฆื“ ืฉืœืš ื•ืžื’ื™ืฉ ื‘ืงืฉื•ืช ืœ- Telegram Bot API. ื™ืชืจื” ืžื›ืš, ื”-API ื‘ืจื•ืจ - ื”ื‘ื•ื˜ ื ื™ื’ืฉ ืœื›ืชื•ื‘ืช URL ืกืคืฆื™ืคื™ืช ืขื ืคืจืžื˜ืจื™ื, ื•ื˜ืœื’ืจื ืžื’ื™ื‘ื” ืขื ืื•ื‘ื™ื™ืงื˜ JSON.

ื‘ืขื™ื•ืช ืงืฉื•ืจื•ืช: ืื ื‘ื“ืจืš ืœื ื™ื“ื•ืขื” ืืชื” ืœื•ืงื— ืงื•ื“ ื›ืœืฉื”ื• ืžืื•ื‘ื™ื™ืงื˜ JSON ื•ืื™ื›ืฉื”ื• ืฉื•ืœื— ืื•ืชื• ืœื‘ื™ืฆื•ืข (ืœื ื‘ื›ื•ื•ื ื”), ื”ืงื•ื“ ื™ื‘ื•ืฆืข ืขื‘ื•ืจืš.

ืชื”ืœื™ืš ื”ื™ืฆื™ืจื” ืžืชื•ืืจ ื‘ืฉื ื™ ืžืืžืจื™ื ืœืžืขืœื”, ืื‘ืœ ืื ื™ ื—ื•ื–ืจ: ื‘ืžื‘ืจืง ืื ื—ื ื• ืคื•ืชื—ื™ื ืื ืฉื™ ืงืฉืจ, ืžื—ืคืฉื™ื ืืช @botfather, ืื•ืžืจื™ื ืœื• /newbot, ื™ื•ืฆืจื™ื ื‘ื•ื˜ Botfortest12344321, ืงื•ืจืื™ื ืœื• Mynext1234bot ื•ืžืงื‘ืœื™ื ื”ื•ื“ืขื” ืขื ืžืคืชื— ื™ื™ื—ื•ื“ื™ ืฉืœ ื˜ื•ืคืก 1234544311:AbcDefNNNNNNNNNNNNNN

ืฉืžืจื• ืขืœ ื”ืžืคืชื— ื•ืืœ ืชืชื ื• ืื•ืชื•!

ืื– ืืชื” ื™ื›ื•ืœ ืœื”ื’ื“ื™ืจ ืืช ื”ื‘ื•ื˜, ืœืžืฉืœ, ืœืืกื•ืจ ืœื”ื•ืกื™ืฃ ืื•ืชื• ืœืงื‘ื•ืฆื•ืช, ืื‘ืœ ื‘ืฉืœื‘ื™ื ื”ืจืืฉื•ื ื™ื ื–ื” ืœื ื”ื›ืจื—ื™.

ื‘ื•ืื• ื ื‘ืงืฉ ืž-BotFather "/mybot" ื•ื ืชืื™ื ืืช ื”ื”ื’ื“ืจื•ืช ืื ืžืฉื”ื• ืœื ืžื•ืฆื ื—ืŸ ื‘ืขื™ื ื™ื ื•.

ื‘ื•ืื• ื ืคืชื— ืฉื•ื‘ ืืช ืื ืฉื™ ื”ืงืฉืจ, ื ืžืฆื ืฉื ืืช @Botfortest12344321 (ื—ื•ื‘ื” ืœื”ืชื—ื™ืœ ืืช ื”ื—ื™ืคื•ืฉ ืขื @), ื ืœื—ืฅ ืขืœ "ื”ืชื—ืœ" ื•ื ื›ืชื•ื‘ ืœื‘ื•ื˜ "/Glory to the Robots". ื”ืกื™ืžืŸ / ื ื“ืจืฉ, ืื™ืŸ ืฆื•ืจืš ื‘ื”ืฆืขื•ืช ืžื—ื™ืจ.
ื”ื‘ื•ื˜, ื›ืžื•ื‘ืŸ, ืœื ื™ืขื ื” ืขืœ ื›ืœื•ื.

ื‘ื•ืื• ื ื‘ื“ื•ืง ืฉื”ื‘ื•ื˜ ื ื•ืฆืจ ื•ื ืคืชื— ืื•ืชื•.

api.telegram.org/bot1234544311:AbcDefNNNNNNNNNNNNNN/getMe
ื›ืืฉืจ 1234544311:AbcDefNNNNNNNNNNNNNN ื”ื•ื ื”ืžืคืชื— ืฉื”ืชืงื‘ืœ ื‘ืขื‘ืจ,
ื•ืžืงื‘ืœื™ื ืฉื•ืจื” ื›ืžื•
{"ok":true,"result":{""}}

ื™ืฉ ืœื ื• ืืช ื”ื‘ื™ื˜ื•ื™ ื”ืกื•ื“ื™ ื”ืจืืฉื•ืŸ (ืืกื™ืžื•ืŸ). ืขื›ืฉื™ื• ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื’ืœื•ืช ืืช ื”ืžืกืคืจ ื”ืกื•ื“ื™ ื”ืฉื ื™ - ื”ืžื–ื”ื” ืฉืœ ื”ืฆ'ืื˜ ืขื ื”ื‘ื•ื˜. ื›ืœ ืฆ'ืื˜, ืงื‘ื•ืฆื” ื•ื›ื•' ื”ื•ื ืื™ื ื“ื™ื‘ื™ื“ื•ืืœื™ ื•ื™ืฉ ืœื• ืžืกืคืจ ืžืฉืœื• (ืœืขื™ืชื™ื ืขื ืžื™ื ื•ืก - ืœืงื‘ื•ืฆื•ืช ืคืชื•ื—ื•ืช). ื›ื“ื™ ืœื‘ืจืจ ืืช ื”ืžืกืคืจ ื”ื–ื”, ืขืœื™ื ื• ืœื‘ืงืฉ ื‘ื“ืคื“ืคืŸ (ืœืžืขืฉื”, ื–ื” ื›ืœืœ ืœื ื ื—ื•ืฅ ื‘ื“ืคื“ืคืŸ, ืื‘ืœ ืœื”ื‘ื ื” ื˜ื•ื‘ื” ื™ื•ืชืจ ืืคืฉืจ ืœื”ืชื—ื™ืœ ืื™ืชื•) ืืช ื”ื›ืชื•ื‘ืช (ื›ืืฉืจ 1234544311:NNNNNNNNNN ื”ื•ื ื”ืืกื™ืžื•ืŸ ืฉืœืš

https://api.telegram.org/bot1234544311:NNNNNNNNN/getUpdates

ื•ืชืงื‘ืœ ืชื’ื•ื‘ื” ื›ืžื•

{"ok":true,"result":[{"update_id":...,... ืฆ'ืื˜":{"ืชึฐืขื•ึผื“ึทืช ื–ึถื”ื•ึผืช":123456789

ืื ื—ื ื• ืฆืจื™ื›ื™ื chat_id.

ื‘ื•ืื• ื ื‘ื“ื•ืง ืฉืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื›ืชื•ื‘ ืœืฆ'ืื˜ ื‘ืื•ืคืŸ ื™ื“ื ื™: ื”ืชืงืฉืจ ืœื›ืชื•ื‘ืช ืžื”ื“ืคื“ืคืŸ

https://api.telegram.org/botะฒะฐัˆั‚ะพะบะตะฝ/sendMessage?chat_id=123456789&text="Life is directed motion"

ืื ืืชื” ืžืงื‘ืœ ื”ื•ื“ืขื” ืžื‘ื•ื˜ ื‘ืฆ'ืื˜ ืฉืœืš, ื‘ืกื“ืจ, ืืชื” ืขื•ื‘ืจ ืœืฉืœื‘ ื”ื‘ื.

ื›ืš (ื“ืจืš ื”ื“ืคื“ืคืŸ) ืชืžื™ื“ ืืคืฉืจ ืœื‘ื“ื•ืง ื”ืื ื™ืฉ ื‘ืขื™ื•ืช ื‘ื™ืฆื™ืจืช ื”ืงื™ืฉื•ืจื™ื, ืื• ืฉืžืฉื”ื• ืžื•ืกืชืจ ืื™ืคืฉื”ื• ื•ืœื ืขื•ื‘ื“.

ืžื” ืฉืืชื” ืฆืจื™ืš ืœื“ืขืช ืœืคื ื™ ืฉืชืžืฉื™ืš ืœืงืจื•ื

ืœื˜ืœื’ืจื ื™ืฉ ื›ืžื” ืกื•ื’ื™ื ืฉืœ ืฆ'ืื˜ื™ื ืงื‘ื•ืฆืชื™ื™ื (ืคืชื•ื—, ืกื’ื•ืจ). ืขื‘ื•ืจ ืฆ'ืื˜ื™ื ืืœื”, ื—ืœืง ืžื”ืคื•ื ืงืฆื™ื•ืช (ืœืžืฉืœ, id) ืฉื•ื ื•ืช, ืžื” ืฉืœืขืชื™ื ื’ื•ืจื ืœื‘ืขื™ื•ืช ืžืกื•ื™ืžื•ืช.

ื‘ื•ืื• ื ื ื™ื— ืฉื–ื” ืกื•ืฃ 2019, ื•ืืคื™ืœื• ื”ื’ื™ื‘ื•ืจ ืฉืœ ื–ืžื ื ื•, Man-Orchestra ื”ื™ื“ื•ืข (ืžื ื”ืœ, ืขื•ืจืš ื“ื™ืŸ, ืžื•ืžื—ื” ืื‘ื˜ื—ืช ืžื™ื“ืข, ืžืชื›ื ืช ื•ืœืžืขืฉื” MVP) Evgeniy V. ืžื‘ื“ื™ืœ ื‘ื™ืŸ ื”ืžืฉืชื ื” $i ืœืžืขืจืš, ืฉื•ืœื˜ ื‘ืœื•ืœืื•ืช, ืชืจืื” ื‘ืฉื ืชื™ื™ื ื”ืงืจื•ื‘ื•ืช ืชืฉืœื•ื˜ ื‘- Chocolatey, ื•ืื– ืขื™ื‘ื•ื“ ืžืงื‘ื™ืœ ืขื PowerShell ะธ ForEach-Object ืžืงื‘ื™ืœ ื–ื” ื™ื‘ื•ื.

1. ืื ื—ื ื• ื—ื•ืฉื‘ื™ื ืžื” ื”ื‘ื•ื˜ ืฉืœื ื• ื™ืขืฉื”

ืœื ื”ื™ื• ืœื™ ืจืขื™ื•ื ื•ืช, ื”ื™ื™ืชื™ ืฆืจื™ืš ืœื—ืฉื•ื‘. ื›ื‘ืจ ื›ืชื‘ืชื™ ืžื—ื‘ืจืช ื‘ื•ื˜. ืœื ืจืฆื™ืชื™ ืœื™ืฆื•ืจ ื‘ื•ื˜ "ืฉืฉื•ืœื— ืžืฉื”ื• ืœืื ืฉื”ื•". ื›ื“ื™ ืœื”ืชื—ื‘ืจ ืœ-Azure ืฆืจื™ืš ื›ืจื˜ื™ืก ืืฉืจืื™, ืื‘ืœ ืžืื™ืคื” ื”ืกื˜ื•ื“ื ื˜ ืžืฉื™ื’ ืื•ืชื•? ื™ืฉ ืœืฆื™ื™ืŸ ืฉื”ื›ืœ ืœื ื›ืœ ื›ืš ื ื•ืจื: ื”ืขื ื ื™ื ื”ืจืืฉื™ื™ื ื ื•ืชื ื™ื ืื™ื–ื•ืฉื”ื™ ืชืงื•ืคืช ื‘ื“ื™ืงื” ื‘ื—ื™ื ื (ืื‘ืœ ืขื“ื™ื™ืŸ ืฆืจื™ืš ืžืกืคืจ ื›ืจื˜ื™ืก ืืฉืจืื™ - ื•ื ืจืื” ืฉื™ื—ื•ื™ื‘ ืžื–ื” ื“ื•ืœืจ. ืื ื™ ืœื ื–ื•ื›ืจ ืื ื–ื” ื”ื•ื—ื–ืจ ืžืื•ื—ืจ ื™ื•ืชืจ.)

ื‘ืœื™ AI ML ื–ื” ืœื ื›ืœ ื›ืš ืžืขื ื™ื™ืŸ ืœืขืฉื•ืช ื‘ื•ื˜-ืขื ื™-ืžืฉื•ืจืจ-ืื•ืจื’.

ื”ื—ืœื˜ืชื™ ืœืขืฉื•ืช ื‘ื•ื˜ ืฉื™ื–ื›ื™ืจ ืœื™ (ืื• ืœื ืœื™) ืžื™ืœื™ื ื‘ืื ื’ืœื™ืช ืžื”ืžื™ืœื•ืŸ.
ื›ื“ื™ ืœื”ื™ืžื ืข ืžื”ืชืขืกืงื•ืช ื‘ืžืกื“ ื”ื ืชื•ื ื™ื, ื”ืžื™ืœื•ืŸ ื™ืื•ื—ืกืŸ ื‘ืงื•ื‘ืฅ ื˜ืงืกื˜ ื•ื™ืขื•ื“ื›ืŸ ื‘ืื•ืคืŸ ื™ื“ื ื™.
ื‘ืžืงืจื” ื–ื”, ื”ืžืฉื™ืžื” ื”ื™ื ืœื”ืจืื•ืช ืืช ื™ืกื•ื“ื•ืช ื”ืขื‘ื•ื“ื”, ื•ืœื ืœื™ืฆื•ืจ ืœืคื—ื•ืช ืžื•ืฆืจ ืžื•ื’ืžืจ ื—ืœืงื™ืช.

2. ืžื ืกื™ื ืžื” ื•ืื™ืš ื‘ืคืขื ื”ืจืืฉื•ื ื”

ื‘ื•ืื• ื ื™ืฆื•ืจ ืชื™ืงื™ื™ื” C:poshtranslate
ืจืืฉื™ืช, ื‘ื•ืื• ื ืจืื” ืื™ื–ื” ืกื•ื’ ืฉืœ Powershell ื™ืฉ ืœื ื•, ื‘ื•ืื• ื ืฉื™ืง ืืช ISE ื“ืจืš start-run
powershell ise
ืื• ืžืฆื ืืช Powershell ISE ื‘ืชื•ื›ื ื•ืช ื”ืžื•ืชืงื ื•ืช.
ืœืื—ืจ ื”ื”ืฉืงื”, "ืกื•ื’ ืฉืœ ืขื•ืจืš" ื”ืžื•ื›ืจ ื”ืจื’ื™ืœ ื™ื™ืคืชื—; ืื ืื™ืŸ ืฉื“ื” ื˜ืงืกื˜, ืืชื” ืชืžื™ื“ ื™ื›ื•ืœ ืœืœื—ื•ืฅ ืขืœ "ืงื•ื‘ืฅ - ืฆื•ืจ ื—ื“ืฉ".

ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื”ื’ืจืกื” ืฉืœ powershell - ื›ืชื•ื‘ ื‘ืฉื“ื” ื”ื˜ืงืกื˜:

get-host 

ื•ื”ืงืฉ F5.

Powershell ืชืฆื™ืข ืœืฉืžื•ืจ - "ื”ืกืงืจื™ืคื˜ ืฉืืชื” ืขื•ืžื“ ืœื”ืคืขื™ืœ ื™ื™ืฉืžืจ.", ืื ื• ืžืกื›ื™ืžื™ื, ื•ื ืฉืžื•ืจ ืืช ื”ืงื•ื‘ืฅ ืž-powershell ืขื ื”ืฉื ื‘-C: poshtranslate myfirstbotBT100.

ืœืื—ืจ ื”ื”ืฉืงื”, ื‘ื—ืœื•ืŸ ื”ื˜ืงืกื˜ ื”ืชื—ืชื•ืŸ ื ืงื‘ืœ ื˜ื‘ืœืช ื ืชื•ื ื™ื:

Name             : Windows PowerShell ISE Host
Version          : 5.1.(ะธ ั‚ะฐะบ ะดะฐะปะตะต)

ื™ืฉ ืœื™ ืžืฉื”ื• 5.1, ื–ื” ืžืกืคื™ืง. ืื ื™ืฉ ืœืš Windows 7/8 ื™ืฉืŸ ืื– ืœื ืขื ื™ื™ืŸ ื’ื“ื•ืœ - ืœืžืจื•ืช ืฉ-PowerShell ื™ื”ื™ื” ืฆื•ืจืš ืœืขื“ื›ืŸ ืœื’ืจืกื” 5 - ืœืžืฉืœ. ื”ื•ืจืื•ืช.

ื”ืงืœื“ Get-Date ื‘ืฉื•ืจืช ื”ืคืงื•ื“ื” ืœืžื˜ื”, ื”ืงืฉ Enter, ื”ืกืชื›ืœ ืขืœ ื”ืฉืขื”, ืขื‘ื•ืจ ืืœ ืชื™ืงื™ื™ืช ื”ืฉื•ืจืฉ ืขื ื”ืคืงื•ื“ื”
cd
ื•ื ืงื” ืืช ื”ืžืกืš ืขื ื”ืคืงื•ื“ื” cls (ืœื, ืืชื” ืœื ืฆืจื™ืš ืœื”ืฉืชืžืฉ ื‘-rm)

ืขื›ืฉื™ื• ื‘ื•ืื• ื ื‘ื“ื•ืง ืžื” ืขื•ื‘ื“ ื•ืื™ืš - ื‘ื•ืื• ื ื›ืชื•ื‘ ืืคื™ืœื• ืœื ืืช ื”ืงื•ื“, ืืœื ืฉืชื™ ืฉื•ืจื•ืช, ื•ื ื ืกื” ืœื”ื‘ื™ืŸ ืžื” ื”ื ืขื•ืฉื™ื. ื‘ื•ืื• ื ืขื™ืจ ืืช ื”ืฉื•ืจื” ืขื get-host ืขื ื”ืกืžืœ # ื•ื ื•ืกื™ืฃ ืžืขื˜.

# ะŸั€ะธะผะตั€ ัˆะฐะฑะปะพะฝะฐ ะฑะพั‚ะฐ 
# get-host
<# ัั‚ะพ ะฟั€ะธะผะตั€ ะผะฝะพะณะพัั‚ั€ะพั‡ะฝะพะณะพ ะบะพะผะผะตะฝั‚ะฐั€ะธั #>
$TimeNow = Get-Date
$TimeNow

(ืžื” ืฉืžืขื ื™ื™ืŸ ื”ื•ื ืฉื‘ืจืฉื™ืžื” ื”ื ืคืชื—ืช ืฉืœ ืขื™ืฆื•ื‘ ื”ืงื•ื“ ื‘-Habrรฉ ื™ืฉ ืฉืชื™ ืชืจื™ืกืจ ืืคืฉืจื•ื™ื•ืช - ืื‘ืœ Powershell ืœื ืฉื. Dos ื™ืฉ. Perl ื ืžืฆื ืฉื.)

ื•ื‘ื•ืื• ื ืจื™ืฅ ืืช ื”ืงื•ื“ ืขืœ ื™ื“ื™ ืœื—ื™ืฆื” ืขืœ F5 ืื• ">" ืžื”-GUI.

ืื ื• ืžืงื‘ืœื™ื ืืช ื”ืคืœื˜ ื”ื‘ื:

Saturday, December 8, 2019 21:00:50 PM (ะธะปะธ ั‡ั‚ะพ-ั‚ะพ ั‚ะธะฟะฐ)

ืขื›ืฉื™ื• ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ืฉื ื™ ื”ืฉื•ืจื•ืช ื”ืืœื” ื•ื›ืžื” ื ืงื•ื“ื•ืช ืžืขื ื™ื™ื ื•ืช ื›ื“ื™ ืฉืœื ื ื—ื–ื•ืจ ืœื–ื” ื‘ืขืชื™ื“.

ื‘ื ื™ื’ื•ื“ ืœืคืกืงืœ (ื•ืœื ืจืง), PowerShell ืขืฆืžื” ืžื ืกื” ืœืงื‘ื•ืข ืื™ื–ื” ืกื•ื’ ืœื”ืงืฆื•ืช ืœืžืฉืชื ื”; ืคืจื˜ื™ื ื ื•ืกืคื™ื ืขืœ ื›ืš ื›ืชื•ื‘ื™ื ื‘ืžืืžืจ ืชื•ื›ื ื™ืช ื—ื™ื ื•ื›ื™ืช ื‘ื ื•ืฉื ื”ืงืœื“ื” ื‘ืฉืคื•ืช ืชื›ื ื•ืช
ืœื›ืŸ, ืขืœ ื™ื“ื™ ื™ืฆื™ืจืช ืžืฉืชื ื” $TimeNow ื•ื”ืงืฆืืช ื”ืขืจืš ืฉืœ ื”ืชืืจื™ืš ื•ื”ืฉืขื” ื”ื ื•ื›ื—ื™ื™ื (Get-Date), ืื ื—ื ื• ืœื ืฆืจื™ื›ื™ื ืœื“ืื•ื’ ื™ื•ืชืจ ืžื“ื™ ืœื’ื‘ื™ ืกื•ื’ ื”ื ืชื•ื ื™ื ืฉื™ื”ื™ื• ืฉื.

ื ื›ื•ืŸ, ื”ื‘ื•ืจื•ืช ื”ื–ื• ืขืœื•ืœื” ืœืคื’ื•ืข ื‘ื”ืžืฉืš, ืื‘ืœ ื–ื” ืœืžืื•ื—ืจ ื™ื•ืชืจ. ืœืžื˜ื” ื‘ื˜ืงืกื˜ ืชื”ื™ื” ื“ื•ื’ืžื”.
ื‘ื•ื ื ืจืื” ืžื” ื™ืฉ ืœื ื•. ื‘ื•ื ื ื‘ืฆืข (ื‘ืฉื•ืจืช ื”ืคืงื•ื“ื”)

$TimeNow | Get-member

ื•ืœืงื‘ืœ ืขืžื•ื“ ืฉืœ ื˜ืงืกื˜ ืœื ืžื•ื‘ืŸ

ื“ื•ื’ืžื” ืœื˜ืงืกื˜ ืœื ืžื•ื‘ืŸ ืžืกืคืจ 1

PS C:> $TimeNow | Get-member
   TypeName: System.DateTime
Name                 MemberType     Definition                                                                                                                                       
----                 ----------     ----------                                                                                                                                       
Add                  <b>Method         </b>datetime Add(timespan value)  
..
DisplayHint          NoteProperty   DisplayHintType DisplayHint=DateTime                                                                                                             
Date                 <b>Property       </b>datetime Date {get;}                                                                                                                             
Year                 Property       int Year {get;}   
..                                                                                                                               
DateTime             ScriptProperty System.Object DateTime {get=if ((& { Set-StrictMode -Version 1; $this.DisplayHint }) -ieq  "Date")...                                         

ื›ืคื™ ืฉืืชื” ื™ื›ื•ืœ ืœืจืื•ืช, ืžืฉืชื ื” ืžืกื•ื’ TypeName: System.DateTime ื ื•ืฆืจ ืขื ื—ื‘ื•ืจื” ืฉืœ ืžืชื•ื“ื•ืช (ื‘ืžื•ื‘ืŸ ืฉืœ ืžื” ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœืขืฉื•ืช ืขื ืื•ื‘ื™ื™ืงื˜ ืžืฉืชื ื” ื–ื”) ื•ืžืืคื™ื™ื ื™ื.

ื‘ื•ืื• ื ืชืงืฉืจ $TimeNow.DayOfYear - ืื ื• ืžืงื‘ืœื™ื ืืช ืžืกืคืจ ื”ื™ื•ื ื‘ืฉื ื”.
ื‘ื•ืื• ื ืชืงืฉืจ $TimeNow.DayOfYear | Get-Member - ืื ื—ื ื• ืžืงื‘ืœื™ื TypeName: System.Int32 ื•ืงื‘ื•ืฆืช ืฉื™ื˜ื•ืช.
ื‘ื•ืื• ื ืชืงืฉืจ $TimeNow.ToUniversalTime() - ื•ืงื‘ืœ ืืช ื”ืฉืขื” ื‘-UTC

ืžื ืคื”

ืœืคืขืžื™ื ืงื•ืจื” ืฉื™ืฉ ืฆื•ืจืš ืœื”ืคืขื™ืœ ืชื•ื›ื ื™ืช ืขื“ ืฉื•ืจื” ืžืกื•ื™ืžืช ื•ืœืจืื•ืช ืืช ืžืฆื‘ ื”ืชื•ื›ื ื™ืช ื‘ืื•ืชื• ืจื’ืข. ืœืžื˜ืจื” ื–ื•, ืœ-ISE ื™ืฉ ืคื•ื ืงืฆื™ื™ืช Debug - ื ืงื•ื“ืช ื ื™ืชื•ืง
ืฉื™ืžื• ื ืงื•ื“ืช ืฉื‘ื™ืจื” ืื™ืคืฉื”ื• ื‘ืืžืฆืข, ื”ืคืขื™ืœื• ืืช ืฉื ื™ ื”ืฉื•ืจื•ืช ื”ืœืœื• ื•ืจืื• ืื™ืš ื”ื”ืคืกืงื” ื ืจืื™ืช.

3. ื”ื‘ื ืช ื”ืื™ื ื˜ืจืืงืฆื™ื” ืขื ื‘ื•ื˜ ื”ื˜ืœื’ืจื

ื›ืžื•ื‘ืŸ, ืืคื™ืœื• ื™ื•ืชืจ ืกืคืจื•ืช ื ื›ืชื‘ื” ืขืœ ืื™ื ื˜ืจืืงืฆื™ื” ืขื ื”ื‘ื•ื˜, ืขื ื›ืœ getpush ื•ื›ืŸ ื”ืœืื”, ืื‘ืœ ื ื•ืฉื ื”ืชื™ืื•ืจื™ื” ื™ื›ื•ืœ ืœื”ื™ื—ืฉื‘ ื‘ืื•ืคืŸ ืื•ืคืฆื™ื•ื ืœื™.

ื‘ืžืงืจื” ืฉืœื ื• ื™ืฉ ืฆื•ืจืš:

  • ืœืžื“ ืœืฉืœื•ื— ืžืฉื”ื• ื‘ื”ืชื›ืชื‘ื•ืช
  • ืœืžื“ ืœืงื‘ืœ ืžืฉื”ื• ืžื”ืชื›ืชื‘ื•ืช

3.1 ืœืœืžื•ื“ ืœืฉืœื•ื— ืžืฉื”ื• ื‘ื”ืชื›ืชื‘ื•ืช ื•ืœืงื‘ืœ ืžืžื ื•

ืงื•ื“ ืงื˜ืŸ - ื—ืœืง 3

Write-output "This is part 3"
$MyToken = "1234544311:AbcDefNNNNNNNNNNNNN"
$MyChatID = "123456789"
$MyProxy = "http://1.2.3.4:5678" 

$TimeNow = Get-Date
$TimeNow.ToUniversalTime()
$ScriptDir = Split-Path $script:MyInvocation.MyCommand.Path
$BotVersion = "BT102"

$MyText01 = "Life is directed motion - " + $TimeNow

$URL4SEND = "https://api.telegram.org/bot$MyToken/sendMessage?chat_id=$MyChatID&text=$MyText01"

Invoke-WebRequest -Uri $URL4SEND

ื•ื‘ืคื“ืจืฆื™ื” ื”ืจื•ืกื™ืช ื‘ืฉืœื‘ ื–ื” ืื ื• ืžืงื‘ืœื™ื ืืช ื”ืฉื’ื™ืื” ืœื ื ื™ืชืŸ ืœื”ืชื—ื‘ืจ ืœืฉืจืช ื”ืžืจื•ื—ืง.

ืื• ืฉืื ื—ื ื• ืœื ืžืงื‘ืœื™ื ืืช ื–ื” - ืชืœื•ื™ ื‘ืžืคืขื™ืœ ื”ื˜ืœืงื•ื ื•ื”ืื ื”-proxy ืžื•ื’ื“ืจ ื•ืคื•ืขืœ
ื•ื‘ื›ืŸ, ื›ืœ ืžื” ืฉื ื•ืชืจ ื”ื•ื ืœื”ื•ืกื™ืฃ ืคืจื•ืงืกื™. ืฉื™ื ืœื‘ ืฉืฉื™ืžื•ืฉ ื‘ืคืจื•ืงืกื™ ืœื ืžื•ืฆืคืŸ ื•ื‘ื“ืจืš ื›ืœืœ ื”ื•ื ืื” ืžืกื•ื›ืŸ ืžืื•ื“ ืœื‘ืจื™ืื•ืชืš.

ื”ืžืฉื™ืžื” ืฉืœ ืžืฆื™ืืช ืคืจื•ืงืกื™ ืขื•ื‘ื“ ื”ื™ื ืœื ืžืื•ื“ ืงืฉื” - ืจื•ื‘ ืคืจื•ืงืกื™ http ืฉืคื•ืจืกืžื• ืขื•ื‘ื“ื™ื. ืื ื™ ื—ื•ืฉื‘ ืฉื”ื—ืžื™ืฉื™ ืขื‘ื“ ื‘ืฉื‘ื™ืœื™.

ืชื—ื‘ื™ืจ ื‘ืืžืฆืขื•ืช ืคืจื•ืงืกื™:

Invoke-WebRequest -Uri $URL4SEND -Proxy $MyProxy

ืื ืืชื” ืžืงื‘ืœ ื”ื•ื“ืขื” ื‘ืฆ'ืื˜ ืฉืœืš ืขื ื‘ื•ื˜, ืื– ื”ื›ืœ ื‘ืกื“ืจ, ืืชื” ื™ื›ื•ืœ ืœื”ืžืฉื™ืš ื”ืœืื”. ืื ืœื, ื”ืžืฉืš ื‘ื ื™ืคื•ื™ ื”ื‘ืื’ื™ื.

ืืชื” ื™ื›ื•ืœ ืœืจืื•ืช ืœืžื” ืžื—ืจื•ื–ืช $URL4SEND ืฉืœืš ื”ื•ืคื›ืช ื•ืœื ืกื•ืช ืœื‘ืงืฉ ื–ืืช ื‘ื“ืคื“ืคืŸ, ื›ืš:

$URL4SEND2 = '"'+$URL4SEND+'"'
start chrome $URL4SEND2 

3.2. ืœืžื“ื ื• ืื™ืš ืœื›ืชื•ื‘ "ืžืฉื”ื•" ื‘ืฆ'ืื˜, ืขื›ืฉื™ื• ื‘ื•ืื• ื ื ืกื” ืœืงืจื•ื ืื•ืชื•

ื‘ื•ืื• ื ื•ืกื™ืฃ ืขื•ื“ 4 ืฉื•ืจื•ืช ื•ื ืจืื” ืžื” ื™ืฉ ื‘ืคื ื™ื ื“ืจืš | ืงื‘ืœ-ื—ื‘ืจ

$URLGET = "https://api.telegram.org/bot$MyToken/getUpdates"
$MyMessageGet = Invoke-WebRequest -Uri $URLGET -Method Get -Proxy $MyProxy
Write-Host "Get-Member"
$MyMessageGet | Get-Member

ื”ื“ื‘ืจ ื”ืžืขื ื™ื™ืŸ ื‘ื™ื•ืชืจ ืžืกื•ืคืง ืœื ื•

Content           Property   string Content {get;}  
ParsedHtml        Property   mshtml.IHTMLDocument2 ParsedHtml {get;}                                    
RawContent        Property   string RawContent {get;set;}

ื‘ื•ื ื ืจืื” ืžื” ื™ืฉ ื‘ื”ื:

Write-Host "ParsedHtml"
$MyMessageGet.ParsedHtml # ั‚ัƒั‚ ะธะฝั‚ะตั€ะตัะฝะพะต
Write-Host "RawContent"
$MyMessageGet.RawContent # ะธ ั‚ัƒั‚ ะธะฝั‚ะตั€ะตัะฝะพะต, ะฝะพ ะตั‰ะต ะบ ั‚ะพะผัƒ ะถะต ะธ ั‡ะธั‚ะฐะตะผะพะต. 
Write-Host "Content"
$MyMessageGet.Content

ืื ื”ื›ืœ ืขื•ื‘ื“ ื‘ืฉื‘ื™ืœืš, ืชืงื‘ืœ ืชื•ืจ ืืจื•ืš ื›ืžื•:

{"ok":true,"result":[{"update_id":12345678,
"message":{"message_id":3,"from":{"id"

ืœืžืจื‘ื” ื”ืžื–ืœ, ื‘ืžืืžืจ ืฉืคื•ืจืกื ื‘ืขื‘ืจ ื‘ื˜ืœื’ืจื ื‘ื•ื˜ ืœืžื ื”ืœ ืžืขืจื›ืช ืฉื•ืจื” ื–ื• (ื›ืŸ, ืœืคื™ $MyMessageGet.RawContent | get-member ื”ื•ื System.String), ื›ื‘ืจ ืคื•ืจืง.

4. ืขื‘ื“ ืืช ืžื” ืฉืืชื” ืžืงื‘ืœ (ืื ื—ื ื• ื›ื‘ืจ ื™ื•ื“ืขื™ื ืื™ืš ืœืฉืœื•ื— ืžืฉื”ื•)

ื›ืคื™ ืฉื›ื‘ืจ ื ื›ืชื‘ ื›ืืŸ, ื”ื“ื‘ืจื™ื ื”ื ื—ื•ืฆื™ื ื‘ื™ื•ืชืจ ื˜ืžื•ื ื™ื ื‘ืชื•ื›ืŸ. ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื–ื” ืžืงืจื•ื‘.

ืจืืฉื™ืช, ื ื›ืชื•ื‘ ืขื•ื“ ื›ืžื” ื‘ื™ื˜ื•ื™ื™ื ืœื‘ื•ื˜ ืžืžืžืฉืง ื”ืื™ื ื˜ืจื ื˜ ืื• ืžื”ื˜ืœืคื•ืŸ

/message1
/message2
/message3

ื•ืขื™ื™ืŸ ื‘ื“ืคื“ืคืŸ ื‘ื›ืชื•ื‘ืช ืฉื ื•ืฆืจื” ื‘ืžืฉืชื ื” $URLGET.

ื ืจืื” ืžืฉื”ื• ื›ืžื•:

{"ok":true,"result":[{"update_id":NNNNNNN,
"message":{"message_id":10, .. "text":"/message1"
"message":{"message_id":11, .. "text":"/message2 
"message":{"message_id":12, .. "text":"/message3 

ืžื” ื–ื”? ืื•ื‘ื™ื™ืงื˜ ืžื•ืจื›ื‘ ื›ืœืฉื”ื• ืžืชื•ืš ืžืขืจื›ื™ื ืฉืœ ืื•ื‘ื™ื™ืงื˜ื™ื ื”ืžื›ื™ืœื™ื ืžื–ื”ื” ื”ื•ื“ืขื” ืžืงืฆื” ืœืงืฆื”, ืžื–ื”ื” ืฆ'ืื˜, ืžื–ื”ื” ืฉืœื™ื—ื” ื•ืขื•ื“ ื”ืจื‘ื” ืžื™ื“ืข.

ืขื ื–ืืช, ืื ื—ื ื• ืœื ืฆืจื™ื›ื™ื ืœื”ื‘ื™ืŸ "ืื™ื–ื” ืกื•ื’ ืฉืœ ื—ืคืฅ ื–ื”" - ื—ืœืง ืžื”ืขื‘ื•ื“ื” ื›ื‘ืจ ื ืขืฉื” ืขื‘ื•ืจื ื•. ื‘ื•ื ื ืจืื” ืžื” ื™ืฉ ื‘ืคื ื™ื:

ืงืจื™ืืช ื”ื•ื“ืขื•ืช ืฉื”ืชืงื‘ืœื• ืื• ื—ืœืง 4

Write-Host "This is part 4" <# ะบะพะฝะตั‡ะฝะพ ัั‚ะฐ ัั‚ั€ะพะบะฐ ะฝะฐะผ ะฝะต ะฝัƒะถะฝะฐ ะฒ ะธั‚ะพะณะพะฒะพะผ ั‚ะตะบัั‚ะต, ะฝะพ ะฟะพ ะฝะตะน ัƒะดะพะฑะฝะพ ะธัะบะฐั‚ัŒ. #> 

$Content4Pars01 = ConvertFrom-Json $MyMessageGet.Content
$Content4Pars01 | Get-Member
$Content4Pars01.result
$Content4Pars01.result[0]
$Content4Pars01.result[0] | Get-Member
$Content4Pars01.result[0].update_id
$Content4Pars01.result[0].message
$Content4Pars01.result[0].message.text
$Content4Pars01.result[1].message.text
$Content4Pars01.result[2].message.text

5. ืžื” ืขืœื™ื ื• ืœืขืฉื•ืช ืขื ื–ื” ืขื›ืฉื™ื•?

ื‘ื•ื ื ืฉืžื•ืจ ืืช ื”ืงื•ื‘ืฅ ืฉื”ืชืงื‘ืœ ืชื—ืช ื”ืฉื myfirstbotBT105 ืื• ืžื” ืฉืืชื” ื”ื›ื™ ืื•ื”ื‘, ืฉื ื” ืืช ื”ื›ื•ืชืจืช ื•ื”ืขื™ืจ ืืช ื›ืœ ื”ืงื•ื“ ืฉื›ื‘ืจ ื ื›ืชื‘ ื‘ืืžืฆืขื•ืช

<#start comment 105 end comment 105#>

ืขื›ืฉื™ื• ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื”ื—ืœื™ื˜ ืื™ืคื” ืœื”ืฉื™ื’ ืืช ื”ืžื™ืœื•ืŸ (ื˜ื•ื‘, ืื™ืคื” - ื‘ื“ื™ืกืง ื‘ืงื•ื‘ืฅ) ื•ืื™ืš ื”ื•ื ื™ื™ืจืื”.

ื›ืžื•ื‘ืŸ, ืืชื” ื™ื›ื•ืœ ืœื›ืชื•ื‘ ืžื™ืœื•ืŸ ืขื ืง ืžืžืฉ ื‘ื˜ืงืกื˜ ืฉืœ ื”ืชืกืจื™ื˜, ืื‘ืœ ื–ื” ืœื’ืžืจื™ ืœื ืœืขื ื™ื™ืŸ.
ืื– ื‘ื•ืื• ื ืจืื” ืขื ืžื” Powershell ื™ื›ื•ืœ ืœืขื‘ื•ื“ ื‘ื“ืจืš ื›ืœืœ.
ื‘ืื•ืคืŸ ื›ืœืœื™, ืœื ืื›ืคืช ืœื• ืขื ืื™ื–ื” ืงื•ื‘ืฅ ืœืขื‘ื•ื“, ื–ื” ืœื ืžืฉื ื” ืœื ื•.
ื™ืฉ ืœื ื• ืืคืฉืจื•ืช ื‘ื—ื™ืจื”: txt (ืืชื” ื™ื›ื•ืœ, ืื‘ืœ ืœืžื”), csv, xml.
ื”ืื ื ื•ื›ืœ ืœืฆืคื•ืช ื‘ื›ื•ืœื? ื‘ื•ื ื ืจืื” ืืช ื›ื•ืœื.
ื‘ื•ืื• ื ื™ืฆื•ืจ ืžื—ืœืงื” MyVocabClassExample1 ื•ืžืฉืชื ื” $MyVocabExample1
ืื ื™ ืฉื ืœื‘ ืฉื”ื›ื™ืชื” ื›ืชื•ื‘ื” ืœืœื $

ืื™ื–ื” ืงื•ื“ ืžืก' 5

write-host "This is part 5"
class MyVocabClassExample1 {
    [string]$Original  # ัะปะพะฒะพ
    [string]$Transcript
    [string]$Translate
    [string]$Example
    [int]$VocWordID # ะพั‡ะตะฝัŒ ะธะฝั‚ะตั€ะตัะฝั‹ะน ะผะพะผะตะฝั‚. ะ˜ัะฟะพะปัŒะทะพะฒะฐะฝะธะต int ั ะตะณะพ ะพะณั€ะฐะฝะธั‡ะตะฝะธัะผะธ ะผะพะถะตั‚ ะฟะพั€ะพะน ะฟั€ะธะฒะพะดะธั‚ัŒ ะบ ะดะธะบะธะผ ะฟะพัะปะตะดัั‚ะฒะธัะผ, ะดะปั ะฟั€ะธะผะตั€ะฐ - ะฝะตะดะฐะฒะฝะธะน ัะปัƒั‡ะฐะน ั SSD HPE. ะ˜ะทะฝะฐั‡ะฐะปัŒะฝะพ ั ะฝะต ัั‚ะฐะป ะดะพะฑะฐะฒะปัั‚ัŒ ัั‚ะพั‚ ัะปะตะผะตะฝั‚, ะฟะพั‚ะพะผ ะฒัะต ะถะต ะดะพะฟะธัะฐะป ะธ ะทะฐะบะพะผะผะตะฝั‚ะธั€ะพะฒะฐะป.
    }

$MyVocabExample1 = [MyVocabClassExample1]::new()
$MyVocabExample1.Original = "Apple"
$MyVocabExample1.Transcript = "[ หˆapษ™l ]"
$MyVocabExample1.Translate = "ะฏะฑะปะพะบะพ"
$MyVocabExample1.Example = "An apple is a sweet, edible fruit produced by an apple tree (Malus domestica)"
# $MyVocabExample1.$VocWordID = 1

$MyVocabExample2 = [MyVocabClassExample1]::new()
$MyVocabExample2.Original = "Pear"
$MyVocabExample2.Transcript = "[ pe(ษ™)r ]"
$MyVocabExample2.Translate = "ะ“ั€ัƒัˆะฐ"
$MyVocabExample2.Example = "The pear (/หˆpษ›ษ™r/) tree and shrub are a species of genus Pyrus"
# $MyVocabExample1.$VocWordID = 2

ื‘ื•ืื• ื ื ืกื” ืœื›ืชื•ื‘ ืืช ื–ื” ืœืงื‘ืฆื™ื ื‘ืืžืฆืขื•ืช ืžื•ึนืคึฐืชึดื™.

ืงืฆืช ืงื•ื“ #5.1

Write-Host $ScriptDir # ะฝะฐะดะตัŽััŒ $ScriptDir ะฒั‹ ะฝะต ะทะฐะบะพะผะผะตะฝั‚ะธั€ะพะฒะฐะปะธ 
$MyFilenameExample01 = $ScriptDir + "Example01.txt"
$MyFilenameExample02 = $ScriptDir + "Example02.txt"
Write-Host $MyFilenameExample01
Out-File  -FilePath $MyFilenameExample01 -InputObject $MyVocabExample1

Out-File  -FilePath $MyFilenameExample01 -InputObject -Append $MyVocabExample2
notepad $MyFilenameExample01

- ื•ืื ื• ืžืงื‘ืœื™ื ืฉื’ื™ืื” ื‘ืฉื•ืจื” Out-File -FilePath $MyFilenameExample01 -InputObject -Append $MyVocabExample2.

ื”ื•ื ืœื ืจื•ืฆื” ืœื”ื•ืกื™ืฃ, ืื”-ืื”, ื›ืžื” ื—ื‘ืœ.

$MyVocabExample3AsArray = @($MyVocabExample1,$MyVocabExample2)
Out-File  -FilePath $MyFilenameExample02 -InputObject $MyVocabExample3AsArray
notepad $MyFilenameExample02

ื‘ื•ื ื ืจืื” ืžื” ืงื•ืจื”. ืชืฆื•ื’ืช ื˜ืงืกื˜ ื ื”ื“ืจืช - ืื‘ืœ ืื™ืš ืœื™ื™ืฆื ืื•ืชื” ื‘ื—ื–ืจื”? ื”ืื ืขืœื™ ืœื”ืฆื™ื’ ืกื•ื’ ืฉืœ ืžืคืจื™ื“ื™ ื˜ืงืกื˜, ื›ื’ื•ืŸ ืคืกื™ืงื™ื?

ื•ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ืืชื” ืžืงื‘ืœ "ืงื•ื‘ืฅ ืขืจื›ื™ื ืžื•ืคืจื“ื™ื ื‘ืคืกื™ืงื™ื (CSV) A ืชืคืกื™ืง ืœื—ื›ื•ืช.
#

$MyFilenameExample03 = $ScriptDir + "Example03.csv"
$MyFilenameExample04 = $ScriptDir + "Example04.csv"
Export-Csv  -Path $MyFilenameExample03 -InputObject $MyVocabExample1 
Export-Csv  -Path $MyFilenameExample03 -InputObject $MyVocabExample2 -Append 
Export-Csv  -Path $MyFilenameExample04 -InputObject $MyVocabExample3AsArray 

ื›ืคื™ ืฉืงืœ ืœืจืื•ืช, MS ืœื ื ื‘ื“ืœืช ื‘ืžื™ื•ื—ื“ ื‘ื”ื™ื’ื™ื•ืŸ ืฉืœื”; ืขื‘ื•ืจ ื”ืœื™ืš ื“ื•ืžื”, ื‘ืžืงืจื” ืื—ื“ ืžืฉืชืžืฉื™ื ื‘-FilePath, ื•ื‘-Path ืื—ืจ.

ื‘ื ื•ืกืฃ, ื‘ืงื•ื‘ืฅ ื”ืฉืœื™ืฉื™ ื”ืฉืคื” ื”ืจื•ืกื™ืช ื ืขืœืžื”, ื‘ืงื•ื‘ืฅ ื”ืจื‘ื™ืขื™ ื”ืชื‘ืจืจ... ื˜ื•ื‘, ืงืจื” ืžืฉื”ื•. #TYPE System.Object[] 00
# "ืกืคื™ืจื”","ืื•ืจืš","LongLength","Rank","SyncRoot","IsReadOnly","IsFixedSize","IsSynchronized"
#
ื‘ื•ื ื ืฉื›ืชื‘ ืืช ื–ื” ืงืฆืช:

Export-Csv  -Path $MyFilenameExample03 -InputObject $MyVocabExample1 -Encoding Unicode
Export-Csv  -Path $MyFilenameExample03 -InputObject $MyVocabExample2 -Append -Encoding Unicode
notepad $MyFilenameExample03
notepad $MyFilenameExample04

ื ืจืื” ืฉื–ื” ืขื–ืจ, ืื‘ืœ ืื ื™ ืขื“ื™ื™ืŸ ืœื ืื•ื”ื‘ ืืช ื”ืคื•ืจืžื˜.

ืื ื™ ื‘ืžื™ื•ื—ื“ ืœื ืื•ื”ื‘ ืืช ื–ื” ืฉืื ื™ ืœื ื™ื›ื•ืœ ืœื”ื›ื ื™ืก ืงื•ื•ื™ื ืžืื•ื‘ื™ื™ืงื˜ ืœืงื•ื‘ืฅ ื™ืฉื™ืจื•ืช.
ืื’ื‘, ืžืื– ืฉื”ืชื—ืœื ื• ืœื›ืชื•ื‘ ืœืงื‘ืฆื™ื, ื”ืื ื ื•ื›ืœ ืœื”ืชื—ื™ืœ ืœื ื”ืœ ื™ื•ืžืŸ ืืชื—ื•ืœ? ื™ืฉ ืœื ื• ื–ืžืŸ ื‘ืชื•ืจ ืžืฉืชื ื”, ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื”ื’ื“ื™ืจ ืืช ืฉื ื”ืงื•ื‘ืฅ.

ื ื›ื•ืŸ, ืขื“ื™ื™ืŸ ืื™ืŸ ืžื” ืœื›ืชื•ื‘, ืื‘ืœ ืืคืฉืจ ืœื—ืฉื•ื‘ ืื™ืš ื”ื›ื™ ื˜ื•ื‘ ืœืกื•ื‘ื‘ ืืช ื”ื™ื•ืžื ื™ื.
ื‘ื•ื ื ื ืกื” ืืช xml ืœืขืช ืขืชื”.

ืงืฆืช xml

$MyFilenameExample05 = $ScriptDir + "Example05.xml"
$MyFilenameExample06 = $ScriptDir + "Example06.xml"
Export-Clixml  -Path $MyFilenameExample05 -InputObject $MyVocabExample1 
Export-Clixml  -Path $MyFilenameExample05 -InputObject $MyVocabExample2 -Append -Encoding Unicode
Export-Clixml  -Path $MyFilenameExample06 -InputObject $MyVocabExample3AsArray
notepad $MyFilenameExample05
notepad $MyFilenameExample06

ืœื™ื™ืฆื•ื ืœ-xml ื™ืฉ ื™ืชืจื•ื ื•ืช ืจื‘ื™ื - ืงืจื™ืื”, ื™ื™ืฆื•ื ืฉืœ ื”ืื•ื‘ื™ื™ืงื˜ ื›ื•ืœื•, ื•ืื™ืŸ ืฆื•ืจืš ื‘ื‘ื™ืฆื•ืข ื”ืขืœืื”.

ื‘ื•ืื• ื ื ืกื” ืงืจื ืงื•ื‘ืฅ xml.

ืงืจื™ืื” ืงื˜ื ื” ืž-xml

$MyFilenameExample06 = $ScriptDir + "Example06.xml"
$MyVocabExample4AsArray = Import-Clixml -Path $MyFilenameExample06
# $MyVocabExample4AsArray 
# $MyVocabExample4AsArray[0]
# ะธ ะฝะตะผะฝะพะณะพ ะพ ัะพะฒะตั€ัˆะตะฝะฝะพ ะฝะตะพั‡ะตะฒะธะดะฝั‹ั… ะฝัŽะฐะฝัะฐั…. Powershell ะฒั€ะตะผั ะพั‚ ะฒั€ะตะผะตะฝะธ ะฒะตะดะตั‚ ัะตะฑั ะฝะต ั‚ะฐะบ, ะบะฐะบ ะฒั€ะพะดะต ะฑั‹ ะบะฐะบ ะฑั‹ ัั‚ะพะธะปะพ ะฑั‹ ะพะถะธะดะฐั‚ัŒ ะฑั‹.
# ะฝะฐะฟั€ะธะผะตั€ ัƒ ะผะตะฝั ัั‚ะธ ะดะฒะฐ ะฒั‹ะฒะพะดะฐ ะพั‚ะปะธั‡ะฐัŽั‚ัั
# Write-Output $MyVocabExample4AsArray 
# write-host $MyVocabExample4AsArray 

ื ื—ื–ื•ืจ ืœืžืฉื™ืžื”. ื›ืชื‘ื ื• ืงื•ื‘ืฅ ื‘ื“ื™ืงื”, ืงืจืื• ืื•ืชื•, ืคื•ืจืžื˜ ื”ืื—ืกื•ืŸ ื‘ืจื•ืจ, ื‘ืžื™ื“ืช ื”ืฆื•ืจืš, ื ื™ืชืŸ ืœื›ืชื•ื‘ ืขื•ืจืš ืงื‘ืฆื™ื ืงื˜ืŸ ื ืคืจื“ ื›ื“ื™ ืœื”ื•ืกื™ืฃ ื•ืœืžื—ื•ืง ืฉื•ืจื•ืช.

ื”ืจืฉื• ืœื™ ืœื”ื–ื›ื™ืจ ืœื›ื ืฉื”ืžืฉื™ืžื” ื”ื™ื™ืชื” ืœื™ืฆื•ืจ ื‘ื•ื˜ ืื™ืžื•ืŸ ืงื˜ืŸ.

ืคื•ืจืžื˜ ืขื‘ื•ื“ื”: ืื ื™ ืฉื•ืœื— ืืช ื”ืคืงื•ื“ื” "ื“ื•ื’ืžื”" ืœื‘ื•ื˜, ื”ื‘ื•ื˜ ืฉื•ืœื— ืœื™ ืžื™ืœื” ื•ืชืขืชื™ืง ืฉื ื‘ื—ืจื• ื‘ืืงืจืื™, ื•ืื—ืจื™ 10 ืฉื ื™ื•ืช ืฉื•ืœื— ืœื™ ืชืจื’ื•ื ื•ื”ืขืจื”. ืื ื• ื™ื•ื“ืขื™ื ืœืงืจื•ื ืคืงื•ื“ื•ืช, ื ืจืฆื” ื’ื ืœืœืžื•ื“ ื›ื™ืฆื“ ืœื‘ื—ื•ืจ ื•ืœื‘ื“ื•ืง ืคืจื•ืงืกื™ ืื•ื˜ื•ืžื˜ื™ืช, ื•ืœืืคืก ืžื•ื ื™ื ืœื”ื•ื“ืขื•ืช ืœืฉื›ื—ื”.

ื‘ื•ืื• ื ื‘ื˜ืœ ืืช ื”ื”ืขืจื•ืช ืขืœ ื›ืœ ืžื” ืฉื”ืขื™ืจ ื‘ืขื‘ืจ ื›ืžื™ื•ืชืจ, ื ื’ื™ื‘ ืขืœ ื”ื“ื•ื’ืžืื•ืช ื”ืžื™ื•ืชืจื•ืช ื›ืขืช ืขื txt ื•-csv, ื•ื ืฉืžื•ืจ ืืช ื”ืงื•ื‘ืฅ ื›ื’ืจืกื” B106

ืื” ื›ืŸ. ื‘ื•ื ื ืฉืœื— ืžืฉื”ื• ืœื‘ื•ื˜ ืฉื•ื‘.

6. ืฉื™ื’ื•ืจ ืžืคื•ื ืงืฆื™ื•ืช ื•ืขื•ื“

ืœืคื ื™ ืขื™ื‘ื•ื“ ื”ืงื‘ืœื”, ืขืœื™ืš ืœื™ืฆื•ืจ ืคื•ื ืงืฆื™ื” ืœืฉืœื™ื—ืช "ืœืคื—ื•ืช ืžืฉื”ื•" ืžืœื‘ื“ ื”ื•ื“ืขืช ื‘ื“ื™ืงื”.

ื›ืžื•ื‘ืŸ ืฉื‘ื“ื•ื’ืžื” ืชื”ื™ื” ืœื ื• ืจืง ืฉืœื™ื—ื” ืื—ืช ื•ืจืง ืขื™ื‘ื•ื“ ืื—ื“, ืื‘ืœ ืžื” ืื ื ืฆื˜ืจืš ืœืขืฉื•ืช ืืช ืื•ืชื• ื”ื“ื‘ืจ ืžืกืคืจ ืคืขืžื™ื?

ืงืœ ื™ื•ืชืจ ืœื›ืชื•ื‘ ืคื•ื ืงืฆื™ื”. ืื–, ื™ืฉ ืœื ื• ืžืฉืชื ื” ืžืกื•ื’ ืื•ื‘ื™ื™ืงื˜ $MyVocabExample4AsArray, ืฉื ืงืจื ืžื”ืงื•ื‘ืฅ, ื‘ืฆื•ืจื” ืฉืœ ืžืขืจืš ืฉืœ ืขื“ ืฉื ื™ ืืœืžื ื˜ื™ื.
ื‘ื•ื ื ืœืš ืœืงืจื•ื.

ื‘ืžืงื‘ื™ืœ, ื ืชืžื•ื“ื“ ืขื ื”ืฉืขื•ืŸ; ื ื–ื“ืงืง ืœื• ืžืื•ื—ืจ ื™ื•ืชืจ (ืœืžืขืฉื”, ื‘ื“ื•ื’ืžื” ื–ื• ืœื ื ืฆื˜ืจืš ืื•ืชื• :)

ืงืฆืช ืงื•ื“ #6.1

Write-Output "This is Part 6"
$Timezone = (Get-TimeZone)
IF($Timezone.SupportsDaylightSavingTime -eq $True){
    $TimeAdjust =  ($Timezone.BaseUtcOffset.TotalSeconds + 3600) } # ะฟั€ะธะฒะตะดะตะฝะฝะพะต ะฒั€ะตะผั
    ELSE{$TimeAdjust = ($Timezone.BaseUtcOffset.TotalSeconds) 
    }
    
function MyFirstFunction($SomeExampleForFunction1){
$TimeNow = Get-Date
$TimeNow.ToUniversalTime()
# $MyText02 = $TimeNow + " " + $SomeExampleForFunction1 # ะธ ะฒะพั‚ ั‚ัƒั‚ ะผั‹ ะฟะพะปัƒั‡ะธะผ ะพัˆะธะฑะบัƒ
$MyText02 = $SomeExampleForFunction1 + " " + $TimeNow # ะฐ ั‚ัƒั‚ ะฝะต ะฟะพะปัƒั‡ะธะผ, ะบั‚ะพ ะดะพะณะฐะดะฐะตั‚ัั ะฟะพั‡ะตะผัƒ - ั‚ะพั‚ ะผะพะปะพะดะตั†.

$URL4SendFromFunction = "https://api.telegram.org/bot$MyToken/sendMessage?chat_id=$MyChatID&text=$MyText02"
Invoke-WebRequest -Uri $URL4SendFromFunction -Proxy $MyProxy
}

ื›ืคื™ ืฉื ื™ืชืŸ ืœืจืื•ืช ื‘ืงืœื•ืช, ื”ืคื•ื ืงืฆื™ื” ืงื•ืจืืช ืœ-$MyToken ื•-$MyChatID, ืฉืงื•ื“ื“ื• ืงื•ื“ื ืœื›ืŸ.

ืื™ืŸ ืฆื•ืจืš ืœืขืฉื•ืช ื–ืืช, ื•ืื $MyToken ื”ื•ื ืื—ื“ ืขื‘ื•ืจ ื›ืœ ื‘ื•ื˜, ืื– $MyChatID ื™ืฉืชื ื” ื‘ื”ืชืื ืœืฆ'ืื˜.

ืขื ื–ืืช, ืžื›ื™ื•ื•ืŸ ืฉื–ื• ื“ื•ื’ืžื”, ื ืชืขืœื ืžืžื ื” ืœืขืช ืขืชื”.

ืžื›ื™ื•ื•ืŸ ืฉ$MyVocabExample4AsArray ืื™ื ื• ืžืขืจืš, ืœืžืจื•ืช ืฉื”ื•ื ื“ื•ืžื” ืžืื•ื“ ืœืžืขืจืš ืื—ื“, ืื– ืืชื” ืœื ื™ื›ื•ืœ ืคืฉื•ื˜ ืœืงื—ืช ืืช ื–ื” ืœื‘ืงืฉ ืืช ืื•ืจื›ื•.

ืฉื•ื‘ ื ืฆื˜ืจืš ืœืขืฉื•ืช ืžืฉื”ื• ืฉืœื ื ื™ืชืŸ ืœืขืฉื•ืช - ืœืฆื ื•ื— ืœื ืœืคื™ ื”ืงื•ื“ - ืœืงื—ืช ื•ืœืกืคื•ืจ

ืงืฆืช ืงื•ื“ #6.2

$MaxRandomExample = 0 
foreach ($Obj in $MyVocabExample4AsArray) {
$MaxRandomExample ++
}
Write-Output $MaxRandomExample
$RandomExample = Get-Random -Minimum 0 -Maximum ($MaxRandomExample)
$TextForExample1 = $MyVocabExample4AsArray[$RandomExample].Original
# MyFirstFunction($TextForExample1)
# ะธะปะธ ะฒ ะพะดะฝัƒ ัั‚ั€ะพะบัƒ
# MyFirstFunction($MyVocabExample4AsArray[Get-Random -Minimum 0 -Maximum ($MaxRandomExample -1)].Example)
# ะฃะณะฐะดะฐะนั‚ะต ัะฐะผะธ, ะบะฐะบะพะน ะฟั€ะธะผะตั€ ะปะตะณั‡ะต ั‡ะธั‚ะฐะตั‚ัั ะฟะพัั‚ะพั€ะพะฝะฝะธะผะธ ะปัŽะดัŒะผะธ.

ืึทืงืจึทืึดื™ ืชื›ื•ื ื” ืžืขื ื™ื™ื ืช. ื ื ื™ื— ืฉืื ื• ืจื•ืฆื™ื ืœืงื‘ืœ 0 ืื• 1 (ื™ืฉ ืœื ื• ืจืง ืฉื ื™ ืืœืžื ื˜ื™ื ื‘ืžืขืจืš). ื›ืฉืžื’ื“ื™ืจื™ื ื’ื‘ื•ืœื•ืช 0..1, ื”ืื ื ืงื‘ืœ "1"?
ืœื - ืœื ื ืงื‘ืœ ืืช ื–ื”, ื™ืฉ ืœื ื• ื“ื•ื’ืžื” ืžื™ื•ื—ื“ืช ื“ื•ื’ืžื” 2: ืงื‘ืœ ืžืกืคืจ ืฉืœื ืืงืจืื™ ื‘ื™ืŸ 0 ืœ-99 Get-Random - ืžืงืกื™ืžื•ื 100
ืœื›ืŸ, ืขื‘ื•ืจ 0..1 ืขืœื™ื ื• ืœื”ื’ื“ื™ืจ ืืช ื”ื’ื•ื“ืœ 0..2, ื›ืืฉืจ ืžืกืคืจ ื”ืืœืžื ื˜ ื”ืžืงืกื™ืžืœื™ ื”ื•ื 1.

7. ืขื™ื‘ื•ื“ ื”ื•ื“ืขื•ืช ื ื›ื ืกื•ืช ื•ืื•ืจืš ืชื•ืจ ืžืงืกื™ืžืœื™

ืื™ืคื” ืขืฆืจื ื• ืงื•ื“ื? ื™ืฉ ืœื ื• ืืช ื”ืžืฉืชื ื” $MyMessageGet ืฉื”ืชืงื‘ืœ
ื•-$Content4Pars01 ืฉื”ืชืงื‘ืœื• ืžืžื ื•, ืžื”ื ืื ื• ืžืขื•ื ื™ื™ื ื™ื ื‘ืืœืžื ื˜ื™ื ืฉืœ ืžืขืจืš Content4Pars01.result

$Content4Pars01.result[0].update_id
$Content4Pars01.result[0].message
$Content4Pars01.result[0].message.text

ื‘ื•ื ื ืฉืœื— ืืช ื”ื‘ื•ื˜ /message10, /message11, /message12, /word ื•ืฉื•ื‘ /word ื•-/hello.
ื‘ื•ื ื ืจืื” ืžื” ืงื™ื‘ืœื ื•:

$Content4Pars01.result[0].message.text
$Content4Pars01.result[2].message.text

ื‘ื•ืื• ื ืขื‘ื•ืจ ืขืœ ื›ืœ ืžื” ืฉื”ืชืงื‘ืœ ื•ื ืฉืœื— ืชื’ื•ื‘ื” ืื ื”ื”ื•ื“ืขื” ื”ื™ื™ืชื” /word
ื”ืžืงืจื” ืฉืœ construct, ืžื” ืฉืžืชืืจื™ื ื›ืžื• if-elseif, ื ืงืจื ื‘-powershell ื‘ืืžืฆืขื•ืช ืžืชื’. ื™ื—ื“ ืขื ื–ืืช, ื”ืงื•ื“ ืฉืœื”ืœืŸ ืžืฉืชืžืฉ ื‘ืžืคืชื— -ื”-wildcard, ืฉื”ื•ื ืžื™ื•ืชืจ ืœื—ืœื•ื˜ื™ืŸ ื•ืืฃ ืžื–ื™ืง.

ืงืฆืช ืงื•ื“ #7.1

Write-Output "This is part 7"
Foreach ($Result in $Content4Pars01.result) # ะ”ะฐ, ะผะพะถะฝะพ ัะดะตะปะฐั‚ัŒ ะฑั‹ัั‚ั€ะตะต 
 { 
    switch -wildcard ($Result.message.text) 
            {
            "/word" {MyFirstFunction($TextForExample1)}
            }
}

ื‘ื•ื ื ืจื™ืฅ ืืช ื”ืชืกืจื™ื˜ ื›ืžื” ืคืขืžื™ื. ื ืงื‘ืœ ืืช ืื•ืชื” ืžื™ืœื” ืคืขืžื™ื™ื ืขื‘ื•ืจ ื›ืœ ื ื™ืกื™ื•ืŸ ื‘ื™ืฆื•ืข, ื‘ืžื™ื•ื—ื“ ืื ืขืฉื™ื ื• ื˜ืขื•ืช ื‘ื™ื™ืฉื•ื ืืงืจืื™.

ืื‘ืœ ืชืคืกื™ืง. ืœื ืฉืœื—ื ื• ืฉื•ื‘ /word, ืื– ืœืžื” ื”ื”ื•ื“ืขื” ืžืขื•ื‘ื“ืช ืฉื•ื‘?

ืœืชื•ืจ ืฉืœื™ื—ืช ื”ื•ื“ืขื•ืช ืœื‘ื•ื˜ ื™ืฉ ืื•ืจืš ืกื•ืคื™ (100 ืื• 200 ื”ื•ื“ืขื•ืช, ืื ื™ ื—ื•ืฉื‘) ื•ื™ืฉ ืœื ืงื•ืช ืื•ืชื• ื™ื“ื ื™ืช.

ื–ื” ื›ืžื•ื‘ืŸ ืžืชื•ืืจ ื‘ืชื™ืขื•ื“, ืื‘ืœ ืืชื” ื—ื™ื™ื‘ ืœืงืจื•ื ืื•ืชื•!

ื‘ืžืงืจื” ื–ื”, ืื ื• ื–ืงื•ืงื™ื ืœืคืจืžื˜ืจ ?chat_id, ื•-&timeout, &limit, &parse_mode=HTML ื•-&disable_web_page_preview=true ืื™ื ื ื ื—ื•ืฆื™ื ืขื“ื™ื™ืŸ.

ืชื™ืขื•ื“ ืขื‘ื•ืจ ืžืžืฉืง API ืฉืœ ื˜ืœื’ืจื ื ืžืฆื ื›ืืŸ
ื›ืชื•ื‘ ื‘ืœื‘ืŸ ื•ื‘ืื ื’ืœื™ืช:
ืžื–ื”ื” ื”ืขื“ื›ื•ืŸ ื”ืจืืฉื•ืŸ ืฉื™ื•ื—ื–ืจ. ื—ื™ื™ื‘ ืœื”ื™ื•ืช ื’ื“ื•ืœ ื‘ืื—ื“ ืžื”ื’ื‘ื•ื” ื‘ื™ื•ืชืจ ืžื‘ื™ืŸ ื”ืžื–ื”ื™ื ืฉืœ ืขื“ื›ื•ื ื™ื ืฉื”ืชืงื‘ืœื• ื‘ืขื‘ืจ. ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ืขื“ื›ื•ื ื™ื ืžืชื—ื™ืœื™ื ืžื”ืžื•ืงื“ื ื‘ื™ื•ืชืจ
ืœื ืžืื•ืฉืจ ืขื“ื›ื•ืŸ ืžื•ื—ื–ืจ. ืขื“ื›ื•ืŸ ื ื—ืฉื‘ ืœืžืื•ืฉืจ ื‘ืจื’ืข ืฉ-getUpdates ื ืงืจื ืขื an ืœืงื–ื– ื’ื‘ื•ื” ื™ื•ืชืจ ืžืืฉืจ update_id ืฉืœื•. ื ื™ืชืŸ ืœืฆื™ื™ืŸ ืืช ื”ื”ื™ืกื˜ ื”ืฉืœื™ืœื™ ื›ื“ื™ ืœืื—ื–ืจ ืขื“ื›ื•ื ื™ื ื”ื—ืœ ืž--offset update ืžืกื•ืฃ ืชื•ืจ ื”ืขื“ื›ื•ื ื™ื. ื›ืœ ื”ืขื“ื›ื•ื ื™ื ื”ืงื•ื“ืžื™ื ื™ื™ืฉื›ื—ื•.

ื‘ื•ื ื ืกืชื›ืœ ืขืœ:

$Content4Pars01.result[0].update_id
$Content4Pars01.result[1].update_id 
$Content4Pars01.result | select -last 1
($Content4Pars01.result | select -last 1).update_id

ื›ืŸ, ื•ืื ื• ื ืืคืก ืื•ืชื• ื•ื ื›ืชื•ื‘ ืžืขื˜ ืืช ื”ืคื•ื ืงืฆื™ื”. ื™ืฉ ืœื ื• ืฉืชื™ ืืคืฉืจื•ื™ื•ืช - ืœื”ืขื‘ื™ืจ ืืช ื›ืœ ื”ื”ื•ื“ืขื” ืœืคื•ื ืงืฆื™ื” ื•ืœืขื‘ื“ ืื•ืชื” ื›ื•ืœื” ื‘ืคื•ื ืงืฆื™ื”, ืื• ืœืชืช ืจืง ืืช ืžื–ื”ื” ื”ื”ื•ื“ืขื” ื•ืœืืคืก ืื•ืชื”. ืœื“ื•ื’ืžื”, ื”ืฉื ื™ ื ืจืื” ืคืฉื•ื˜ ื™ื•ืชืจ.

ื‘ืขื‘ืจ, ืžื—ืจื•ื–ืช ื”ืฉืื™ืœืชื” "ื›ืœ ื”ื”ื•ื“ืขื•ืช" ืฉืœื ื• ื ืจืืชื” ื›ืš

$URLGET = "https://api.telegram.org/bot$MyToken/getUpdates"

ื•ื–ื” ื™ื™ืจืื” ื›ืžื•

$LastMessageId = ($Content4Pars01.result | select -last 1).update_id
$URLGET1 = "https://api.telegram.org/bot$mytoken/getUpdates?offset=$LastMessageId&limit=100" 
$MyMessageGet = Invoke-WebRequest -Uri $URLGET1 -Method Get -Proxy $MyProxy 

ืืฃ ืื—ื“ ืœื ืื•ืกืจ ืขืœื™ืš ืœืงื‘ืœ ืชื—ื™ืœื” ืืช ื›ืœ ื”ื”ื•ื“ืขื•ืช, ืœืขื‘ื“ ืื•ืชืŸ, ื•ืจืง ืœืื—ืจ ืขื™ื‘ื•ื“ ืžื•ืฆืœื— ื‘ืงืฉื” ืœื ืื•ืฉืจื” -> ืื•ืฉืจื”.

ืžื“ื•ืข ื”ื’ื™ื•ื ื™ ืœื”ืชืงืฉืจ ืœืื™ืฉื•ืจ ืœืื—ืจ ื”ืฉืœืžืช ื›ืœ ื”ืขื™ื‘ื•ื“? ื›ืฉืœ ืืคืฉืจื™ ื‘ืืžืฆืข ื”ื‘ื™ืฆื•ืข, ื•ืื ืœืžืฉืœ ืฉืœ ืฆ'ืื˜ ื‘ื•ื˜ ื—ื™ื ืžื™, ื—ืกืจ ืฉืœ ื”ื•ื“ืขื” ื‘ื•ื“ื“ืช ืื™ื ื• ืžืฉื”ื• ืžื™ื•ื—ื“, ืื– ืื ืืชื” ืžืขื‘ื“ ืžืฉื›ื•ืจืช ืื• ืขืกืงืช ื›ืจื˜ื™ืก ืฉืœ ืžื™ืฉื”ื•, ื”ืชื•ืฆืื” ืขืœื•ืœื” ืœื”ื™ื•ืช ื’ืจื•ืขื” ื™ื•ืชืจ.

ืขื•ื“ ื›ืžื” ืฉื•ืจื•ืช ืงื•ื“

$LastMessageId = ($Content4Pars01.result | select -last 1).update_id  #ะพัˆะธะฑะบัƒ ะฒ ัั‚ะพะผ ะผะตัั‚ะต ะฟั€ะตะดะฟะพะปะฐะณะฐะตั‚ัั ะธัะฟั€ะฐะฒะธั‚ัŒ ัะฐะผะพัั‚ะพัั‚ะตะปัŒะฝะพ. 
$URLGET1 = "https://api.telegram.org/bot$mytoken/getUpdates?offset=$LastMessageId&limit=100" 
Invoke-WebRequest -Uri $URLGET1 -Method Get -Proxy $MyProxy

8. ื‘ืžืงื•ื ืžืกืงื ื”

ืคื•ื ืงืฆื™ื•ืช ื‘ืกื™ืกื™ื•ืช - ืงืจื™ืืช ื”ื•ื“ืขื•ืช, ืื™ืคื•ืก ืชื•ืจ, ืงืจื™ืื” ืžืงื•ื‘ืฅ ื•ื›ืชื™ื‘ื” ืœืงื•ื‘ืฅ ื ืขืฉื•ืช ื•ืžื•ืฆื’ื•ืช.

ื ื•ืชืจื• ืจืง ืืจื‘ืขื” ื“ื‘ืจื™ื ืœืขืฉื•ืช:

  • ืฉืœื™ื—ืช ื”ืชืฉื•ื‘ื” ื”ื ื›ื•ื ื” ืœื‘ืงืฉื” ื‘ืฆ'ืื˜
  • ืฉืœื™ื—ืช ืชื’ื•ื‘ื” ืœื›ืœ ืฆ'ืื˜ ืืœื™ื• ื”ืชื•ื•ืกืฃ ื”ื‘ื•ื˜
  • ื‘ื™ืฆื•ืข ืงื•ื“ ื‘ืœื•ืœืื”
  • ื”ืคืขืœืช ื‘ื•ื˜ ืžืชื–ืžืŸ Windows.

ื›ืœ ื”ืžืฉื™ืžื•ืช ื”ืœืœื• ืคืฉื•ื˜ื•ืช ื•ื ื™ืชืŸ ืœื‘ืฆืข ืื•ืชืŸ ื‘ืงืœื•ืช ืขืœ ื™ื“ื™ ืงืจื™ืืช ื”ืชื™ืขื•ื“ ืขืœ ืคืจืžื˜ืจื™ื ื›ื’ื•ืŸ
Set-ExecutionPolicy Unrestricted ื•-ExecutionPolicy ืžืขืงืฃ
ืžื—ื–ื•ืจ ื”ื˜ื•ืคืก

$TimeToSleep = 3 # ะพะฟั€ะพั ะบะฐะถะดั‹ะต 3 ัะตะบัƒะฝะดั‹
$TimeToWork = 10 # ะผะธะฝัƒั‚
$HowManyTimes = $TimeToWork*60/$TimeToSleep # ัั‡ะตั‚ั‡ะธะบ ะดะปั ั†ะธะบะปะฐ
$MainCounter = 0
for ($MainCounter=0; $MainCounter -le $HowManyTimes) {
sleep $TimeToSleep
$MainCounter ++

ืชื•ื“ื” ืœื›ืœ ืžื™ ืฉืงืจื.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”