Kaip generuoti atsitiktinius vardus ir telefono numerius naudodami "PowerShell"

Turinys:

Kaip generuoti atsitiktinius vardus ir telefono numerius naudodami "PowerShell"
Kaip generuoti atsitiktinius vardus ir telefono numerius naudodami "PowerShell"

Video: Kaip generuoti atsitiktinius vardus ir telefono numerius naudodami "PowerShell"

Video: Kaip generuoti atsitiktinius vardus ir telefono numerius naudodami
Video: 🧙‍♂️ Top 15 Gmail Tips & Tricks - YouTube 2024, Balandis
Anonim
Kai jums reikia duomenų rinkinio, skirto bandymams ar demonstravimui, ir šiam nustatymui reikia pateikti asmeniškai identifikuojamą informaciją (PII), paprastai nenorite naudoti realių duomenų, kurie atspindi tikruosius žmones. Čia padėsime jums sužinoti, kaip galite naudoti "PowerShell", kad sukurtumėte atsitiktinių vardų ir telefonų numerių sąrašą tokiai progai.
Kai jums reikia duomenų rinkinio, skirto bandymams ar demonstravimui, ir šiam nustatymui reikia pateikti asmeniškai identifikuojamą informaciją (PII), paprastai nenorite naudoti realių duomenų, kurie atspindi tikruosius žmones. Čia padėsime jums sužinoti, kaip galite naudoti "PowerShell", kad sukurtumėte atsitiktinių vardų ir telefonų numerių sąrašą tokiai progai.

Ko tau reikia

Prieš pradėdami, yra keletas įrankių ir informacijos, kurią turėtumėte turėti:

"PowerShell"

Šis scenarijus buvo sukurtas naudojant "PowerShell 4.0", taip pat buvo išbandytas suderinamumo su "PowerShell 2.0". "PowerShell 2.0" ar naujesnė versija yra integruota į "Windows" nuo "Windows 7". Taip pat galima naudoti "Windows XP" ir "Vista" kaip "Windows Management Framework" (WMF). Žemiau pateikiama keletas papildomų duomenų ir nuorodų, skirtų atsisiuntimams.

  • "PowerShell 2.0" turi "Windows 7". "Windows XP SP3" ir "Vista" (SP1 arba naujesnė versija) vartotojai gali atsisiųsti atitinkamą "WMF" versiją iš "Microsoft" į KB968929. Ji nepalaikoma XP SP2 arba žemiau, arba Vista be SP1.
  • "PowerShell 4.0" yra su "Windows 8.1". "Windows 7" SP1 vartotojai gali ją atnaujinti kaip "Microsoft" atsisiuntimo centro "WMF" atnaujinimo dalį. Tai nėra "XP" arba "Vista".

Vardai

Jums reikės tam tikrų vardų sąrašų, kurie pateks į atsitiktinį generavimą. Puikus šaltinis a daug pavadinimų ir informacijos apie jų populiarumą (nors tai nebus naudojama šiame scenarijuje), yra Jungtinių Valstijų surašymo biuras. Žemiau esančiose nuorodose pateikiami sąrašai yra labai dideli, todėl galbūt norėsite juos šiek tiek sumažinti, jei planuojate vienu metu sukurti daugybę vardų ir numerių. Mūsų bandymo sistemoje kiekvieno pavadinimo / numerio pora buvo sukurta naudojant maždaug 1,5 sekundes naudojant visus sąrašus, bet jūsų rida gali skirtis priklausomai nuo jūsų sistemos specifikacijų.

  • Pavardės
  • Vyriški vardai
  • Moterų pirmieji vardai

Nepriklausomai nuo naudojamo šaltinio turėsite kurti tris tekstinius failus, kuriuos scenarijus gali naudoti kaip šaltinius savo vardo pasirinkimui. Kiekvienoje byloje turi būti tik vardai ir tik vienas vardas eilutėje. Jie turi būti saugomi tame pačiame aplanke kaip ir jūsų PowerShell scenarijus.

