Postitus, mis vihkab Mighty Shelli

Olen kunagi ammu kirjutanud ĂŒhe lihtsa skripti, mis kustutab mÀÀratud kataloogis kĂ”ik alamakataloogid, millel on antud nimed:

Remove-Item * -Force -Recurse -Include name1,name2,name3 -ErrorAction SilentlyContinue

Ma pole seda juba pikka aega kasutanud ja nĂŒĂŒd see vajaminevus tekib. KĂ€ivitan — midagi ei kustutatud.

WTF?, mĂ”tlen. Hakkasin uurima. Olin pikkade seiklustega, luues eelnevalt nimekirja ja muutes nimesid — ikka ei kustuta midagi. Viimaks lugesin nende dokumentatsioonist: "Tegelikult -Include tĂ”rkab, kui seda kasutatakse koos -Recurse'iga, nii et kasuta konksu konstruktsiooni.":

Kuna Recurse parameetril Remove-Item komandos on teadaolev probleem, kasutab selles nÀites kÀsk Get-ChildItem soovitud failide saamiseks ja seejÀrel kasutatakse toru operaatorit nende edastamiseks Remove-Item'ile.

Nojah, kirjutasin ĂŒmber kasutades seda konksu. Ühe sĂ”naga — ei kustuta midagi. Veelgi enam, Get-ChildItem koos -Include tagastab tĂŒhjuse. Taaskord, mida ma ainult ei teinud, kuidas ma ainult ei keeranud parameetritega — ei tööta. Peamine on, et -Exclude töötas, aga -Include kuidagi ei toimi. Kulutasin sellele terve pĂ€eva: mĂ”tlesin pidevalt, et kuskil parameetrites on midagi valesti, et ma ei arvestanud mĂ”ne salapĂ€rase nĂŒansiga. Ja mis lĂ”puks selgus? Paigaldasin nende PS7.1 — see töötas. Seal töötas isegi esimene lihtne variant, kasutades ainult Remove-Item olen teeninud. KokkuvĂ”ttes osutus see nende veaks.

Kuid pĂ€rast vaeva nende VĂ”imsa Shelliga, otsisin Google'ist, miks nende shellil on nii peavalu tekitav sĂŒntaks. Nad positsioneerivad selle, nagu oleks see .NET konsolile, aga nende sĂŒntaksist pole C#-ga isegi haisu. Selle asemel...

LÔpuks sattusin sellisele artiklile: "What I Hate About PowerShell". Nagu öeldakse: «Ma ei saa enam nÔustuda.»

Kahtlen, et VÔimsa Shelli meeskond on Bash'i armastajate kogum.

— Teeme lĂ”puks Windowsile konsoli, kus saab kirjutada keerulisi skripte. Meie cmd on nii vananenud, et tunnen nĂŒĂŒd juba veidi piinlikkust.
— Teeme! Mille pĂ”hjal me seda teeme? Meil on juba VBScript, JScript. LĂ”puks on meil .NET keeled: C#, VB. Kas teeme C#-s? TĂ€hendab, kasutame C#-d kui skriptikeelt meie konsolis. Veelgi enam, me ju tahame sinna .NET klasse tuua.
— Ei, mis sa rÀÀgid, mees, mis C#? TĂ”elised geeniusid kasutavad bash'i! Teeme siis bash'i Windowsile. ÜkskĂ”ik, et bash'i sĂŒntaksit kirjutasid ilmselt hunnik tupikud kaugetes 1960-ndates. ÜhesĂ”naga, mida keerulisem, seda parem! Intuitiivsus on nĂ”rkade jaoks! Skripti kirjutamise ajal peab kasutaja kindlasti kĂ”ike need pĂ”rgu nimel ja leidma vĂ€lja paar uut vandesĂ”na. Ainult selline keel on vÀÀrt elu. Vaata, linuxikarjad elavad kogu elu nii ja saavad sellest ikka megasuure naudingut. Miks meie peaksime halvemad olema?

Ainult registreeritud kasutajad saavad kĂŒsitluses osaleda. Logige sisse, palun.

Kas kasutate PowerShelli ja kas see rahuldab teid?

  • 30,3%Ei kasuta

  • 29,6%Proovisin — ei meeldinud

  • 23,5%Kasutame ja olen rahul

  • 12,9%Kasutame, aga ei ole rahul

  • 3,8%Jee! LĂ” finally tĂ€ielikult kasutada oma lemmik bash'i Windowsis!

HÀÀletas 132 kasutajat. 26 kasutajat ei vÔtnud osa.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster