Nagyon régen írtam egy egyszerű szkriptet, amely törölte az összes megadott nevű alkönyvtárat egy megadott könyvtárban:
Remove-Item * -Force -Recurse -Include name1,name2,name3 -ErrorAction SilentlyContinue
Régóta nem használtam, de most szükségem volt rá. Elindítom - semmi nem törlődik.
„WTF?” – gondolom. Elkezdtem ásni. Hegedültem és fikáztam, végignéztem mindent, előre készítettem egy listát, és megváltoztattam a neveket - továbbra sem törlődik semmi. Végül a dokumentumukban ezt olvastam: "Valójában az -Include hibás, ha a -Recurse-szal együtt használjuk, ezért használja a mankó konstrukciót.":
Mivel a Recurse paraméter az Elem eltávolítása szakaszban ismert hibával rendelkezik, a példában szereplő parancs a Get-ChildItem parancsot használja a kívánt fájlok lekéréséhez, majd a folyamatoperátor segítségével adja át azokat az Elem eltávolítása parancsnak.
Nos, rendben, átírtam ezzel a mankóval. Pokoli üzlet – nem töröl semmit. Ráadásul, Get-ChildItem с - Beleértve visszaadja az ürességet. Ismétlem, hiába csináltam, hiába torzítottam el a paramétereket, nem működött. A lényeg vele -Kizárni működik, de azzal - Beleértve semmiképpen. Egy egész napot ezzel töltöttem: folyton arra gondoltam, hogy valahol elrontottam a paramétereket, nem vettem figyelembe valami trükkös árnyalatot. És mi történt a végén? Feltelepítettem PS7.1-re és működött. Még az első mankó nélküli opciót is tartalmazza Elem eltávolítása szerzett. Általában kiderült, hogy ez az ő hibájuk.
De miután megszenvedtem a Mighty Shell-lel, elmentem a Google-ba, hogy elolvassam, miért van ilyen észbontó szintaxisa a shellüknek. Basszus, .NET-ként pozícionálják a konzolhoz, de még a C# szintaxis szagát sem érzik. Helyette…
Egyébként erre a cikkre bukkantam: "
Gyanítom, hogy a Mighty Shell csapat Bash-rajongó csapata.
- Csináljunk végre egy konzolt Windowsra, amiben bonyolult szkripteket írhatunk. Egyébként a cmd-nk elavult, olyannyira, hogy már egy kicsit szégyelljük is magunkat.
- Gyerünk! Mi alapján fogunk tenni? Van már VBScript, JScript. Végül vannak nyelveink a .NET-hez: C#, VB. Esetleg meg tudjuk csinálni C#-ban? Úgy értem, a C#-t fogjuk használni konzolunk szkriptnyelveként. Sőt, .NET osztályokat szeretnénk hozzáadni.
- Nem, mit csinálsz, haver, milyen C#? Az igazi stréberek bash-t használnak! Tehát készítsünk bash-t a Windows számára. Nem érdekel, hogy a bash szintaxisát láthatóan megkövezték hipszterek tömege írta még az 1960-as években. Általánosságban elmondható, hogy minél összetettebb, annál jobb! Az intuitivitás a gyengéknek való! Amikor a mi nyelvünkön ír egy szkriptet, a felhasználónak mindent el kell átkoznia a világon, és ki kell találnia néhány új szitokszót. Csak egy ilyen nyelvnek van joga az élethez. Nézd, a linuxosok egész életükben így élnek, és megmagyarázhatatlan izgalmat kapnak ettől az egésztől. Miért vagyunk rosszabbak?
A felmérésben csak regisztrált felhasználók vehetnek részt.
Használja a PowerShellt, és elégedett vele?
-
30,3%Nem használok 40-et
-
29,6%Kipróbáltam és nem tetszett39
-
23,5%Használom és mindennel elégedett vagyok31
-
12,9%Használom, de nem vagyok elégedett17
-
3,8%Hurrá! Végre használhatom kedvenc bash-emet Windows!5-ön
132 felhasználó szavazott. 26 felhasználó tartózkodott.
Forrás: will.com