Pavardės.txt turėtų būti pavardžių, kuriuos norite pasirinkti iš scenarijaus. Pavyzdys:

Smith Johnson Williams Jones Brown

Males.txt turėtų būti pirmųjų vyrų vardai, kuriuos norėtumėte pasirinkti iš scenarijaus. Pavyzdys:

James John Robert Michael William

Moterys.txt turėtų būti moterų vardai, kuriuos norėtumėte pasirinkti iš scenarijaus. Pavyzdys:

Mary Patricia Linda Barbara Elizabeth

Telefono numerių taisyklės

Jei norite būti tikri, kad jūsų telefono numeriai nesuderinami su tikruoju telefono numeriu, lengviausias būdas yra naudoti gerai žinomą "555" mainų kodą. Bet jei jūs ketinate rodyti duomenų rinkinį su daugeliu telefono numerių, tas 555 pradės atrodyti gana vienareikšmiškai greita. Jei norite padaryti ką nors įdomesnį, sukursime kitus telefono numerius, kurie pažeidžia Šiaurės Amerikos numeravimo plano (NANP) taisykles. Toliau pateikiami kai kurie negaliojančių telefonų numerių pavyzdžiai, atstovaujantys kiekvienai numerio klasei, kurią sukurs šis scenarijus:

  • (157) 836-8167 Šis numeris neteisingas, nes ploto kodai negali prasidėti nuo 1 ar 0.
  • (298) 731-6185 Šis skaičius yra neteisingas, nes NANP nesuteikia srities kodų, o 9 - antruoju skaitmeniu.
  • (678) 035-7598 Šis numeris neteisingas, nes "Exchange Codes" negali prasidėti nuo 1 ar 0.
  • (752) 811-1375 Šis skaičius yra neteisingas, nes "Exchange Codes" negali baigtis dviem 1s.
  • (265) 555-0128 Šis skaičius yra neteisingas, nes Exchange kodas yra 555, ir abonento identifikatorius yra fiktyvių skaičių ribų ribose.
  • (800) 555-0199 Šis numeris yra tik 800 numeris su 555 Mainų kodeksu, kuris yra skirtas naudoti kaip fiktyvus numeris.

Atkreipkite dėmesį, kad pirmiau nurodytos taisyklės gali keistis ir gali skirtis priklausomai nuo jurisdikcijos. Turėtumėte atlikti savo tyrimą, kad galėtumėte patikrinti galiojančias taisykles, taikomas vietai, kuriai jūs naudosite telefono numerius.

Bendri komandos

Yra keletas gana paprastų komandų, kurios bus naudojamos šiame scenarijuje, todėl turėtumėte gauti pagrindinę idėją apie tai, ką tai reiškia, prieš pasinerdami į tai, kad ją raštu.

  • ForEach-Object paima objektų masyvą ar sąrašą ir atlieka nurodytą operaciją kiekviename iš jų. "ForEach-Object" scenarijų bloko "$ _" kintamasis naudojamas norint nurodyti dabartinį apdorojamą objektą.
  • jei … kitaip pareiškimai leidžia atlikti operaciją tik tuo atveju, jei įvykdomos tam tikros sąlygos, ir (neprivaloma) nurodoma, kas turi būti padaryta, kai ši sąlyga nėra įvykdyta.
  • perjungti teiginiai yra tarsi teiginiai, kuriuose yra daugiau pasirinkimų. Jungiklis tikrins objektą keliomis sąlygomis ir paleis visus scenarijų blokus, nurodytus sąlygoms, kurias objektas atitinka. Taip pat galite, pasirinktinai, nurodyti numatytą bloką, kuris bus paleistas tik tuo atveju, jei nėra kitų sąlygų. Perjungti teiginius taip pat naudoja $ _ kintamąjį, kad būtų nurodytas dabartinis apdorojamas elementas.
  • o pareiškimai leidžia nuolat kartoti scenarijaus bloką, kol bus įvykdyta tam tikra sąlyga. Kai kažkas atsitinka, kad baigiantis scenarijaus blokui būklė nebėra tikra, lizdas išeina.
  • pabandyk … sugauti pareiškimai padeda tvarkyti klaidas. Jei klaidingai su scenarijaus bloku, nurodytu bandymui, sugaišta blokas.
  • Gauti turinį daro tai, ką sako ant alavo.Jis gauna konkretaus objekto turinį - paprastai failą. Tai gali būti naudojama teksto failo konsolėje rodymui rodyti arba, kaip aprašyta šiame scenarijuje, dujotiekio turinį perduoda naudoti su kitomis komandomis.
  • Write-Host įdėti daiktus į konsolę. Tai naudojama pranešimams pateikti vartotojui ir nėra įtraukta į scenarijaus išvestį, jei išvestis peradresuojama.
  • Rašymas-išvestis iš tikrųjų generuoja produkciją. Paprastai tai nukreipiama į konsolę, bet ji taip pat gali būti nukreipta kitomis komandomis.

