10Sep

Kaip generuoti atsitiktinius vardus &Telefono numeriai su "PowerShell"

click fraud protection

Jei 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.

Ką reikia

Prieš pradėdami turite turėti keletą įrankių ir informacijos:

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"( su SP1 arba naujesnė versija) vartotojai gali atsisiųsti atitinkamą "WMF" versiją iš "Microsoft" į KB968929.Ji nepalaikoma XP SP2 arba žemiau, arba Vista be SP1.
  • instagram viewer
  • 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".

pavadinimai

Jums reikės kai kurių vardų sąrašų, kurie pateks į atsitiktinį generatorių.Puikus šaltinis daug pavadinimų ir informacija 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
  • Moteriški 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ės, kurias norite pasirinkti iš scenarijaus. Pavyzdys:

"Smith Johnson Williams" Joneso ruda "

" "Males.txt" turėtų būti pirmieji vardai vyrams, iš kurių norite pasirinkti scenarijų.Pavyzdys:

James John Robert Michael William

Females.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, paprasčiausias 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.Žemiau pateikiami kai kurie negaliojančių telefonų numerių pavyzdžiai, atstovaujantys kiekvienai numerio klasei, kurią generuoja š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 numeris neteisingas, nes Exchange kodai negali baigtis dviem 1s.
  • ( 265) 555-0128
    Šis numeris neteisingas, nes Exchange kodas yra 555, ir , Abonento ID yra ribose, skirtos fiktyviems skaičiams.
  • ( 800) 555-0199
    Šis numeris yra tik 800 numeris su 555 mainų kodu, kuris yra rezervuotas naudoti kaip fiktyvų numerį.

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.

bendrieji komandos

Yra keletas gana paprastų komandų, kurios bus naudojamos šiame scenarijuje, todėl turėtumėte gauti pagrindinę idėją apie tai, ką jie reiškia, prieš pradėdami neria į tai, kaip ją rašyti.

  • ForEach-Object perima masyvą arba sąrašą objektų ir atlieka nurodytą operaciją kiekvienoje 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( pasirinktinai) nurodo, kas turėtų būti padaryta, kai ši sąlyga nėra įvykdyta.
  • jungikliai teiginiai yra tarsi, jei pareiškimai su 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.
  • pabandykite. .. sugauti teiginius padeda spręsti klaidas. Jei klaidingai su scenarijaus bloku, nurodytu bandymui, sugaišta blokas.
  • gavimo turinys daro tai, ką jis sako ant alavo. Jis gauna konkretaus objekto turinį - paprastai failą.Tai gali būti naudojama rodyti teksto failo turinį konsolėje arba, kaip aprašyta šiame scenarijuje, dujotiekio turinį perduoda naudoti su kitomis komandomis.
  • Write-Host įterpia stuff į konsolę.Tai naudojama pranešimams pateikti vartotojui ir nėra įtraukta į scenarijaus išvestį, jei išvestis peradresuojama.
  • rašymo ir išvesties iš tikrųjų generuoja išvestį.Paprastai tai nukreipiama į konsolę, bet ji taip pat gali būti nukreipta kitomis komandomis.

Yra ir kitų komandų scenarijus, bet mes paaiškinsime, kaip mes einame.

Skripto kūrimas

Dabar atėjo laikas purvinti rankas.

1 dalis: pasirengimas eiti

Jei norite, kad jūsų scenarijus būtų pradėtas paleisti iš švarios konsolės, čia yra pirmoji eilutė, kurią norite.

Clear-Host

Dabar, kai mes turime švarų ekraną, kitas dalykas, kurį mes norime padaryti, yra patikrinti scenarijų, kad įsitikintumėte, jog viskas, ko reikia. 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ų scenarijus reikalauja kitų failų, esančių toje pačioje kataloge kaip pats( arba žinomas santykinis kelias iš to katalogo), nes kitu atveju susidursite su klaidomis, jei ir bandysite paleisti scenarijų, kol esate kitojedarbo aplankas.

