He tauira mo te karetao waea ngawari mo nga tamariki kura o nga reanga 7-9 e whakamahi ana i te Powershell

I nga korerorero me tetahi hoa, i mohio ohorere ahau ko nga tamariki o nga reanga 8-10 i to raatau kura kaore i te ako i nga kaupapa. Word, Excel me nga mea katoa. Karekau he tohu, ahakoa ko Pascal, ahakoa ko VBA mo Excel.

I tino miharo ahau, ka whakatuwhera i te Ipurangi ka tiimata te panui -
Ko tetahi o nga mahi a te kura motuhake ko te whakatairanga i te matauranga o te reanga hou e tutuki ana i nga tikanga o te hapori korero i roto i tona taumata whanaketanga me te oranga.
Ma tenei akoranga ka taea e nga akonga te whakakotahi i o raatau mohiotanga ki nga hanganga taketake o te reo papatono Pascal. (mai i te kaupapa o etahi whare takaro mo te tau 2017)

I te mutunga, i whakatau ahau ki te noho mo etahi haora ka tuhi i tetahi tauira o "me pehea te hanga i te bot ngawari mo nga tamariki kura."

Kei raro i te tapahi me pehea te tuhi i tetahi atu karetao ngawari ki Powershell me te mahi me te kore he webhook, he IP ma, he tūmau i whakatapua, he mihini mariko ki roto i te kapua, me etahi atu - i runga i te PC o te kaainga me te Matapihi auau.

TLDR: Ko tetahi atu tuhinga hoha me nga hapa wetereo me te pono, kaore he korero, he whakakatakata, kaore he pikitia.

Kaore he mea hou i roto i te tuhinga, tata ki nga mea katoa i tuhia i mua kua tae atu ki a Habré, hei tauira i roto i nga tuhinga Tohutohu: Me pehea te hanga bots i Telegram и Telegram bot mo te kaiwhakahaere punaha.
I tua atu, ko te tuhinga he mea nui kia kore e korero ki nga tuhinga matauranga i nga wa katoa. Karekau he korero mo Gang 4, PowerShell Deep Dives, me kii, Ko nga Pou e 5 o te AWS Well-Architected Framework kei roto i te tuhinga.

Engari he kupu whakataki, ka taea e koe te peke

Kia pai ki te pekeI te tau 2006, i tukuna e Microsoft a PowerShell 1.0 mo te Windows XP, Vista, me te Server 2003 i tera wa. I etahi huarahi, i whakakapihia nga mea penei i te cmdbat scripts, vb scripts, Windows Script Host me JScript.

I tenei wa, ka taea anake te whakaaro ko te PowerShell ko te mahi e whai ake nei i muri i nga whiringa Moko, hei utu mo te Delphi kei te whakamahia tonu (he mea tawhito ake ranei), ahakoa te noho mai o nga koropiko, nga karaehe, nga mahi, nga waea MS GUI, Git tuitui a na runga i.

He iti noa te whakamahi Powershell; ka taea noa e koe te tutaki i te ahua o te PowerShell Core, VMware vSphere PowerCLI, Azure PowerShell, MS Exchange, Whakaritenga Whenua Hiahia, Urunga Tukutuku PowerShell me te tekau ma rua neke atu ranei nga hotaka me nga mahi kare e whakamahia ana. Tera pea ka whiwhi ia i te hau tuarua me te tukunga WSL2, engari ehara i te mea tika.

E toru ano nga painga nui a Powershell:

  1. He maamaa noa, he maha nga tuhinga me nga tauira mo taua mea, tae noa ki te reo Ruhia, hei tauira, he tuhinga mo Foreach - mai i te pukapuka PowerShell hohonu - mo te rereketanga () me {}
  2. Ka haere ia me te ētita Tuhinga, kei roto i a Windows. He momo patuiro kei reira.
  3. He ngawari te waea mai i a ia nga waahanga mo te hanga atanga kauwhata.