Skripte yra ir kitų komandų, bet mes paaiškinsime, kaip mes einame.

Kurti scenarijų

Dabar atėjo laikas purvinti rankas.

1 dalis: pasirengimas eiti

Jei jums patinka jūsų scenarijus, kad pradėtumėte veikti iš švarios konsolės, čia yra ta pati pirmoji eilutė.

Clear-Host

Dabar, kai mes turime švarų ekraną, kitas dalykas, kurį mes norime padaryti, yra patikrinti scenarijų, kad įsitikintumėte, jog viskas, ko reikia, yra vietoje. Norėdami tai padaryti, turime pradėti pasakoti, kur ieškoti ir ko ieškoti.

$ScriptFolder = Split-Path $MyInvocation.MyCommand.Definition -Parent $RequiredFiles = ('Males.txt','Females.txt','Surnames.txt')

Pirmoji eilutė yra labai naudinga bet kuriam scenarijui. Jis apibrėžia kintamąjį, kuris nurodo į aplanką, kuriame yra scenarijus. Tai labai svarbu, jei jūsų scenarijų reikia kitus failus, esančius tame pačiame kataloge, kaip pats (ar žinomas santykinis kelias nuo tos kataloge), nes jums bus kitaip susidurti su klaidomis, jei ir kai bandote paleisti scenarijų, o jūs dar darbo aplankas.

Antroji eilutė sukuria daugybę failų pavadinimų, reikalingų, kad scenarijus būtų tinkamai paleistas. Mes panaudosime tai kartu su $ ScriptFolder kintamuoju kitame kūrinyje, kuriame tikrinsime, ar šie failai yra.

$RequiredFiles | ForEach-Object { if (!(Test-Path '$ScriptFolder$_')) { Write-Host '$_ not found.' -ForegroundColor Red $MissingFiles++ } }

Ši scenarijaus dalis siunčia $ RequiredFiles masyvą į "ForEach-Object" bloką. Šio scenarijaus bloko atveju "if" teiginys naudoja "Test-Path", norėdami pamatyti, ar ieškomas failas yra toje vietoje, kur jis priklauso. Test-Path yra paprasta komanda, kuri, pateikdama failo kelią, grąžina pagrindinį tikrąjį ar klaidingą atsakymą, kad galėtume mums pranešti, ar kelias nurodo kažką, kas egzistuoja. Šauktukas čia yra ne operatorius, kuris pakeičia Test-Path atsakymą prieš jį perduodamas į "if" teiginį. Taigi, jei bandymų kelias False (tai yra, kad failas, mes ieškome neegzistuoja), ji bus konvertuojama į tiesa, kad jei pareiškimas bus atlikti savo scenarijaus bloką.