Antroji eilutė sukuria rinkmenų pavadinimų rinkinį, kuris reikalingas, 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 skripto dalis siunčia $ RequiredFiles masyvą į bloką ForEach-Object.Š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 ten yra , o ne operatorius, kuris pakeičia Test-Path atsakymą, prieš tai perduodamas jį "if" teiginiui. Taigi, jei Test-Path grąžina neteisingą reikšmę( tai yra, failas, kurio ieškome, neegzistuoja), jis bus konvertuotas į tiesą, kad if užrašas atliks scenarijų 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 Test-Path "$ ScriptFolder \ $ _" paleidimo mes iš tikrųjų atliksime kažką panašaus į Test-Path "C: \ Scripts \ Surnames.txt" ( darant prielaidą, kad jūsųscenarijus yra C: \ Scripts, o "ForEach-Object" šiuo metu dirba "Surnames.txt").

Kiekvienam failui nerasta, Write-Host rašo 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 "Nepavyko rasti $ MissingFiles šaltinio failo( -ų). Praleisti scenarijų."-ForegroundColor Red Remove-Variable ScriptFolder, RequiredFiles, MissingFiles Exit}

Čia 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 mes galėtume naudoti , jei( $ MissingFiles -gt 0) , norėdami pamatyti, ar $ MissingFiles yra didesnis nei nulis. 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 yra nulis, 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ų.Reguliarioje "PowerShell" konsolėje "Remove-Variable" tikrai nėra reikalinga tam konkrečiam tikslui, nes scenarijams nustatyti kintamieji paprastai atmetami, 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ęsis. Dar vienas pasirengimas padaryti yra slapyvardis, kad mes tikrai džiaugiamės, kad vėliau.

New-Alias ​​g Get-Random

Slapyvardžiai yra naudojami alternatyviems komandų vardams kurti. Tai gali būti naudinga, kad galėtume susipažinti su nauja sąsaja( pvz., PowerShell turi integruotas slapyvardžius, pvz., dir -> Get-ChildItem ir cat-> Get-Content ) arba trumpų nuorodųdažniausiai naudojamoms komandoms.Čia mes darome labai trumpą nuorodą Get-Random komandai, 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 Get-Random 10 reiškia, kad natūraliau "duok man skaičių nuo 1 iki 10", tai iš tikrųjų reiškia, kad "duok man skaičių nuo 0 iki 9". Galite būti konkretesnė skaičių pasirinkimas, taigi Get-Random elgiasi labiau, kaip jūs natūraliai tikėtumėte, bet mes to nereikėsime šiame scenarijuje.

2 dalis. Vartotojo įvesties ir darbo pradžia

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

