Před dlouhou dobou jsem napsal jednoduchý skript, který odstranil všechny podadresáře s danými názvy v zadaném adresáři:
Remove-Item * -Force -Recurse -Include name1,name2,name3 -ErrorAction SilentlyContinue Dlouho jsem ho nepoužíval, ale teď jsem ho potřeboval. Spustím to - nic se nesmaže.
"WTF?", myslím. Začal jsem kopat. Flákala jsem a makala, vše procházela, předem si vytvořila seznam a měnila jména – stále se nic nemaže. Nakonec jsem v jejich dokumentu četl: "Ve skutečnosti je -Include chybné, když se používá ve spojení s -Recurse, takže použijte konstrukci berličky.":
Protože parametr Recurse v Remove-Item má známý problém, příkaz v tomto příkladu používá Get-ChildItem k získání požadovaných souborů a poté používá operátor kanálu k jejich předání Remove-Item.
Dobře, přepsal jsem to pomocí této berličky. Zatracená dohoda – nic nesmaže. Navíc, Get-ChildItem с -Zahrnout vrací prázdnotu. Opět, bez ohledu na to, co jsem udělal, bez ohledu na to, jak jsem zkreslil parametry, nefungovalo to. Hlavní věc je s -Vyloučit funguje, ale s -Zahrnout v žádném případě. Strávil jsem nad tím celý den: pořád jsem si říkal, že někde v parametrech jsem to podělal, že jsem nevzal v úvahu nějakou záludnou nuanci. A co se nakonec stalo? Nainstaloval jsem je na PS7.1 a fungovalo to. Obsahuje dokonce první možnost bez berlí pouze pomocí Odebrat položku vydělal. Obecně se ukázalo, že je to jejich chyba.
Ale protože jsem trpěl s jejich Mighty Shell, šel jsem do Googlu, abych si přečetl, proč má jejich shell tak ohromující syntaxi. Sakra, umisťují to jako .NET pro konzoli, ale ani necítí syntaxi C#. Místo toho...
Každopádně jsem narazil na tento článek: "". Jak se říká: "Nemohl jsem více souhlasit."
Mám podezření, že tým Mighty Shell je parta fanoušků Bash.
- Pojďme konečně udělat konzoli pro Windows, ve které můžete psát složité skripty. Jinak náš cmd je zastaralý, až se tak trochu stydíme.
- Pojďme! Na základě čeho budeme dělat? Již máme VBScript, JScript. Konečně tu máme jazyky pro .NET: C#, VB. Možná to můžeme udělat v C#? Myslím tím, že jako skriptovací jazyk pro naši konzoli použijeme C#. Navíc tam chceme přidat třídy .NET.
- Ne, co to děláš, kámo, jaké C#? Skuteční geekové používají bash! Takže pojďme udělat bash pro Windows. Je mi jedno, že syntaxi bash zřejmě napsal dav ukamenovaných hipsterů v 1960. letech. Obecně platí, že čím složitější, tím lepší! Intuitivnost je pro slabochy! Při psaní skriptu v našem jazyce musí uživatel proklínat všechno na světě a vymyslet pár nových nadávek. Jen takový jazyk má právo na život. Podívejte, lidé s Linuxem takto žijí celý život a mají z toho všeho nevysvětlitelné vzrušení. Proč jsme horší?
Průzkumu se mohou zúčastnit pouze registrovaní uživatelé. , prosím.
Používáte PowerShell a vyhovuje vám?
30,3%Nepoužívám 40
29,6%Zkoušel jsem to a nelíbilo se mi to 39
23,5%Používám ho a jsem se vším spokojený31
12,9%Používám to, ale nejsem spokojený 17
3,8%Hurá! Konečně můžu používat svůj oblíbený bash na Windows!5
Hlasovalo 132 uživatelů. 26 uživatelů se zdrželo hlasování.
Zdroj: www.habr.com