Kitas dalykas, į kurį reikia atkreipti dėmesį, kuris dažnai bus naudojamas šiame scenarijuje, yra dvigubos kabutės, o ne vienkupažinės. Kai ką nors įdėjote į vieną kabučių, "PowerShell" tai traktuoja kaip statinę eilutę. Nesvarbu, kas yra vienkartiniuose kabutėse, bus perduodama tiksliai taip, kaip yra. Dvigubos kabutės pasako "PowerShell" versti kintamuosius ir kai kuriuos kitus specialius elementus eilutėje, prieš tai perduodant. Čia dvigubos kabutės reiškia, kad vietoj bėgimo Bandymo kelias '$ ScriptFolder $ _' mes iš tikrųjų darysime kažką panašaus Bandymo kelias "C: Scripts Surnames.txt" (darant prielaidą, kad jūsų scenarijus yra C: Scripts, o "ForEach-Object" šiuo metu dirba "Surnames.txt").

Jei kiekvieno failo nerasta, Write-Host rašys klaidos pranešimą raudonai, kad pasakytų, kuris failas trūksta. Tada padidinamas kintamasis $ MissingFiles, kuris bus naudojamas kitame kūrinyje, klaidingai ir uždarytas, jei nėra jokių failų.

if ($MissingFiles) { Write-Host 'Could not find $MissingFiles source file(s). Aborting script.' -ForegroundColor Red Remove-Variable ScriptFolder,RequiredFiles,MissingFiles Exit }

Štai dar vienas tinkamas triukas, kurį galite padaryti su teiginiais. Daugelyje gairių matysite, ar teiginiai pasakys, kad naudosite operatorių, kad patikrintumėte atitikimo sąlygą. Pavyzdžiui, čia galėtume naudotis jei ($ MissingFiles -gt 0) ar $ MissingFiles yra didesnis už nulį. Tačiau jei jau naudojate komandas, kurios grąžina loginę reikšmę (kaip ir ankstesniame skyriuje, kuriame naudojome "Test-Path"), tai nėra būtina. Taip pat galite atlikti be jo tokiais atvejais, kai tik bandote pamatyti, ar skaičius yra lygus nuliui. Bet koks nulinis skaičius (teigiamas arba neigiamas) yra laikomas tiesa, o nulis (arba, kaip gali atsitikti, neegzistuojantis kintamasis) bus laikomas klaidinga.

Jei $ MissingFiles egzistuoja ir nėra nulio, Write-Host paskelbia pranešimą, kuriame nurodoma, kiek failų trūksta ir kad scenarijus bus nutrauktas. Tada "Remove-Variable" išvalys visus sukurtus kintamuosius ir Exit baigs scenarijų. Tuo reguliariai PowerShell konsolės, šalinti-Kintamasis nelabai reikia šiam konkrečiam tikslui, nes iki scenarijus nustatyti kintamieji paprastai išmesti, kai scenarijus išeina. Tačiau "PowerShell ISE" elgiasi šiek tiek kitaip, todėl galbūt norėsite tai išsaugoti, jei planuojate paleisti scenarijų iš ten.

Jei viskas tvarkinga, scenarijus tęsiasi. Dar vienas pasirengimas padaryti yra slapyvardis, kad mes tikrai džiaugiamės, kad vėliau.

New-Alias g Get-Random

Slapyvardžiai yra naudojami komandų pakaitiniams pavadinimams kurti. Tai gali būti naudinga, kad galėtume susipažinti su nauja sąsaja (pvz., "PowerShell" turi įmontuotus slapyvardžius dir -> Get-ChildItem ir katė -> gaukite turinį), arba trumpai apibūdinti bendrai naudojamas komandas. Čia mes darome labai trumpoji nuoroda į Get-Random komanda, kuri bus naudojama daug vėliau.

Get-Random gana daug daro tai, ką reiškia jo pavadinimas. Atsižvelgiant į masyvą (pvz., Pavadinimų sąrašą) kaip įvestį, jis renkasi atsitiktinį elementą iš masyvo ir išskleidžia jį. Jis taip pat gali būti naudojamas atsitiktinių skaičių generavimui. Vis dėlto reikia prisiminti apie "Get-Random" ir skaičių, kad, kaip ir daugelis kitų kompiuterių operacijų, jis pradeda skaičiuoti nuo nulio. Taigi vietoj to "Get-Random" 10 tai reiškia, kad daugiau natūralių "duok man skaičių nuo 1 iki 10", tai iš tikrųjų reiškia "duok man skaičių nuo 0 iki 9." Galite būti konkretesnis skaičių pasirinkimui, taigi "Get-Random" elgsis labiau kaip natūraliai tikėtis, bet mums to nereikės šiame scenarijuje.

