Maitiro ekubata zvikanganiso muPowerShell zvinobudirira

Kugadziridza kwekupedzisira: 07/02/2025
munyori: Isaac
  • Nzwisisa mutsauko uripo pakati pekugumisa uye kusagumisa kukanganisa.
  • Shandisa $Error uye ErrorVariable kubata zvikanganiso nemazvo.
  • Adopt Edza / Bata / Pakupedzisira inovharira kubata kunze ne granular control.
  • Seta $ErrorActionPreference kune yaunoda kukanganisa maitiro.

PowerShell vs CMD: Zvakanakira uye Zvakaipa-9

PowerShell Icho chishandiso chine simba zvakanyanya kubata, otomatiki uye kutonga mabasa mukati meiyo ecosystem ye operating systems Windows nedzimwe nzvimbo. Zvisinei, sezvakaita chero mutauro we programming, kubata kwe zvikanganiso chikamu chakakosha chekuona kuti zvinyorwa zvinofamba zvakanaka uye nemazvo.

Muchikamu chino, tichaongorora zvakadzama maitiro ekubata zvikanganiso muPowerShell, kubva kune izvo zvekutanga kusvika kune mamwe maitiro chaiwo. Tichakurukura nzira dzakasiyana uye nzira dzaungaite kuti uvandudze kusimba kwezvinyorwa zvako uye kuona kuti kutadza kubatwa nemazvo pasina kukanganisa maitiro akakosha.

Kukanganisa Kubata Basics muPowerShell

Kuti unzwisise maitiro ekugadzirisa zvikanganiso muPowerShell, zvakakosha kusiyanisa pakati pemhando mbiri huru dzezvikanganiso: zvikanganiso zvekugumisa (kugumisa zvikanganiso) uye zvikanganiso zvisiri zvekugumisa (kusagumisa zvikanganiso).

  • Kukanganisa kusiri kupedza: Rudzi urwu rwekukanganisa harukanganisi kuita kwe chinyorwa. Semuenzaniso, kana PowerShell isingakwanise kugadzirisa faira rega mune runyorwa, icharamba ichiedza zvinhu zvinotevera.
  • Kukanganisa kwekugumisa: Zvikanganiso izvi zvinoita kuti script kana pombi imire nekukasika. Iwo akanyanya kukomba uye anoda kutariswa nekukurumidza.

Kunzwisisa mutsauko uyu kwakakosha pakushandisa maturusi akakodzera ekubata kukanganisa muPowerShell.

Kutadza kubata ne$Error uye ErrorVariable

Kukanganisa kubata muPowerShell kunonyanya kuenderana nekushandiswa kwemaotomatiki akasiyana senge $Error uye paramende ErrorVariable.

$Error: Ishanduko yepasi rose iyo inoshanda serunyorwa rwekukanganisa panguva yechikamu chazvino. Zvikanganiso zvitsva zvinowedzerwa kumusoro kwechinyorwa, uye unogona kuwana iyo ichangoburwa ne $Error[0]. Kubvisa zvikanganiso zvese zvakaunganidzwa, shandisa $Error.Clear().

ErrorVariable: Iyi parameter inokutendera kuti utore zvikanganiso kubva kune yakatarwa kuraira kuita kune yakasarudzika tsika. Kusiyana $Error, ErrorVariable haiunganidzi kukanganisa kwevamwe rairo akambourayiwa.

  Yakazara gwara rekugadzirisa zvisizvo zvisingazivikanwe zvishandiso muWindows: kukanganisa makodhi 28, 43, nezvimwe.

Somuenzaniso:

Get-ChildItem -Path "C:\CarpetaInexistente" -ErrorVariable MiError

Muchiitiko ichi, zvikanganiso zvinogadzirwa nemurairo zvichachengetwa mukusiyana $MiError.

Kushandisa $ErrorActionPreference uye ErrorAction