0. Whakaritenga.

Ka hiahia matou:

  • Windows PC (kei ahau a Windows 10)
  • I te iti rawa etahi momo uru Ipurangi (ma NAT hei tauira)
  • Mo te hunga he iti noa te uru ki te waea waea - kua whakauruhia me te whirihora i te keeti koreutu ki te tirotiro, i etahi keehi uaua, me te Symple DNS Crypt
  • He kaihoko waea waea kei runga i to waea
  • Maramatanga ki nga tino kaupapa - he aha te taurangi, te hurangi, te kopikopiko.

I whakatuwherahia ka panuihia nga tuhinga - Tohutohu: Me pehea te hanga bots i Telegram и Telegram bot mo te kaiwhakahaere punaha

1. Me hanga tetahi atu bot whakamatautau.

I te mea kua mohio nga tangata katoa ki tenei, kua pa ano, ka taea ano e koe te pekeKa rite ki te korero i roto i te tuhinga i runga ake nei - Tuatahi, he bot mo Telegram - he tono tonu kei to taha me te tono tono ki te Telegram Bot API. Ano, he maamaa te API - ka uru te karetao ki tetahi URL motuhake me nga taapiri, ka whakautu a Telegram me tetahi ahanoa JSON.

Nga raruraru e pa ana: ki te tangohia e koe he waehere mai i te ahanoa JSON ka tukuna kia mahia (kaore i runga i te kaupapa), ka mahia te waehere mo koe.

Ko te tukanga hanga e whakaahuahia ana i roto i nga tuhinga e rua i runga ake nei, engari ka whakahoki ano ahau: i roto i te waea waea ka whakatuwherahia e matou nga hoapaki, rapua @botfather, korero ki a ia /newbot, hanga he bot Botfortest12344321, ka karangahia ko Mynext1234bot, ka whiwhi karere me te kii ahurei o te puka 1234544311:AbcDefNNNNNNNNNNNNNNNN

Kia mau ki te ki, kaua e hoatu!

Na ka taea e koe te whirihora i te karetao, hei tauira, aukati i te taapiri ki nga roopu, engari i nga waahanga tuatahi kaore tenei e tika.

Me patai ki a BotFather mo "/mybot" ka whakatika i nga tautuhinga ki te kore tatou e pai ki tetahi mea.

Me whakatuwhera ano nga hoapaki, kitea @Botfortest12344321 kei reira (he mea tika kia tiimata te rapu me te @), paatohia te "tīmata" ka tuhi ki te bot "/Kororia ki nga robots." Ko te tohu / e hiahiatia ana, kaore e hiahiatia nga korero.
Ko te bot, ko te tikanga, kaore e whakautu tetahi mea.

Me titiro kua hanga te karetao ka whakatuwheratia.

api.telegram.org/bot1234544311:AbcDefNNNNNNNNNNNNNN/getMe
kei hea 1234544311:AbcDefNNNNNNNNNNNNNN ko te kī i riro i mua,
a ka whiwhi i tetahi raina penei
{"ok":true,"hua":{""}}