2 dalis. Vartotojo įvedimo ir darbo pradžia

Nors scenarijus, sukuriantis tik vieną atsitiktinį vardą ir telefono numerį, yra puikus, daug geriau, jei scenarijus leidžia vartotojui nurodyti, kiek vardų ir numerių jie nori gauti vienoje partijoje. Deja, mes tikrai negalime pasitikėti vartotojais, kad jie visada pateiktų galiojančią informaciją. Taigi, čia mažai šiek tiek daugiau nei tik $ UserInput = Read-Host.

while (!$ValidInput) { try { [int]$UserInput = Read-Host -Prompt 'Items to be generated' $ValidInput = $true } catch { Write-Host 'Invalid input. Enter a number only.' -ForegroundColor Red } }

Skaičiuojamas sakinys aukščiau tikrina ir atmetė $ ValidInput reikšmę. Kol $ ValidInput yra klaidingas arba jo neegzistuoja, jis liks per savo scenarijaus bloką.

Bandymo teiginys perima vartotojo įvestį per "Read-Host" ir bando jį paversti sveika verte. (Tai yra [int] prieš "Read-Host".) Jei jis bus sėkmingas, jis nustatys $ ValidInput į tikrąją, kad tuo metu, kai ciklas išeina. Jei nepavyko, sugavimo blokas praneša apie klaidą ir, nes nebuvo nustatyta "$ ValidInput", laiko ciklas sugrįš ir vėl ragins vartotoją.

Kai naudotojas teisingai nurodė, kad numeris yra įvestis, mes norime, kad scenarijus praneštų, kad jis ketina pradėti iš tikrųjų atlikti savo darbą, ir tada apie tai padaryti.