while( ! $ ValidInput){ try( [int] $ UserInput = Read-Host -Prompt 'Sukuriami elementai' $ ValidInput = $ true} catch{ Write-Host 'Neteisingas įvestis.Įveskite tik numerį. "-ForegroundColor Raudona}}

Tada, kai sakinys aukščiau, patikrina 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 į true, kad metu loop gali išeiti. Jei nepavyko, sugavimo blokas praneša apie klaidą ir, nes nebuvo nustatyta "$ ValidInput", laiko ciklas sugrįš ir vėl ragins vartotoją.

Kai vartotojas tinkamai 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 vardai ir telefono numeriai. Būkite kantrūs. "N" 1. . $ UserInput |ForEach-Object( & lt; # INSERT RANDOM NAME &NUMANO GENERATORIUS ČIA # & gt;}

Nesijaudinkite, mes neketiname palikti jūsų savarankiškai išsiaiškinti atsitiktinį vardą &numerio generatoriaus kodas. Tai tik užpildytojo komentaras, kuris parodys, kur sekasi kitame skyriuje( kur tikrasis darbas bus atliktas).

eilutė Write-Host yra gana paprasta. Tai tiesiog sako, kiek scenarijų kuria vardai ir telefono numeriai, ir prašo, kad vartotojas būtų kantrus, kol scenarijus atliks savo darbą. `n eilutės pradžioje ir pabaigoje yra įterpti tuščią eilutę prieš ir po to išvesties, kad būtų galima vizualiai atskirti įvesties liniją ir vardų sąrašą &numeriai. Atkreipkite dėmesį, kad tai yra atgaline eiga( AKA "kapiliarinis akcentas" - dažniausiai raktas virš skirtuko, į kairę nuo 1), o ne apostropė ar atskira citata prieš kiekvieną n .

Kitoje dalyje rodomas kitas būdas naudoti "ForEach-Object" kilpą.Paprastai, kai norite, kad scenarijų blokas būtų paleistas tam tikrą skaičių kartų, sukursite reguliarųjį kilpą kaip ( $ x = 1; $ x -le $ UserInput; $ x ++){ & lt; # INSERT SCRIPTČIA # & gt;}. "ForEach-Object" leidžia mums supaprastinti tai, įvedant sveikųjų skaičių sąrašą, o ne pasakojant, kad jis iš tikrųjų daro viską su šiais sveikaisiais skaičiais, mes tiesiog suteiksime jam statinį scenarijų bloką, kol jis baigsis iš sveikųjų skaičių.

3 dalis. Atsitiktinio pavadinimo generavimas

Vardų generavimas yra paprasčiausias likusio šio proceso kiekis. 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ę.

$ Pavardė = Gauti turinį "$ ScriptFolder \ Surnames.txt" |g $ Male = g 2 if( $ Male)( $ FirstName = Get-Content "$ ScriptFolder \ Males.txt" |g} else{ $ FirstName = Get-Content "$ ScriptFolder \ Females.txt" |g}

Pirmoje eilutėje pateikiamas mūsų pavardžių sąrašas, perduodamas jį į atsitiktinį 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 kodėl mes naudojame Get-Random 2 ( arba daug trumpesnį g 2 dėka mūsų slapyvardį - dėl to gali būti pasirinkta tarp nulio ir kitos), kad nuspręstume, ar mūsų vyras 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 Čia labai įdomi dalis. 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ą atsitiktiniu būdu 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 jungiklis( $ NumberFormat){ 0{ $ Prefix = "($( g 2) $( g 10) $( g 10)) $( g 10) $( g 10) $( g 10)"$ 1( $ 10) $( g 10) $( g 10)") 2( $ prefix = "($( g 10)$( g 10) $( 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 kartų atsitiktinių skaičių,mes einame pagal telefono numerį.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 matyti, 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. Norėdami tai padaryti, apvyniokite scenarijų bloką tokiu būdu: "$( & lt; #SCRIPT HERE # & gt;)" .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 būsime pasirengę išduoti savo vardą &telefono numeris yra generuoti abonento ID, kuris bus saugomas kaip $ Suffix.

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

Dėl specialių 555 numerių taisyklių mes negalime tiksugeneruokite keturis atsitiktinius skaitmenis kiekvieno telefono numerio, kurį planuojate atlikti scenarijų, 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.

Atminkite, 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 atėjo laikas produkcijai.

Write-Output "$ FirstName $ Pavardė $ Prefix- $ Suffix"}

Tai beveik taip paprasta, kaip jis pasirodo scenarijuje. 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".

Tai, kad uždarymo laikiklis apačioje yra ankstesnio ciklo "ForEach-Object" pabaiga - praleiskite tai, jei jau jį gavote.

5 dalis: išvalymas ir scenarijaus paleidimas

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

pašalinimo elemento slapyvardis: \ g Pašalinti kintamąjį scenarijų aplanką, RequiredFiles, pavardę, vyrišką vardą, numerį, formatavimą, prefiksą, suffix, ValidInput, UserInput

. Kai visa tai bus padaryta, išsaugokite scenarijų ".ps1" plėtiniutame pačiame aplanke kaip ir jūsų 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 žemiau esančia nuoroda.

atsitiktinis vardas &"PowerShell"

telefono numerio generatorius