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: "". 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. , 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