Write-Host '`nGenerating $UserInput names & phone numbers. Please be patient.`n' 1..$UserInput | ForEach-Object { <# INSERT RANDOM NAME & NUMBER GENERATOR HERE #> }

Nesijaudinkite, mes nesistengsime palikti jūsų savarankiškai išsiaiškinti atsitiktinio vardo ir numerio generatoriaus kodą. Tai tik užpildytojo komentaras, kuris parodys, kur sekasi kitame skyriuje (kur tikrasis darbas bus atliktas).

"Write-Host" eilutė yra gana paprasta. Tai tiesiog sako, kiek scenarijų kuria vardai ir telefono numeriai, ir prašo vartotojo būti kantriems, kol scenarijus atlieka savo darbą. The`npradžioje ir pabaigoje eilutė yra įterpti tuščią eilutę prieš ir po to išvesties, tik tam kad vizualiai atskirtų įvesties liniją nuo vardų ir numerių sąrašo. Atkreipkite dėmesį, kad tai yra "atgalinė" (AKA "kapo akcentas" - dažniausiai raktas virš skirtuko, į kairę nuo 1), o ne apostropė arba viena citata prieš kiekvieną n.

Kitoje dalyje pateikiamas kitoks būdas naudoti "ForEach-Object" kilpą. Paprastai, kai norėtumėte, kad scenarijaus blokas būtų paleistas tam tikrą skaičių kartų, nustatysite reguliarųjį kilpos panašumą už ($ x = 1; $ x -le $ UserInput; $ x ++) {<# INSERT SCRIPT HERE #>}."ForEach-Object" leidžia supaprastinti tai, pateikiant sveikųjų skaičių sąrašą, o ne pasakojant, kad iš tikrųjų daro viską su šiais sveikaisiais skaičiais, mes tik pateikime jam statinį scenarijų bloką, kuris paleidžiamas, kol jis baigsis iš sveikųjų skaičių.

3 dalis: atsitiktinio vardo generavimas

Pavadinimas yra paprasčiausias likęs šio proceso truputis. Jį sudaro tik trys etapai: pasirinkimas pavardės, lyties pasirinkimas ir vardo pasirinkimas. Nepamiršk, kad pseudonimą mes padarėme "Get-Random" šiek tiek atgal? Laikas pradėti naudoti šią priemonę.

$Surname = Get-Content '$ScriptFolderSurnames.txt' | g $Male = g 2 if ($Male) {$FirstName = Get-Content '$ScriptFolderMales.txt' | g} else {$FirstName = Get-Content '$ScriptFolderFemales.txt' | g}

Pirmoje eilutėje pateikiamas mūsų pavardžių sąrašas, perduodamas jį į atsitiktinių parinkiklį ir priskirtas pasirinktas vardas priskiriamas $ pavardei.

Antroji eilutė nustato mūsų asmens lytį. Prisimink, kaip "Get-Random" prasideda skaičiavimas nuo nulio ir kaip nulis yra klaidingas ir viskas yra tiesa? Štai kaip mes naudojame Get-Random 2 (arba daug trumpesnis g 2 dėka mūsų slapyvardžio - tiek rezultatas yra pasirinkimas tarp nulio ar vieno), norint nuspręsti, ar mūsų asmuo yra vyriškas, ar ne. Vėliau pateikiamas teiginys "if / else" atsitiktinai pasirenka vyrišką ar moterišką vardą.

4 dalis. Atsitiktinio telefono numerio generavimas

Štai tikrai įdomus dalykas. Anksčiau mes parodėme, kaip keliais būdais galite įvesti netinkamą ar fiktyvų telefono numerį. Kadangi mes nenorime, kad visi mūsų numeriai atrodytų pernelyg panašūs vienas į kitą, kiekvieną kartą atsitiktine tvarka pasirinksite netinkamo numerio formatą. Atsitiktinai pasirinkti formatai bus apibrėžti pagal jų zonos kodą ir keitimo kodą, kurie bendrai bus laikomi kaip $ prefiksas.

$NumberFormat = g 5 switch ($NumberFormat) { 0 {$Prefix = '($(g 2)$(g 10)$(g 10)) $(g 10)$(g 10)$(g 10)'} 1 {$Prefix = '($(g 10)9$(g 10)) $(g 10)$(g 10)$(g 10)'} 2 {$Prefix = '($(g 10)$(g 10)$(g 10)) $(g 2)$(g 10)$(g 10)'} 3 {$Prefix = '($(g 10)$(g 10)$(g 10)) $(g 10)11'} 4 {$Prefix = '($(g 10)$(g 10)$(g 10)) 555'} }

Pirmoji eilutė yra paprastas atsitiktinių skaičių kartas, kad pasirinktumėte, kokio formato mes ketiname sekti telefono numeriu. Tada perjungimo nuostata ima tą atsitiktinį pasirinkimą ir atitinkamai generuoja $ prefiksą. Nepamirškite, kad netinkamų telefono numerių tipų sąrašas? Vertės $ NumberFormat 0-3 atitinka pirmuosius keturis to sąrašo. 4 vertė gali sugeneruoti vieną iš paskutiniųjų dviejų, nes abu naudoja "555" mainų kodą.

Čia taip pat galite pamatyti, kad naudodamiesi dvigubomis kabutėmis naudojame kitą apgauti. Dvigubos kabutės leidžia ne tik interpretuoti kintamuosius prieš išleidžiant juos iš eilės - jie taip pat leidžia apdoroti scenarijaus blokus. Kad tai padarytumėte, scenarijų bloką įtrauksite taip: "$ (<# SCRIPT HERE #>)". Taigi, ką tu aukščiau, yra daug individualiai atsitiktine tvarka suskirstytų skaitmenų, kai kurie iš jų yra riboti arba nustatomi statiniai pagal taisykles, kurias turime laikytis. Kiekvienoje eilutėje taip pat yra skliaustų ir tarpų, kaip paprastai tikitės pamatyti zonos kodu ir "Exchange Code" pora.

Paskutinis dalykas, kurį turime padaryti, kol mes pasirengę išvesti savo vardą ir telefono numerį, yra sukurti abonento ID, kuris bus saugomas kaip "$ Suffix".

switch ($NumberFormat) { {$_ -lt 4} {$Suffix = '$(g 10)$(g 10)$(g 10)$(g 10)'} 4 { switch ($Prefix) { '(800) 555' {$Suffix = '0199'} default {$Suffix = '01$(g 10)$(g 10)'} } } }

Dėl specialių 555 numerių taisyklių mes galime ne tik sugeneruoti keturis atsitiktinius skaitmenis kiekvieno telefono numerio, kurį mūsų scenarijus ketina padaryti, pabaigoje. Taigi, pirmasis jungiklis patikrina, ar mes susiduriame su 555 numeriu. Jei ne, tai generuoja keturis atsitiktinius skaitmenis. Jei numeris yra 555, antrasis jungiklis patikrina 800 srities kodą.Jei tai atitinka, yra tik vienas galiojantis $ Suffix, kurį galime naudoti. Priešingu atveju nuo 01:00 iki 01:99 leidžiama rinktis.

Atkreipkite dėmesį, kad šis blokas galėjo būti parašytas keletą skirtingų būdų, o ne taip, kaip jis yra. Abu perjungimo teiginiai galėjo būti pakeisti įrašais if / else, nes kiekvienas iš jų gali atlikti tik du variantus. Be to, vietoj to, kad išskirtų "4" kaip pirmojo jungiklio teiginio parinktį, "numatytoji" galėjo būti naudojama panaši į tai, kaip tai buvo padaryta antrajame, nes tai buvo vienintelė galimybė palikti. Pasirinkimas tarp "if / else" ir "switch" arba kur naudoti numatytąjį raktinį žodį, o ne konkrečias vertes, dažnai priklauso nuo asmeninių nuostatų. Kol tai veikia, naudokite tai, ko jums labiausiai patinka.

Dabar laikas pasirodyti.

Write-Output '$FirstName $Surname $Prefix-$Suffix' }

Tai beveik toks pat paprastas, kaip ir scenarijų. Tai tiesiog išveda pirmąjį ir pavardę, atskirtą tarpu, tada kitą vietą prieš telefono numerį. Čia yra pridėta standartinė brūkšninė tarp "Exchange Code" ir "Subscriber ID".

Apatinis dugno uždarymo laikiklis yra "ForEach-Object" linijos pabaiga nuo ankstesnio - pamiršite tai, jei jau ją gavote.

5 dalis: valymas ir scenarijaus vykdymas

Po to, kai visas darbas atliktas, geras scenarijus žino, kaip išvalyti po save. Vėlgi, žemiau nurodytas kintamasis panaikinimas iš tikrųjų nereikalingas, jei tik paleidžiate scenarijų iš konsolės, bet jūs norėsite, jei kada nors ketinate paleisti jį ISE.

Remove-Item alias:g Remove-Variable ScriptFolder,RequiredFiles,Surname,Male,FirstName,NumberFormat,Prefix,Suffix,ValidInput,UserInput

Po to, kai visa tai padaryta, išsaugokite scenarijų ".ps1" plėtiniu tame pačiame aplanke kaip ir vardų failai. Įsitikinkite, kad jūsų "ExecutionPolicy" yra nustatytas taip, kad scenarijus galėtų būti paleistas, ir suteikti jai sūkurį.

Štai scenarijaus veiksmo ekrano kopija:

Taip pat galite atsisiųsti ZIP failą, kuriame yra šis "PowerShell" scenarijus, ir tekstinius failus su vardų sąrašais iš toliau pateiktos nuorodos.
Taip pat galite atsisiųsti ZIP failą, kuriame yra šis "PowerShell" scenarijus, ir tekstinius failus su vardų sąrašais iš toliau pateiktos nuorodos.

"PowerShell" atsitiktinis vardas ir telefono numerio generatorius

Rekomenduojamas: