Už dávno som napísal jednoduchý skript, ktorý odstránil všetky podadresáre s danými názvami v zadanom adresári:
Remove-Item * -Force -Recurse -Include name1,name2,name3 -ErrorAction SilentlyContinue
Dlho som ho nepoužíval, ale teraz som ho potreboval. Spustím to - nič sa nevymaže.
"WTF?", myslím. Začal som kopať. Flákala som a fičala, všetko som si prešla, vytvorila vopred zoznam a menila mená – stále sa nič nevymazáva. Nakoniec v ich dokumente čítam:V skutočnosti je -Include chybné, keď sa používa v spojení s -Recurse, takže použite konštrukciu berličky.":
Pretože parameter Recurse v Remove-Item má známy problém, príkaz v tomto príklade používa Get-ChildItem na získanie požadovaných súborov a potom používa operátor potrubia na ich odovzdanie Remove-Item.
Dobre, prepísal som to pomocou tejto barličky. Skvelá dohoda – nič nevymaže. navyše Get-ChildItem с - Zahrnúť vracia prázdnotu. Opäť, bez ohľadu na to, čo som urobil, bez ohľadu na to, ako som skreslil parametre, nefungovalo to. Hlavná vec je s -Vylúčiť funguje, ale s - Zahrnúť v žiadnom prípade. Strávil som nad tým celý deň: stále som si myslel, že niekde v parametroch som to pokazil, že som nezohľadnil nejakú záludnú nuanciu. A čo sa nakoniec stalo? Nainštaloval som ich na PS7.1 a fungovalo to. Dokonca obsahuje aj prvú bezbariérovú možnosť iba pomocou Odstrániť položku zarobené. Vo všeobecnosti sa ukázalo, že je to ich chyba.
Ale keďže som trpel s ich Mighty Shell, išiel som na Google, aby som si prečítal, prečo má ich shell takú ohromujúcu syntax. Sakra, umiestnili to ako .NET pre konzolu, ale ani necítia syntax C#. Namiesto neho…
Každopádne som narazil na tento článok: "
Mám podozrenie, že tím Mighty Shell je banda fanúšikov Bash.
- Poďme konečne urobiť konzolu pre Windows, v ktorej môžete písať zložité skripty. Inak je náš cmd zastaraný, až sa nám to trochu hanbí.
- Poďme! Na základe čoho budeme robiť? Už máme VBScript, JScript. Nakoniec tu máme jazyky pre .NET: C#, VB. Možno to dokážeme v C#? Myslím tým, že použijeme C# ako skriptovací jazyk pre našu konzolu. Navyše tam chceme pridať .NET triedy.
- Nie, čo robíš, kámo, aké C#? Skutoční geekovia používajú bash! Takže urobme bash pre Windows. Je mi jedno, že syntax pre bash zrejme napísal dav ukamenených hipsterov v šesťdesiatych rokoch. Vo všeobecnosti platí, že čím zložitejšie, tým lepšie! Intuitívnosť je pre slabochov! Pri písaní skriptu v našom jazyku musí používateľ prekliať všetko na svete a vymyslieť pár nových nadávok. Len taký jazyk má právo na život. Pozrite, ľudia s Linuxom takto žijú celý svoj život a majú z toho všetkého nevysvetliteľné vzrušenie. Prečo sme horší?
Do prieskumu sa môžu zapojiť iba registrovaní užívatelia.
Používate PowerShell a vyhovuje vám?
-
30,3%Nepoužívam 40
-
29,6%Skúsil som to a nepáčilo sa mi to 39
-
23,5%Používam ho a som spokojný so všetkým31
-
12,9%Používam to, ale nie som spokojný17
-
3,8%Hurá! Konečne môžem použiť svoj obľúbený bash na Windows!5
Hlasovalo 132 užívateľov. 26 užívateľov sa zdržalo hlasovania.
Zdroj: hab.com