Pokambirana ndi mnzanga, mwadzidzidzi ndinaphunzira kuti ana a giredi 8-10 kusukulu kwawo samaphunzitsidwa konse mapulogalamu. Mawu, Excel ndi chilichonse. Palibe logo, ngakhale Pascal, ngakhale VBA ya Excel.
Ndinadabwa kwambiri, ndinatsegula intaneti ndikuyamba kuwerenga -
Imodzi mwa ntchito za sukulu yapadera ndi kulimbikitsa maphunziro a m'badwo watsopano umene umakwaniritsa zikhalidwe za gulu lachidziwitso mu msinkhu wake wa chitukuko ndi moyo.
Maphunzirowa alola ophunzira kuphatikizira chidziwitso chawo pazoyambira za chilankhulo cha Pascal. (kuchokera mu pulogalamu ya masewera olimbitsa thupi a 2017)
Pamapeto pake, ndinaganiza zokhala maola angapo ndikujambula chitsanzo cha "momwe mungapangire bot yosavuta kwa ana asukulu."
Pansi pa odulidwa ndi momwe mungalembe bot ina yosavuta mu Powershell ndikupangitsa kuti igwire ntchito popanda webhook, ma IP oyera, ma seva odzipatulira, makina ogwiritsira ntchito pamtambo, ndi zina zotero - pa PC yokhazikika yapakhomo yokhala ndi Windows yokhazikika.
TLDR: Nkhani ina yotopetsa yokhala ndi zolakwika zamagalasi ndi zowona, palibe choti muwerenge, palibe nthabwala, palibe zithunzi.
Palibe chatsopano m'nkhaniyi, pafupifupi chirichonse cholembedwa kale chakhalapo kale pa HabrΓ©, mwachitsanzo m'nkhani
Komanso, nkhaniyi ndi yowonjezereka mwadala kuti isatchule zolemba zamaphunziro nthawi zonse. Palibe zonena za Gang 4, PowerShell Deep Dives kapena, tinene, Mizati 5 ya AWS Yopangidwa Mwaluso Pamalemba.
M'malo mwa mawu oyamba, mutha kulumpha
Khalani omasuka kudumphaMu 2006, Microsoft idatulutsa PowerShell 1.0 ya Windows XP, Vista, ndi Server 2003. Mwanjira zina, idasintha zinthu monga cmdbat scripts, vb scripts, Windows Script Host ndi JScript.
Ngakhale tsopano, PowerShell ikhoza kuonedwa ngati sitepe yotsatira pambuyo pa zosankha za Logo, m'malo mwa Delphi yomwe ikugwiritsidwabe ntchito (kapena chinachake chakale), ngakhale kukhalapo kwa malupu, makalasi, ntchito, mafoni a MS GUI,
Powershell imagwiritsidwa ntchito kawirikawiri; mutha kukumana nayo ngati PowerShell Core, VMware vSphere PowerCLI, Azure PowerShell, MS Exchange, Desired State Configuration,
Powershell ilinso ndi zabwino zitatu zazikulu:
- Ndizosavuta, pali mabuku ambiri ndi zitsanzo za izo, ndipo ngakhale mu Russian, mwachitsanzo, nkhani yokhudza Foreach - kuchokera m'buku.
PowerShell mozama - za kusiyana () ndi {} - Amapita ndi mkonzi
ISE , yophatikizidwa ndi Windows. Pali ngakhale mtundu wina wa debugger pamenepo. - Ndiosavuta kuyimba kuchokera pamenepo
zigawo zomangira mawonekedwe azithunzi .
0. Kukonzekera.
Tidzafunika:
- Windows PC (ndili ndi Windows 10)
- Osachepera mtundu wina wa intaneti (kudzera NAT mwachitsanzo)
- Kwa iwo omwe ali ndi mwayi wopeza telegalamu - adayika ndikukhazikitsa freegate mu msakatuli, nthawi zina zovuta, kuphatikiza Symple DNS Crypt
- Kukhala ndi kasitomala wogwira ntchito pafoni yanu
- Kumvetsetsa zoyambira - kusinthika kotani, kusanja, kuzungulira kuli bwanji.
Anatsegula ndikuwerenga zolemba -
1. Tiyeni tipange mayeso ena bot.
Popeza aliyense amadziwa kale izi, ndipo zachitika kale, mutha kulumphansoMonga tafotokozera m'nkhani yomwe ili pamwambapa - Choyamba, bot ya Telegalamu - ikadali ntchito yomwe ikuyenda kumbali yanu ndikupanga zopempha ku Telegraph Bot API. Komanso, API ikuwonekera bwino - bot imapeza ulalo winawake wokhala ndi magawo, ndipo Telegalamu imayankha ndi chinthu cha JSON.
Mavuto okhudzana ndi izi: ngati mwanjira ina yosadziwika mutenga kachidindo kuchokera ku chinthu cha JSON ndikutumiza mwanjira ina kuti aphedwe (osati mwadala), codeyo idzaperekedwa kwa inu.
Njira yolenga ikufotokozedwa m'nkhani ziwiri pamwambapa, koma ndikubwereza: mu telegalamu timatsegula mauthenga, fufuzani @botfather, muuzeni /newbot, pangani bot Botfortest12344321, imbani Mynext1234bot, ndikulandira uthenga wokhala ndi chinsinsi chapadera cha fomu 1234544311:AbcDefNNNNNNNNNNNNNNNN
Samalani fungulo ndipo musataye!
Ndiye mutha kukonza bot, mwachitsanzo, kuletsa kuwonjezera pamagulu, koma pamasitepe oyamba izi sizofunikira.
Tiyeni tifunse BotFather "/mybot" ndikusintha makonda ngati sitikonda china chake.
Tiyeni titsegulenso oyanjananso, pezani @Botfortest12344321 pamenepo (ndikofunikira kuti muyambe kufufuza ndi @), dinani "yambani" ndikulembera bot "/ Ulemerero kwa ma robot." Chizindikiro / chikwangwani ndichofunikira, zolemba sizikufunika.
Bot, ndithudi, sangayankhe kalikonse.
Tiyeni tiwone ngati bot idapangidwa ndikutsegula.
pomwe 1234544311:AbcDefNNNNNNNNNNNNNN ndi kiyi yolandilidwa kale,
ndi kupeza mzere ngati
{"chabwino":zoona,"zotsatira":{""}}
Tili ndi mawu oyamba achinsinsi (chizindikiro). Tsopano tiyenera kupeza nambala yachiwiri yachinsinsi - ID ya macheza ndi bot. Macheza aliwonse, gulu, ndi zina zambiri ndi payekha ndipo ali ndi nambala yakeyake (nthawi zina ndi kuchotsera - kwa magulu otseguka). Kuti tipeze nambala iyi, tifunika kupempha mu msakatuli (kwenikweni, sizofunika konse mu msakatuli, koma kuti mumvetse bwino mukhoza kuyamba nayo) adilesi (pomwe 1234544311:NNNNNNNNNN ndi chizindikiro chanu).
https://api.telegram.org/bot1234544311:NNNNNNNNN/getUpdates
ndi kupeza yankho ngati
{"ok":true,"result":[{"update_id":...,... kucheza":{"id":123456789
Tikufuna chat_id.
Tiyeni tiwone kuti titha kulembera macheza pamanja: imbani adilesi kuchokera pa msakatuli
https://api.telegram.org/botΠ²Π°ΡΡΠΎΠΊΠ΅Π½/sendMessage?chat_id=123456789&text="Life is directed motion"
Mukalandira uthenga kuchokera ku bot mumacheza anu, chabwino, mumapita ku gawo lotsatira.
Mwanjira iyi (kudzera msakatuli) mutha kuyang'ana nthawi zonse ngati pali zovuta ndi m'badwo wa ulalo, kapena ngati china chake chabisika kwinakwake ndipo sichigwira ntchito.
Zomwe muyenera kudziwa musanapitirize kuwerenga
Telegalamu ili ndi mitundu ingapo yamacheza amagulu (otseguka, otsekedwa). Pamacheza awa, zina mwazochita (mwachitsanzo, id) ndizosiyana, zomwe nthawi zina zimayambitsa mavuto.
Tiyerekeze kuti ndi kumapeto kwa chaka cha 2019, ndipo ngakhale ngwazi yanthawi yathu ino, wodziwika bwino wa Man-Orchestra (woyang'anira, loya, katswiri wachitetezo chazidziwitso, wopanga mapulogalamu komanso MVP) Evgeniy V. amasiyanitsa kusinthika kwa $ i kuchokera pagulu, wadziwa malupu, yang'anani muzaka zingapo zikubwerazi adzadziwa Chocolatey, ndiyeno
1. Timaganizira zomwe bot yathu idzachita
Ndinalibe malingaliro, ndinayenera kuganiza. Ndalemba kale bot-notebook. Sindinkafuna kupanga bot "yomwe imatumiza chinachake kwinakwake." Kuti mulumikizane ndi Azure mukufunikira kirediti kadi, koma wophunzirayo amachipeza kuti? Tiyenera kukumbukira kuti zonse sizoyipa kwambiri: mitambo yayikulu imapereka mtundu wina wa nthawi yoyesera kwaulere (koma mukufunikirabe nambala ya kirediti kadi - ndipo zikuwoneka ngati dola idzachotsedwa. Sindikukumbukira ngati idabwezedwa pambuyo pake.)
Popanda AI ML sizosangalatsa kupanga bot-osauka-ndakatulo-weaver.
Ndinaganiza zopanga bot yomwe idzandikumbutsa (kapena ayi) mawu a Chingerezi kuchokera mudikishonale.
Kuti mupewe kukangana ndi nkhokwe, dikishonale imasungidwa mufayilo yolembedwa ndikusinthidwa pamanja.
Pankhaniyi, ntchito ndikuwonetsa zoyambira za ntchitoyo, osati kupanga chomaliza pang'ono.
2. Kuyesera chiyani ndi momwe kwa nthawi yoyamba
Tiyeni tipange chikwatu C:poshtranslate
Choyamba, tiyeni tiwone mtundu wanji wamagetsi omwe tili nawo, tiyeni tiyambitse ISE kudzera pakuyamba-run
powershell izi
kapena pezani Powershell ISE mumapulogalamu omwe adayikidwa.
Pambuyo poyambitsa, "mkonzi wamtundu wina" wodziwika bwino adzatsegulidwa; ngati palibe gawo lazolemba, ndiye kuti mutha kudina "Fayilo - pangani chatsopano".
Tiyeni tiwone mtundu wa powershell - lembani m'mawu:
get-host
ndipo dinani F5.
Powershell idzapereka kusunga - "Zolemba zomwe mwatsala pang'ono kuyendetsa zidzapulumutsidwa.", tikuvomereza, ndikusunga fayilo ku powershell ndi dzina mu C: poshtranslate myfirstbotBT100
.
Pambuyo poyambitsa, pawindo lazolemba zapansi timapeza tebulo la data:
Name : Windows PowerShell ISE Host
Version : 5.1.(ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅)
Ndili ndi 5.1 chinachake, ndichokwanira. Ngati muli ndi Windows 7/8 yakale ndiye palibe vuto lalikulu - ngakhale PowerShell idzafunika kusinthidwa kuti ikhale 5 - mwachitsanzo.
Lembani Pezani-Date pamzere wolamula pansipa, dinani Enter, yang'anani nthawi, pitani ku chikwatu ndi lamulo.
cd
ndikuchotsa chinsalu ndi lamulo la cls (ayi, simukuyenera kugwiritsa ntchito rm)
Tsopano tiyeni tiwone zomwe zimagwira ntchito ndi momwe - tiyeni tisalembe ngakhale kachidindo, koma mizere iwiri, ndikuyesera kumvetsetsa zomwe akuchita. Tiyeni tipereke ndemanga pamzere wolandila ndi # chizindikiro ndikuwonjezera pang'ono.
# ΠΡΠΈΠΌΠ΅Ρ ΡΠ°Π±Π»ΠΎΠ½Π° Π±ΠΎΡΠ°
# get-host
<# ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ #>
$TimeNow = Get-Date
$TimeNow
(Chochititsa chidwi ndichakuti pamndandanda wotsikirapo wamakodi pa HabrΓ© pali zosankha khumi ndi ziwiri - koma Powershell palibe. Dos ilipo. Perl alipo.)
Ndipo tiyeni tiyendetse kachidindo mwa kukanikiza F5 kapena ">"kuchokera ku GUI.
Timapeza zotsatira zotsatirazi:
Saturday, December 8, 2019 21:00:50 PM (ΠΈΠ»ΠΈ ΡΡΠΎ-ΡΠΎ ΡΠΈΠΏΠ°)
Tsopano tiyeni tiwone mizere iwiri iyi ndi mfundo zina zosangalatsa kuti tisabwerere ku izi m'tsogolomu.
Mosiyana ndi Pascal (osati kokha), PowerShell yokha imayesa kudziwa kuti ndi mtundu wanji womwe ungagawire kusintha; zambiri za izi zalembedwa m'nkhaniyi.
Choncho, popanga kusintha kwa $TimeNow ndikugawa mtengo wa tsiku ndi nthawi yamakono (Get-Date), sitiyenera kuda nkhawa kwambiri ndi mtundu wa deta yomwe idzakhalapo.
Zowona, kusadziwa uku kungapweteke pambuyo pake, koma ndi zamtsogolo. Pansi palembalo padzakhala chitsanzo.
Tiyeni tiwone zomwe ife tiri nazo. Tiyeni tigwire (pa mzere wolamula)
$TimeNow | Get-member
ndikupeza tsamba la zolemba zosamvetsetseka
Chitsanzo cha zolemba zosamvetsetseka nambala 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")...
Monga mukuonera, kusintha kwa mtundu wa TypeName: System.DateTime yapangidwa ndi njira zambiri (m'lingaliro la zomwe tingachite ndi chinthu chosinthika ichi) ndi katundu.
Tiyeni tiyimbe $TimeNow.DayOfYear
- timapeza chiwerengero cha tsiku la chaka.
Tiyeni tiyimbe $TimeNow.DayOfYear | Get-Member
- timapeza TypeName: System.Int32
ndi gulu la njira.
Tiyeni tiyimbe $TimeNow.ToUniversalTime()
- ndikupeza nthawi ku UTC
Debugger
Nthawi zina zimachitika kuti ndikofunikira kuchita pulogalamu mpaka pamzere wina ndikuwona momwe pulogalamuyo ilili panthawiyo. Pachifukwa ichi, ISE ili ndi ntchito ya Debug - toggle break point
Ikani malo opumira kwinakwake pakati, thamangani mizere iwiriyi ndikuwona momwe kupuma kukuwonekera.
3. Kumvetsetsa kuyanjana ndi bot Telegraph
Zachidziwikire, zolemba zambiri zalembedwa pazolumikizana ndi bot, ndi getpush ndi zina zotero, koma nkhani ya chiphunzitso ikhoza kuganiziridwa mwachisawawa.
M'malo athu ndikofunikira:
- Phunzirani kutumiza zina mwa makalata
- Phunzirani kupeza chinachake kuchokera m'makalata
3.1 Kuphunzira kutumiza china chake m'makalata ndikulandila kuchokera pamenepo
Khodi yaying'ono - gawo 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
ndipo mu Russian Federation panthawiyi timapeza cholakwika Sitingathe kulumikiza ku seva yakutali.
Kapena sitikulandira - zimatengera wogwiritsa ntchito telecom komanso ngati projekiti yakonzedwa ndikugwira ntchito
Chabwino, chomwe chatsala ndikuwonjezera proxy. Chonde dziwani kuti kugwiritsa ntchito proxy yosadziwika komanso yachinyengo ndizowopsa pa thanzi lanu.
Ntchito yopeza wogwirizira wogwira ntchito sizovuta kwambiri - ambiri mwa ma proxies osindikizidwa a http amagwira ntchito. Ndikuganiza kuti yachisanu yandigwira ntchito.
Syntax pogwiritsa ntchito proxy:
Invoke-WebRequest -Uri $URL4SEND -Proxy $MyProxy
Ngati mulandira uthenga pamacheza anu ndi bot, ndiye kuti zonse zili bwino, mutha kupitilira. Ngati sichoncho, pitilizani kukonza zolakwika.
Mutha kuwona zomwe chingwe chanu cha $URL4SEND chimasanduka ndikuyesera kuchipempha mumsakatuli, monga chonchi:
$URL4SEND2 = '"'+$URL4SEND+'"'
start chrome $URL4SEND2
3.2. Tinaphunzira kulemba "chinachake" mu macheza, tsopano tiyeni tiyese kuwerenga
Tiyeni tiwonjeze mizere ina 4 ndikuwona zomwe zili mkati mwa | kupeza-membala
$URLGET = "https://api.telegram.org/bot$MyToken/getUpdates"
$MyMessageGet = Invoke-WebRequest -Uri $URLGET -Method Get -Proxy $MyProxy
Write-Host "Get-Member"
$MyMessageGet | Get-Member
Chosangalatsa kwambiri chimaperekedwa kwa ife
Content Property string Content {get;}
ParsedHtml Property mshtml.IHTMLDocument2 ParsedHtml {get;}
RawContent Property string RawContent {get;set;}
Tiyeni tiwone zomwe zili mwa iwo:
Write-Host "ParsedHtml"
$MyMessageGet.ParsedHtml # ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅
Write-Host "RawContent"
$MyMessageGet.RawContent # ΠΈ ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅, Π½ΠΎ Π΅ΡΠ΅ ΠΊ ΡΠΎΠΌΡ ΠΆΠ΅ ΠΈ ΡΠΈΡΠ°Π΅ΠΌΠΎΠ΅.
Write-Host "Content"
$MyMessageGet.Content
Ngati zonse zikugwirani ntchito, mudzapeza mzere wautali monga:
{"ok":true,"result":[{"update_id":12345678,
"message":{"message_id":3,"from":{"id"
Mwamwayi, m'nkhani yomwe idasindikizidwa kale Telegraph bot ya woyang'anira dongosolo mzerewu (inde, malinga ndi $MyMessageGet.RawContent | kupeza membala ndi System.String), yathyoledwa kale.
4. Pangani zomwe mwalandira (tikudziwa kale kutumiza zinazake)
Monga zalembedwa kale
Choyamba, tilemba mawu ena angapo ku bot kuchokera pa intaneti kapena pafoni
/message1
/message2
/message3
ndikuyang'ana kudzera pa msakatuli pa adilesi yomwe idapangidwa mu $URLGET variable.
Tiwona zinthu monga:
{"ok":true,"result":[{"update_id":NNNNNNN,
"message":{"message_id":10, .. "text":"/message1"
"message":{"message_id":11, .. "text":"/message2
"message":{"message_id":12, .. "text":"/message3
Ndi chiyani? Zinthu zina zovuta kuchokera mgulu la zinthu zomwe zimakhala ndi chizindikiritso cha uthenga wakumapeto-kumapeto, chizindikiritso cha macheza, chizindikiritso chotumizira ndi zina zambiri.
Komabe, sitiyenera kudziwa "chinthu chamtundu wanji" - gawo la ntchitoyi latichitikira kale. Tiyeni tiwone zomwe zili mkatimo:
Kuwerenga analandira mauthenga kapena gawo 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. Kodi tiyenera kuchita chiyani panopa?
Tiyeni tisunge fayiloyo pansi pa dzina la myfirstbotBT105 kapena chilichonse chomwe mungafune, sinthani mutuwo ndikuyankha ma code onse olembedwa kale kudzera.
<#start comment 105 end comment 105#>
Tsopano tiyenera kusankha komwe tingapeze dikishonale (chabwino, komwe - pa disk mu fayilo) ndi momwe zidzawonekere.
Zachidziwikire, mutha kulemba dikishonale yayikulu m'mawu a script, koma izi ndizosiyana ndi mfundoyo.
Ndiye tiyeni tiwone zomwe powershell ingagwire ntchito bwino.
Kwenikweni, samasamala za fayilo yomwe amagwira nayo ntchito, ndipo sitisamala.
Tili ndi kusankha: txt (mungathe, koma bwanji), csv, xml.
Kodi tingawonere aliyense?
Tiyeni tipange kalasi ya MyVocabClassExample1 ndi yosinthika $MyVocabExample1
Ndikuwona kuti kalasiyo idalembedwa popanda $
kodi #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
Tiyeni tiyese kulemba izi mu owona ntchito
Kodi #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
- ndipo timapeza cholakwika pamzere Out-File -FilePath $MyFilenameExample01 -InputObject -Append $MyVocabExample2.
Sakufuna kuwonjezera, a-ah, zamanyazi bwanji.
$MyVocabExample3AsArray = @($MyVocabExample1,$MyVocabExample2)
Out-File -FilePath $MyFilenameExample02 -InputObject $MyVocabExample3AsArray
notepad $MyFilenameExample02
Tiyeni tione zimene zimachitika. Kuwoneka bwino kwamawu - koma momwe mungatumizirenso? Kodi ndidziwitse zolekanitsa mawu, monga ma koma?
Ndipo pamapeto pake mumapeza fayilo ya "comma-separated values ββββ(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
Monga mukuwonera mosavuta, MS sichisiyanitsidwa ndi malingaliro ake; njira yofananira, nthawi ina -FilePath imagwiritsidwa ntchito, ina -Path.
Kuonjezera apo, mu fayilo yachitatu chinenero cha Chirasha chinasowa, mu fayilo yachinayi inapezeka ... chabwino, chinachake chinachitika. #TYPE System.Object[] 00
# "Kuwerengera", "Utali", "Utali", "Rank", "SyncRoot", "IsReadOnly", "IsFixedSize", "IsSynchronized"
#
Tiyeni tilembenso pang'ono:
Export-Csv -Path $MyFilenameExample03 -InputObject $MyVocabExample1 -Encoding Unicode
Export-Csv -Path $MyFilenameExample03 -InputObject $MyVocabExample2 -Append -Encoding Unicode
notepad $MyFilenameExample03
notepad $MyFilenameExample04
Zikuwoneka kuti zathandiza, koma sindimakondabe mawonekedwe.
Sindimakonda makamaka kuti sindingathe kuyika mizere kuchokera ku chinthu kukhala fayilo mwachindunji.
Mwa njira, popeza tinayamba kulembera mafayilo, kodi tingayambe kusunga chipika choyambira? Tili ndi nthawi ngati kusintha, tikhoza kukhazikitsa dzina la fayilo.
Zowona, palibe cholembera pano, koma mutha kuganiza za momwe mungazungulire zipika.
Tiyeni tiyese xml pakadali pano.
Ena 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
Kutumiza ku xml kuli ndi zabwino zambiri - kuwerengeka, kutumiza kunja kwa chinthu chonsecho, ndipo palibe chifukwa chokweza.
Tiyeni tiyese
Kuwerenga pang'ono kuchokera ku xml
$MyFilenameExample06 = $ScriptDir + "Example06.xml"
$MyVocabExample4AsArray = Import-Clixml -Path $MyFilenameExample06
# $MyVocabExample4AsArray
# $MyVocabExample4AsArray[0]
# ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΡ
Π½ΡΠ°Π½ΡΠ°Ρ
. Powershell Π²ΡΠ΅ΠΌΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²Π΅Π΄Π΅Ρ ΡΠ΅Π±Ρ Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π²ΡΠΎΠ΄Π΅ Π±Ρ ΠΊΠ°ΠΊ Π±Ρ ΡΡΠΎΠΈΠ»ΠΎ Π±Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ Π±Ρ.
# Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΌΠ΅Π½Ρ ΡΡΠΈ Π΄Π²Π° Π²ΡΠ²ΠΎΠ΄Π° ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ
# Write-Output $MyVocabExample4AsArray
# write-host $MyVocabExample4AsArray
Tiyeni tibwerere ku ntchitoyo. Tinalemba fayilo yoyesera, ndikuiwerenga, mawonekedwe osungira ndi omveka, ngati kuli kofunikira, mukhoza kulemba mkonzi wosiyana wa fayilo kuti muwonjezere ndi kuchotsa mizere.
Ndiroleni ndikukumbutseni kuti ntchitoyo inali kupanga bot yaing'ono yophunzitsira.
Mtundu wa ntchito: Ndimatumiza lamulo la "chitsanzo" ku bot, bot imanditumizira mawu osankhidwa mwachisawawa ndi zolemba, ndipo pambuyo pa masekondi a 10 amanditumizira kumasulira ndi ndemanga. Timadziwa kuwerenga malamulo, tikufunanso kuphunzira momwe tingasankhire ma proxies, ndikukhazikitsanso zowerengera kuti ziiwale.
Tiyeni tisiye ndemanga zonse zomwe zidanenedwapo kale ngati zosafunikira, perekani ndemanga pazitsanzo zosafunikira ndi txt ndi csv, ndikusunga fayilo ngati mtundu wa B106.
O inde. Tiyeni titumize kena kake ku bot kachiwiri.
6. Kutumiza kuchokera ku ntchito ndi zina
Musanayambe kulandila, muyenera kupanga ntchito yotumizira "chinachake" osati uthenga woyesera.
Inde, mu chitsanzo tidzakhala ndi kutumiza kumodzi kokha ndi ndondomeko imodzi yokha, koma bwanji ngati tifunika kuchita zomwezo kangapo?
Ndikosavuta kulemba ntchito. Chifukwa chake, tili ndi chinthu chosinthika $MyVocabExample4AsArray, chowerengedwa kuchokera pafayilo, mwa mawonekedwe amitundu yambiri ngati zinthu ziwiri.
Nthawi yomweyo, tithana ndi wotchiyo; tidzayifuna mtsogolo (inde, mu chitsanzo ichi sitidzayifuna :)
Kodi #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
}
Monga mukuwonera mosavuta, ntchitoyi imayitanitsa $MyToken ndi $MyChatID, zomwe zinali zolembedwa molimba kale.
Palibe chifukwa chochitira izi, ndipo ngati $MyToken ndi imodzi pa bot iliyonse, ndiye $MyChatID idzasintha malinga ndi macheza.
Komabe, popeza ichi ndi chitsanzo, sitinyalanyaza pano.
Popeza $MyVocabExample4AsArray si mndandanda, ngakhale ndi wofanana kwambiri ndi umodzi, ndiye inu simungakhoze kungochitenga icho funsani kutalika kwake.
Apanso tidzayenera kuchita zomwe sizingachitike - parachute osati molingana ndi kachidindo - tenga ndikuwerengera
Kodi #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)
# Π£Π³Π°Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΌΠΈ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π»Π΅Π³ΡΠ΅ ΡΠΈΡΠ°Π΅ΡΡΡ ΠΏΠΎΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌΠΈ Π»ΡΠ΄ΡΠΌΠΈ.
mwachisawawa
ayi - sitidzachipeza, tili ndi chitsanzo chapadera Chitsanzo 2: Pezani chiwerengero chachisawawa pakati pa 0 ndi 99 Pezani Mwachisawawa -Maximum 100
Chifukwa chake, pa 0..1 tiyenera kukhazikitsa kukula kwa 0..2, ndi nambala yayikulu kwambiri = 1.
7. Kukonza mauthenga obwera ndi kutalika kwa mzere wa mzere
Tinayima kuti poyamba? talandira zosinthika $MyMessageGet
ndi $Content4Pars01 zopezedwa kuchokera pamenepo, zomwe tili ndi chidwi ndi zomwe zili mu Content4Pars01.result array
$Content4Pars01.result[0].update_id
$Content4Pars01.result[0].message
$Content4Pars01.result[0].message.text
Tiyeni titumize bot /message10, /message11, /message12, /mawu ndi mobwerezabwereza /mawu ndi /hello.
Tiyeni tiwone zomwe tili nazo:
$Content4Pars01.result[0].message.text
$Content4Pars01.result[2].message.text
Tiyeni tidutse chilichonse cholandilidwa ndikutumiza yankho ngati uthengawo unali /mawu
nkhani ya kumanga, zomwe ena amazifotokoza ngati-mwina, zimatchedwa powershell
Kodi #7.1
Write-Output "This is part 7"
Foreach ($Result in $Content4Pars01.result) # ΠΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π±ΡΡΡΡΠ΅Π΅
{
switch -wildcard ($Result.message.text)
{
"/word" {MyFirstFunction($TextForExample1)}
}
}
Tiyeni tiyendetse script kangapo. Tipeza mawu omwewo kawiri pakuyesera kulikonse, makamaka ngati talakwitsa pakukhazikitsa mwachisawawa.
Koma siyani. Sitinatumize / mawu kachiwiri, ndiye chifukwa chiyani uthengawo ukukonzedwanso?
Mzere wotumizira mauthenga ku bot uli ndi utali wokwanira (mauthenga 100 kapena 200, ndikuganiza) ndipo uyenera kuchotsedwa pamanja.
Izi zafotokozedwa muzolemba, koma muyenera kuziwerenga!
Pamenepa, tikufuna ?chat_id parameter, ndi &timeout, &limit, &parse_mode=HTML ndi &disable_web_page_preview=true sizikufunika panobe.
Zolemba za
Chizindikiritso cha zosinthidwa zoyamba kubwezedwa. Ayenera kukhala wamkulu ndi mmodzi kuposa apamwamba kwambiri pakati pa zizindikiritso za zosinthidwa zolandilidwa kale. Mwachikhazikitso, zosintha zoyambira ndi zoyambirira
osatsimikizika zosintha zabwezedwa. Zosintha zimayesedwa kuti zatsimikiziridwa posachedwa getUpdates itayitanidwa ndi kuthetsa Apamwamba kuposa update_id yake. Kusintha koyipa kumatha kufotokozedwa kuti mutenge zosintha kuyambira -offset pomwe kumapeto kwa mzere wosintha. Zosintha zonse zam'mbuyomu zidzayiwalika.
Tiyeni tiwone:
$Content4Pars01.result[0].update_id
$Content4Pars01.result[1].update_id
$Content4Pars01.result | select -last 1
($Content4Pars01.result | select -last 1).update_id
Inde, ndipo tidzayikhazikitsanso ndikulembanso ntchitoyo pang'ono. Tili ndi zosankha ziwiri - perekani uthenga wonse ku ntchitoyi ndikuyikonza kwathunthu, kapena perekani ID ya uthenga ndikuyikhazikitsanso. Mwachitsanzo, yachiwiri ikuwoneka yosavuta.
M'mbuyomu, mndandanda wathu wamafunso "mauthenga onse" unkawoneka ngati
$URLGET = "https://api.telegram.org/bot$MyToken/getUpdates"
ndipo zidzawoneka ngati
$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
Palibe amene amakuletsani kuti muyambe kulandira mauthenga onse, kuwakonza, ndipo pokhapokha atachita bwino popempha osatsimikiziridwa -> atsimikiziridwa.
Chifukwa chiyani ndizomveka kuyimba chitsimikiziro pambuyo pomaliza kukonza? Kulephera kumatheka pakati pa kuphedwa, ndipo ngati mwachitsanzo chachatbot yaulere, kusowa uthenga umodzi sichachilendo, ndiye ngati mukukonzekera malipiro a munthu kapena khadi, zotsatira zake zingakhale zoipa.
Mizere ingapo yamakodi
$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. M'malo momaliza
Ntchito zoyambira - kuwerenga mauthenga, kukonzanso mzere, kuwerenga kuchokera pafayilo ndikulemba mpaka fayilo kumachitika ndikuwonetsedwa.
Kwatsala zinthu zinayi zokha:
- kutumiza yankho lolondola ku pempho mu macheza
- kutumiza yankho ku macheza ALIYENSE pomwe bot idawonjezedwa
- kukhazikitsa code mu loop
- kuyambitsa bot kuchokera pa Windows scheduler.
Ntchito zonsezi ndi zophweka ndipo zingatheke mosavuta powerenga zolemba za magawo monga
Set-ExecutionPolicy Yopanda malire ndi -ExecutionPolicy Bypass
kuzungulira kwa mawonekedwe
$TimeToSleep = 3 # ΠΎΠΏΡΠΎΡ ΠΊΠ°ΠΆΠ΄ΡΠ΅ 3 ΡΠ΅ΠΊΡΠ½Π΄Ρ
$TimeToWork = 10 # ΠΌΠΈΠ½ΡΡ
$HowManyTimes = $TimeToWork*60/$TimeToSleep # ΡΡΠ΅ΡΡΠΈΠΊ Π΄Π»Ρ ΡΠΈΠΊΠ»Π°
$MainCounter = 0
for ($MainCounter=0; $MainCounter -le $HowManyTimes) {
sleep $TimeToSleep
$MainCounter ++
Zikomo kwa aliyense amene awerenga.
Source: www.habr.com