Mukati mePowerShell, pane otomatiki shanduko inonzi $ErrorActionPreference iyo inodzora kuti kukanganisa kunoitwa sei. Izvi zvakasiyana, senge parameter Error Action, inogamuchira zvakati wandei:

  • Rambai: Izvi ndizvo zvinogara zviripo. Ratidza kukanganisa mukoni uye ramba uchimhanyisa script.
  • ChinyararireEndererai mberi: Dzvinyirira meseji yekukanganisa uye enderera mberi nekuita.
  • Mira: Inomisa script kana kukanganisa kwasangana.
  • Bvunza: Bvunza mushandisi kuti woenderera sei kana paine chikanganiso.
  • Ziva: Rega kukanganisa zvachose uye usazvinyore (inowanikwa kubvira PowerShell 3.0).

Semuenzaniso, kana iwe uchida kuti kukanganisa kuitwe sekupedza zvikanganiso, unogona kushandisa:

$ErrorActionPreference = "Mira"

Edza/Bata/Pakupedzisira Zvivhare

Mabhuroko Edza/Bata/Pakupedzisira chishandiso chakakosha chekubata kumisa zvikanganiso muPowerShell. Iyi nzira inokubvumira kubata uye kubata zvisiri izvo nenzira inodzorwa.

The basic structure is:

Edza {# Kodhi inogona kukanganisa kukanganisa } Bata [SpecificException] {# Kubata imwe yakasarudzika } Bata {# Kubata chero kusarudzika } Pakupedzisira {# Kodhi inogara ichiitwa, kunyangwe paine chikanganiso kana kuti kwete}

Chikamu pakupedzisira Inobatsira kusunungura zviwanikwa kana kuita chero chiitiko chinoda kuitwa zvisinei nekuti kukanganisa kwakaitika.

kukanganisa kubata nekuedza kubata

Zvishandiso zvinobatsira zveErrorRecord

Kana kukanganisa kukaitika, PowerShell inogadzira chinhu ErrorRecord. Izvi zvine ruzivo rwakadzama nezve chikanganiso uye chinowanikwa kuburikidza nezvinosiyana $Error o $_ mukati meblock Catch.

Zvimwe zvakakosha zvimiro zve ErrorRecord zvinosanganisira:

  • TargetObject: Chinhu chakonzera kukanganisa.
  • CategoryInfo: Chikamu uye tsananguro pfupi yekukanganisa.
  • Kunze kwekuti: Tsanangudzo yekusarudzika yakagadzirwa.
  • InvocationInfo: Ruzivo rwakananga nezve murairo kana script pakaitika kukanganisa.

Aya maficha anobatsira zvakanyanya pakuona chikonzero chekukanganisa uye kutora matanho ekugadzirisa.

Mazano ekuvandudza kukanganisa kukanganisa

Isu tinopa mamwe mazano anoshanda:

  • Dzivisa kufuratira kukanganisa ne ChinyararireEndererai mberi kana mablocks asina chinhu mukati Catch.
  • Kana ukashandisa mapurogiramu ekunze, shandisa $LASTEXITCODE kuti utarise kodhi yekubuda uye ita shuwa kuti inoteedzera zvibvumirano zvakajairwa.
  • Ita bvunzo kuona zvinogona kukanganisa uye maitiro avo usati waendesa script kunzvimbo dzekugadzira.
  • Shandisa mabhuroko Edza/Bata kubata zvikanganiso zvakakomba uye kuona kuti zvinyorwa zvako zvakasimba uye zvinofanotaurwa.
  Nzira yekuisa sei zvirongwa paWindows pasina chinoisa

Kunzwisisa uye kunyatsogadzirisa zvikanganiso muPowerShell kwakakosha kune chero maneja kana mugadziri. Nezvishandiso uye marongero akatsanangurwa, iwe unozokwanisa kugadzirisa matambudziko zvakanyanya, kugonesa maitiro ako uye kuderedza kukanganisa. Iye zvino zvaunonyatso ziva kukanganisa kubata muPowerShell, yave nguva yekuiisa mukuita!