Kei a matou te kupu huna tuatahi (tohu). Inaianei me rapu tatou i te nama ngaro tuarua - te ID o te korerorero me te karetao. Ko ia korerorero, roopu, aha atu, he takitahi, he nama ake (i etahi wa me te iti - mo nga roopu tuwhera). Kia mohio ai koe ki tenei tau, me tono i roto i te kaitirotiro (i te mea pono, ehara i te mea e tika ana i roto i te kaitirotiro, engari mo te pai ake o te mohio ka taea e koe te timata) te wahitau (kei hea 1234544311:NNNNNNNNNN to tohu.

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

ka whiwhi whakautu penei

{"ok":true,"hua":[{"update_id":...,... kōrero":{"id":123456789

Kei te hiahia tatou i te chat_id.

Me titiro ka taea e taatau te tuhi ki te korerorero a-ringa: waeahia te wahitau mai i te tirotiro

https://api.telegram.org/botваштокен/sendMessage?chat_id=123456789&text="Life is directed motion"

Mena ka whiwhi koe i tetahi panui mai i te karetao i roto i to korerorero, pai, ka neke koe ki te waahanga e whai ake nei.

Ma tenei ara (ma te tirotiro) ka taea e koe te tirotiro i nga wa katoa he raru kei te whakatipuranga hono, mena kei te huna tetahi mea ki tetahi waahi kaore e mahi.

He aha e hiahia ana koe ki te mohio i mua i te haere tonu o te panui

He maha nga momo korerorero a Telegram (tuwhera, kati). Mo enei korerorero, he rereke etahi o nga mahi (hei tauira, id), i etahi wa ka raru etahi.

Me whakaaro ko te mutunga o te tau 2019, tae atu ki te toa o to tatou wa, te tangata rongonui-tangata (kaiwhakahaere, roia, tohunga mo te haumarutanga korero, kaiwhakatakaro me te MVP) Evgeniy V. ka wehewehe i te taurangi $i mai i te rarangi, kua taukei koropiko, titiro i roto i te tokorua i muri o tau ka rangatira Chocolatey, a ka Tukatuka whakarara me te PowerShell и Mo ia Ahanoa Whakarara ka tae mai.

1. Ka whakaaro tatou he aha te mahi a to tatou bot

Kaore au i whai whakaaro, me whakaaro ahau. Kua tuhia e ahau he pukapuka-bota. Kaore au i pai ki te hanga karetao "ka tuku tetahi mea ki tetahi waahi." Hei hono atu ki a Azure ka hiahia koe ki te kaari nama, engari no hea te akonga? Me tohu ko nga mea katoa ehara i te mea tino kino: ko nga kapua matua ka hoatu etahi momo wa whakamatautau mo te kore utu (engari kei te hiahia tonu koe ki te nama kaari nama - me te mea ka tukuna he taara mai i tera. Kaore au e mahara mena i whakahokia mai i muri mai.)

Ki te kore he AI ​​ML ehara i te mea tino pai ki te hanga i te kaitito-poor-poet-weaver.

I whakatau ahau ki te hanga karetao hei whakamaumahara ki ahau (kaore ranei ahau) ki nga kupu Ingarihi mai i te papakupu.
Kia kore ai e pokanoa ki te putunga korero, ka penapenahia te papakupu ki roto i te konae tuhinga ka whakahoutia ma te ringa.
I tenei keehi, ko te mahi ko te whakaatu i nga kaupapa o te mahi, kaua hoki e hanga i tetahi waahanga kua oti.

2. He aha me pehea mo te wa tuatahi

Me hanga he kōpaki C:poshtranslate
Tuatahi, kia kite tatou he aha te ahua o te powershell kei a tatou, me whakarewahia te ISE ma te tiimata-whakahaere
powershell ise
kitea ranei te Powershell ISE i roto i nga papatono kua whakauruhia.
I muri i te whakarewatanga, ka whakatuwherahia te "etahi momo etita" e mohio ana; mena kaore he mara tuhinga, katahi ka taea e koe te paato "Kōnae - hanga hou".

Me titiro ki te putanga o te powershell - tuhia ki te mara kuputuhi:

get-host 

ka pehi i te F5.

Ka tuku a Powershell ki te penapena - "Ka tiakina te tuhinga e tata ana koe ki te whakahaere.", ka whakaae matou, ka tiakina te konae mai i te powershell me te ingoa ki C: poshtranslate myfirstbotBT100.

I muri i te whakarewatanga, i te matapihi kuputuhi o raro ka whiwhi tatou i te ripanga raraunga:

Name             : Windows PowerShell ISE Host
Version          : 5.1.(и так далее)

He 5.1 taku mea, kaati. Mena kei a koe he Windows 7/8 tawhito karekau he mahi nui - ahakoa me whakahou a PowerShell ki te putanga 5 - hei tauira. tohutohu.

Patohia te Tiki-Ra i roto i te rarangi whakahau i raro nei, pehia te Whakauru, tirohia te wa, haere ki te kōpaki pakiaka me te whakahau
cd
me te whakakore i te mata me te whakahau cls (kao, kaore koe e hiahia ki te whakamahi i te rm)

Inaianei ka tirohia he aha te mahi me pehea - kaua e tuhi i te waehere, engari kia rua nga rarangi, ka ngana ki te mohio ki ta raatau mahi. Me korero tatou i te rarangi me te whiwhi-host me te tohu # me te taapiri iti.

# Пример шаблона бота 
# get-host
<# это пример многострочного комментария #>
$TimeNow = Get-Date
$TimeNow

(Ko te mea whakamere kei roto i te rarangi taka-iho whakahōputu waehere i runga i a Habré e rua tekau ma rua nga whiringa - engari karekau a Powershell. Kei reira a Dos. Kei reira a Perl.)

A me whakahaere te waehere ma te pehi i te F5 ranei ">" mai i te GUI.

Ka whiwhi tatou i te putanga e whai ake nei:

Saturday, December 8, 2019 21:00:50 PM (или что-то типа)

Inaianei me titiro ki enei rarangi e rua me etahi mea whakamere kia kore ai e hoki mai ki tenei a muri ake nei.

Kaore i rite ki a Pascal (a ehara i te mea anake), ka ngana ano a PowerShell ki te whakatau he aha te momo ka tautapa ki tetahi taurangi; he maha atu nga korero mo tenei ka tuhia ki te tuhinga He kaupapa ako mo te patopato i nga reo hootaka
Na reira, ma te hanga i te taurangi $TimeNow me te tautapa i te uara o te ra me te wa o naianei (Get-Date), karekau matou e tino awangawanga mo te momo raraunga kei reira.

He pono, ka mamae pea tenei kuare i muri mai, engari mo muri mai. Kei raro i te tuhinga ka puta he tauira.
Kia kite tatou he aha ta tatou i whiwhi. Me mahi (i runga i te raina whakahau)

$TimeNow | Get-member

me te tiki i tetahi wharangi o nga tuhinga e kore e marama

He tauira o te kupu tau 1 kore e marama

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")...                                         

Ka taea e koe te kite, he taurangi o te momo TypeName: System.DateTime kua hangaia me te paihere o nga tikanga (i roto i te tikanga o nga mea ka taea e tatou ki tenei mea rereke) me nga taonga.

Me waea atu $TimeNow.DayOfYear — ka whiwhi tatou i te tau o te ra o te tau.
Me waea atu $TimeNow.DayOfYear | Get-Member - whiwhi tatou TypeName: System.Int32 me te roopu tikanga.
Me waea atu $TimeNow.ToUniversalTime() - ka whiwhi i te wa i te UTC

Kaituku

I etahi wa ka puta he mea tika ki te whakahaere i tetahi kaupapa ki tetahi raina ka kite i te ahua o te kaupapa i taua wa. Mo tenei kaupapa, kei a ISE tetahi mahi patuiro - takahuri i te waahi wehenga
Tuhia he waahi pakaru ki waenganui, whakahaere i enei rarangi e rua ka kite i te ahua o te wehenga.

3. Te mohio ki te taunekeneke me te Telegram bot

Ko te tikanga, he maha atu nga tuhinga kua tuhia mo te taunekeneke me te karetao, me nga getpush katoa me etahi atu, engari ko te take o te ariā ka taea te whakaaro.

I roto i to maatau he mea tika:

  • Ako ki te tuku i tetahi mea i roto i te reta
  • Ako ki te tiki i tetahi mea mai i nga reta reta

3.1 Te ako ki te tuku reta me te whiwhi mai i tetahi mea

He waehere iti - wahanga 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

a i roto i te Russian Federation i tenei wa ka whiwhi tatou i te hapa Kaore e taea te hono atu ki te tūmau mamao.

Kaore ranei e whiwhi - ka whakawhirinaki ki te kaiwhakahaere waea me te mea kua whirihorahia te takawaenga me te mahi
Ana, ko nga mea e toe ana ko te taapiri i tetahi takawaenga. Kia mahara ko te whakamahi i te takawaenga kore whakamuna me te tikanga tinihanga he tino kino mo to hauora.

Ko te mahi ki te kimi takawaenga mahi ehara i te mea tino uaua - ko te nuinga o nga mahi takawaenga http kua whakaputaina. Ki taku whakaaro i mahi te tuarima ki ahau.

Wetereo ma te takawaenga:

Invoke-WebRequest -Uri $URL4SEND -Proxy $MyProxy

Mena ka whiwhi koe i tetahi panui i roto i to korerorero me te karetao, ka pai nga mea katoa, ka taea e koe te haere tonu. Ki te kore, haere tonu te patuiro.

Ka kite koe he aha te hurihanga o to aho $URL4SEND ka ngana ki te tono i roto i te tirotiro, penei:

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

3.2. I ako matou ki te tuhi "tetahi mea" ki te korerorero, inaianei ka ngana ki te panui

Kia 4 ano nga rarangi taapiri ka kite he aha kei roto i te | whiwhi-mema

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

Ko te mea tino pai ka tukuna mai ki a maatau

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

Kia kite tatou he aha kei roto:

Write-Host "ParsedHtml"
$MyMessageGet.ParsedHtml # тут интересное
Write-Host "RawContent"
$MyMessageGet.RawContent # и тут интересное, но еще к тому же и читаемое. 
Write-Host "Content"
$MyMessageGet.Content

Mena ka pai nga mea katoa mo koe, ka whiwhi koe i te raina roa penei:

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

Waimarie, i roto i te tuhinga o mua Telegram bot mo te kaiwhakahaere punaha tenei raina (ae, e ai ki te $MyMessageGet.RawContent | whiwhi-mema ko System.String), kua wetekina kē.

4. Tukatia nga mea ka whiwhi koe (kua mohio matou ki te tuku i tetahi mea)

Kua tuhia kētia konei, ko nga mea e tino tika ana kei roto i nga korero. Kia ata titiro tatou.

Tuatahi, ka tuhia e matou etahi atu rerenga korero ki te bot mai i te atanga tukutuku, mai i te waea ranei

/message1
/message2
/message3

ka titiro i roto i te kaitirotiro ki te wahitau i hangaia i te taurangi $URLGET.

Ka kite tatou i tetahi mea penei:

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

He aha tena? Ko etahi ahanoa uaua mai i nga huinga taonga kei roto he kaitautuhi karere mutunga-ki-mutunga, kaitautuhi korerorero, tohu tohu tuku me te maha atu o nga korero.

Heoi, kaore e tika kia mohiohia "he aha te momo mea" - kua oti te waahanga o te mahi mo tatou. Kia kite tatou he aha kei roto:

Te panui i nga karere kua tae mai, te waahanga 4 ranei

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. Me aha tatou inaianei?

Kia tiakina te konae ka puta ki raro i te ingoa myfirstbotBT105 me nga mea katoa e pai ana koe, whakarereke i te taitara me te korero i nga waehere kua oti te tuhi ma

<#start comment 105 end comment 105#>

Inaianei me whakatau tatou ki hea te tiki papakupu (pai, kei hea - kei runga i te kōpae kei roto i te konae) me te ahua o te ahua.

Ae ra, ka taea e koe te tuhi papakupu nui ki roto tonu i te tuhinga o te tuhinga, engari kei te taha tonu tenei.
Na, kia kite tatou he aha te mana o te powershell e mahi ana.
I te nuinga o te waa, kaore ia e whakaaro ko tehea konae hei mahi, kaore he mea nui ki a maatau.
He whiringa taatau: txt (ka taea e koe, engari he aha), csv, xml.
Ka taea e tatou te maataki katoa Kia kite tatou katoa.
Me hanga he akomanga MyVocabClassExample1 me tetahi taurangi $MyVocabExample1
Ka kite ahau kua tuhia te akomanga kaore he $

etahi waehere #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

Me ngana ki te tuhi i tenei ki nga konae ma te whakamahi tauira.

Ko etahi waehere #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

- ka puta he hapa ki te raina Out-File -FilePath $MyFinameExample01 -InputObject -Append $MyVocabExample2.

Kaore ia e hiahia ki te taapiri, ah-ah, he aha te whakama.

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

Kia kite tatou ka ahatia. He tirohanga kuputuhi pai - engari me pehea te kaweake ki muri? Me whakauru e au etahi momo whakawehe kupu, penei i te piko?

Na i te mutunga ka whiwhi koe i te konae "nga uara wehe-piko (CSV) A KAITI TAARI.
#

$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 

I te mea ngawari ki te kite, kaore te MS i te tino tohuhia e tona arorau; mo te tikanga rite, i tetahi keehi -Ka whakamahia te FilePath, i tetahi atu -Ara.

I tua atu, i te tuatoru o nga konae ka ngaro te reo Ruhia, i te wha o nga konae ka puta ... he pai, he mea i tupu. #TYPE System.Object[] 00
# "Tatau","Te Roa", "Te Roa", "Ranga", "TukupapaTuku","Ko te Panui Anake","Ko te Rahi Pumau","Ko te Tukutahi"
#
Me tuhi ano he iti:

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

Te ahua nei i awhina, engari kaore au i te pai ki te whakatakotoranga.

Kare rawa ahau e pai ki te kore e taea e au te tuku raina mai i tetahi mea ki roto i te konae.
Ae ra, i te wa i timata taatau ki te tuhi ki nga konae, ka taea e taatau te pupuri i te raarangi whakaoho? He wa taatau hei taurangi, ka taea e taatau te tautuhi i te ingoa konae.

Pono, kaore ano he mea hei tuhi, engari ka taea e koe te whakaaro me pehea te pai ki te huri i nga rakau.
Kia tamata tatou i te xml inaianei.

Ko etahi 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

He maha nga painga o te kaweake ki te xml - te panui, te kaweake i te katoa o te ahanoa, me te kore e hiahia ki te mahi i te pikinga.

Me tamata noa panui te kōnae xml.

He panui iti mai i te xml

$MyFilenameExample06 = $ScriptDir + "Example06.xml"
$MyVocabExample4AsArray = Import-Clixml -Path $MyFilenameExample06
# $MyVocabExample4AsArray 
# $MyVocabExample4AsArray[0]
# и немного о совершенно неочевидных нюансах. Powershell время от времени ведет себя не так, как вроде бы как бы стоило бы ожидать бы.
# например у меня эти два вывода отличаются
# Write-Output $MyVocabExample4AsArray 
# write-host $MyVocabExample4AsArray 

Kia hoki ki te mahi. I tuhia e matou he konae whakamatautau, panuihia, he maamaa te whakatakotoranga rokiroki, mena e tika ana, ka taea e koe te tuhi i tetahi ētita konae iti motuhake hei taapiri me te whakakore i nga raina.

Me whakamaumahara ahau ki a koe ko te mahi he hanga karetao whakangungu iti.

Te whakatakotoranga mahi: Ka tukuna e ahau te whakahau "tauira" ki te karetao, ka tukuna mai e te karetao he kupu me te tuhinga kua tohua matapōkeretia, a, i muri i te 10 hēkona ka tukuna he whakamaoritanga me te korero. E mohio ana matou ki te panui i nga whakahau, ka hiahia ano matou ki te ako me pehea te whiriwhiri aunoa me te tirotiro i nga takawaenga, me te tautuhi i nga porotiti karere kia warewarehia.

Me whakakorehia nga mea katoa i korerohia i mua kaore e tika ana, korerohia nga tauira kaore e tika ana inaianei me te txt me te csv, ka tiakina te konae hei putanga B106

Aue ae. Me tuku ano tetahi mea ki te karetao.

6. Tukuna mai i nga mahi me etahi atu

I mua i te tukatuka i te powhiri, me hanga e koe he mahi mo te tuku "tetahi mea" ke atu i te panui whakamatautau.

Ko te tikanga, i roto i te tauira ka kotahi noa te tuku me te mahi kotahi anake, engari me pehea te mahi i te mea ano kia maha nga wa?

He ngawari ake te tuhi i tetahi mahi. Na, he taurangi o te momo ahanoa $MyVocabExample4AsArray, panui mai i te konae, i roto i te ahua o te huinga o nga mea e rua.
Me haere tatou ki te panui.

I te wa ano, ka mahi matou ki te karaka; ka hiahia matou i muri mai (i te mea pono, i tenei tauira kaore matou e hiahia :)

Ko etahi waehere #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
}

Ka taea e koe te kite ngawari, ka karangahia e te mahi $MyToken me $MyChatID, he mea tohu-maatau i mua.

Kare he take ki te mahi i tenei, a mena he kotahi te $MyToken mo ia bot, ka huri te $MyChatID i runga i te korerorero.

Heoi, i te mea he tauira tenei, ka warewarehia i tenei wa.

I te mea ehara a $MyVocabExample4AsArray i te huinga, ahakoa he rite tonu ki te kotahi, na e kore e taea e koe te tango noa tono tona roa.

Ano ano ka mahi tatou i tetahi mea kaore e taea - te parachute kaua e rite ki te waehere - tangohia ka tatau

Ko etahi waehere #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)
# Угадайте сами, какой пример легче читается посторонними людьми.

Random āhuatanga whakamere. Me kii e hiahia ana tatou ki te whiwhi 0, 1 ranei (e rua noa nga waahanga kei roto i te raupapa). Ka whakatauhia nga rohe 0..1, ka whiwhi tatou i te "1"?
kao - kare e whiwhi, he tauira motuhake ta matou Tauira 2: Tikina he tauoti matapōkere i waenga i te 0 me te 99 Tikina-Random -Mōrahi 100
No reira, mo te 0..1 me tautuhi te rahi 0..2, me te tau huānga mōrahi = 1.

7. Tukatuka o nga karere taumai me te roanga o te tutira

I tu tatou ki hea i mua? kei a matou te taurangi $MyMessageGet
me te $Content4Pars01 i riro mai i a ia, e aro ana matou ki nga huānga o te Content4Pars01.result array

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

Tukuna te karetao /karere10, /karere11, /karere12, /kupu katahi ano /kupu me /kia ora.
Kia kite tatou he aha ta tatou i whiwhi:

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

Me tirotirohia nga mea katoa kua riro mai ka tukuna he whakautu mena ko te karere /kupu
ko te take o te hanga, he aha ta etahi e kii ana me te mea-elseif, ka kiia i roto i te powershell mā te whakawhiti. I te wa ano, ka whakamahia e te waehere i raro iho te ki -wildcard, he mea tino kore rawa, he kino hoki.

Ko etahi waehere #7.1

Write-Output "This is part 7"
Foreach ($Result in $Content4Pars01.result) # Да, можно сделать быстрее 
 { 
    switch -wildcard ($Result.message.text) 
            {
            "/word" {MyFirstFunction($TextForExample1)}
            }
}

Kia rua nga wa ka whakahaeretia te tuhinga. Ka rua nga wa ka whiwhi tatou i te kupu kotahi mo ia nganatanga mahi, ina koa ki te he tatou i te whakatinanatanga o te matapōkeretia.

Engari kati. Karekau matou i tuku /kupu ano, na te aha i tukehia ano te karere?

Ko te rarangi mo te tuku karere ki te karetao he roa te roa (100, 200 ranei nga karere, ki taku whakaaro) me whakakore ma te ringa.

Ko te tikanga kua whakaahuahia tenei i roto i nga tuhinga, engari me panui koe!

I tenei take, me hiahia te tawhā ?chat_id, me te &timeout, &limit, &parse_mode=HTML me te &disable_web_page_preview=pono kaore ano kia hiahiatia.

Tuhinga mo waea waea api kei konei
E kii ana i te ma me te reo Ingarihi:
Kaitohu o te whakahōunga tuatahi ka whakahokia. Me nui ake ma te kotahi i te teitei rawa atu i roto i nga kaitautuhi o nga whakahōutanga kua riro i mua. Ma te taunoa, ka timata nga whakahōutanga mai i te tuatahi
kāore i whakaū kua whakahokia mai te whakahou. Ka whakaarohia he whakahou i te wa e karangahia ana te getUpdates me te hara teitei nui atu i tana whakahou_id. Ka taea te whakawhāitihia te whakahōunga tōraro ki te tiki whakahōutanga mai i -offset whakahōu mai i te mutunga o te tūtira whakahōu. Ka warewarehia nga whakahoutanga o mua.

Kia titiro tatou ki:

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

Ae, ka tautuhi ano tatou ka tuhi ano i te mahi iti. E rua nga whiringa - tukuna te katoa o te karere ki te mahi me te tukatuka katoa i roto i te mahi, hoatu noa ranei te ID karere ka tautuhi ano. Hei tauira, he ngawari ake te ahua o te tuarua.

I mua, he rite te ahua o a maatau "karere katoa".

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

a ka rite te ahua

$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 

Kaore he tangata e aukati i a koe ki te tango tuatahi i nga karere katoa, ki te tukatuka i a raatau, a, i muri i te angitu o te tono tukatuka kaore i whakamanahia -> kua whakapumautia.

He aha te take e tika ai te karanga i te whakau i muri i te otinga o nga mahi katoa? Ka taea te ngoikore i waenganui o te mahi, a, ki te mea mo te tauira o te korerorero kore utu, ko te ngaro o te karere kotahi kaore he mea motuhake, na mena kei te tukatuka koe i te utu a te tangata, i te tauwhitinga kaari ranei, ka kino ake te hua.

He ruarua atu rarangi waehere

$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. Engari he whakatau

Nga mahi taketake - te panui karere, te tautuhi i te rarangi, te panui mai i te konae me te tuhi ki te konae kua oti ka whakaatuhia.

E wha noa nga mea hei mahi:

  • te tuku i te whakautu tika ki te tono i roto i te korerorero
  • te tuku urupare ki TĒTAHI kōrerorero i tāpirihia te karetao
  • te whakahaere i te waehere i roto i te kopikopiko
  • te whakarewa i te karetao mai i te kaihōtaka matapihi.

He maamaa enei mahi katoa ka taea te mahi ma te panui i nga tuhinga mo nga tawhā penei
Tautuhi-Whakamahinga Kaupapa herekore me te -WhakamahiPolicy Bypass
huringa o te ahua

$TimeToSleep = 3 # опрос каждые 3 секунды
$TimeToWork = 10 # минут
$HowManyTimes = $TimeToWork*60/$TimeToSleep # счетчик для цикла
$MainCounter = 0
for ($MainCounter=0; $MainCounter -le $HowManyTimes) {
sleep $TimeToSleep
$MainCounter ++

Nga mihi ki a koutou katoa mo te panui.

Source: will.com

Tāpiri i te kōrero