Kauan sitten kirjoitin yksinkertaisen skriptin, joka poisti kaikki annetut alihakemistot tietyssä hakemistossa:
Remove-Item * -Force -Recurse -Include name1,name2,name3 -ErrorAction SilentlyContinue
En ole käyttänyt sitä pitkään aikaan, mutta nyt tarvitsin sitä. Käynnistän sen - mitään ei poisteta.
"WTF?", luulen. Aloin kaivaa. Viuluin ja viuluin, kävin läpi kaiken, tein listan etukäteen ja vaihdoin nimiä - silti mitään ei poisteta. Lopuksi luin heidän asiakirjastaan: "Itse asiassa -Include on buginen, kun sitä käytetään yhdessä -Recursen kanssa, joten käytä kainalosauvarakennetta.":
Koska Remove-Item-kohdan Recurse-parametrilla on tunnettu ongelma, tämän esimerkin komento käyttää Get-ChildItem-komentoa haluttujen tiedostojen hankkimiseen ja siirtää ne sitten Remove-Item-tiedostoon liukuhihnaoperaattorilla.
No, okei, kirjoitin sen uudelleen tällä kainalosauvalla. Helvetin hyvä sopimus - se ei poista mitään. Lisäksi, Get-ChildItem с -Sisältää palauttaa tyhjyyden. Jälleen, riippumatta siitä, mitä tein, vaikka kuinka vääristin parametreja, se ei toiminut. Pääasia on kanssa - Sulje pois toimii, mutta kanssa -Sisältää ei onnistu. Vietin tähän koko päivän: ajattelin koko ajan, että jossain parametreissa, joita olin sotkenut, en ollut ottanut huomioon jotain hankalaa vivahdetta. Ja mitä lopulta tapahtui? Asensin ne PS7.1:lle ja se toimi. Se sisältää jopa ensimmäisen kainalosauvattoman vaihtoehdon vain Poista esine ansainnut. Yleensä se osoittautui heidän bugikseen.
Mutta kärsittyäni Mighty Shell -kuoren kanssa menin Googleen lukemaan, miksi heidän kuorella on niin järkyttävä syntaksi. Hitto, he asettavat sen .NETiksi konsolia varten, mutta he eivät edes haista C#-syntaksia. Hänen sijastaan…
Joka tapauksessa törmäsin tähän artikkeliin: "
Epäilen, että Mighty Shell -tiimi on joukko Bash-faneja.
- Tehdään vihdoin Windowsille konsoli, johon voit kirjoittaa monimutkaisia skriptejä. Muuten meidän cmd on vanhentunut, niin että olemme jo hieman häpeissämme.
- Katsotaanpa! Mihin perustuen teemme? Meillä on jo VBScript, JScript. Lopuksi meillä on .NET-kieliä: C#, VB. Ehkä voimme tehdä sen C#:lla? Tarkoitan, käytämme konsolimme komentosarjakielenä C#:a. Lisäksi haluamme lisätä sinne .NET-luokkia.
- Ei, mitä sinä teet, jätkä, mitä C#? Todelliset nörtit käyttävät bashia! Tehdään siis bash Windowsille. En välitä siitä, että bashin syntaksin on ilmeisesti kirjoittanut joukko kivitettyjä hipstereitä jo 1960-luvulla. Yleensä mitä monimutkaisempi, sen parempi! Intuitiivisuus on heikkokuntoisille! Kun kirjoitat käsikirjoitusta kielellämme, käyttäjän täytyy kirota kaikki maailmassa ja keksiä pari uutta kirosanaa. Vain sellaisella kielellä on oikeus elämään. Katso, Linux-ihmiset elävät tällä tavalla koko elämänsä ja saavat siitä kaiken selittämättömän jännityksen. Miksi olemme huonompia?
Vain rekisteröityneet käyttäjät voivat osallistua kyselyyn.
Käytätkö PowerShellia ja oletko tyytyväinen siihen?
-
30,3%En käytä 40
-
29,6%Kokeilin sitä enkä pitänyt siitä39
-
23,5%Käytän sitä ja olen tyytyväinen kaikkeen31
-
12,9%Käytän sitä, mutta en ole tyytyväinen17
-
3,8%Hurraa! Vihdoinkin voin käyttää suosikkibashiani Windows!5:ssä
132 käyttäjää äänesti. 26 käyttäjää pidättyi äänestämästä.
Lähde: will.com