Pos kebencian untuk Mighty Shell

Beberapa waktu lalu saya menulis satu skrip sederhana yang menghapus semua subdirektori dengan nama yang diberikan di direktori yang ditentukan:



Remove-Item * -Force -Recurse -Include name1,name2,name3 -ErrorAction SilentlyContinue


Saya sudah lama tidak menggunakannya, tetapi ini diperlukan. Saya menjalankannya - saya tidak menghapus apa pun.



"WTF?" Saya pikir. Dia mulai menggali. Saya mengutak-atik dan mengutak-atik, saya memeriksa semuanya, dan daftar itu sebelumnya dibuat, dan nama-namanya berubah - masih tidak menghapus apa pun. Pada akhirnya, saya membaca di dok mereka: " Sebenarnya, -Include adalah buggy saat digunakan dengan -Recurse, jadi gunakan kruk. ":

Karena parameter Recurse di Remove-Item memiliki masalah yang diketahui, perintah dalam contoh ini menggunakan Get-ChildItem untuk mendapatkan file yang diinginkan, lalu menggunakan operator pipeline untuk meneruskannya ke Remove-Item.


Baiklah, saya menulis ulang menggunakan kruk ini. Satu lobak tidak menghilangkan apa pun. Selain itu, Get-ChildItem dengan -Include mengembalikan kosong. Sekali lagi, apa yang tidak saya lakukan, karena saya tidak mengubah parameter, tidak berfungsi. Hal utama adalah bahwa ini bekerja dengan -Exclude , tetapi tidak ada dengan -Include . Saya membunuhnya sepanjang hari: Saya pikir saya telah mengacaukan parameter di suatu tempat, bahwa saya tidak memperhitungkan beberapa nuansa licik. Dan apa yang terjadi pada akhirnya? Saya menempatkan mereka di PS7.1 - itu berhasil. Bahkan versi chuteless pertama yang hanya menggunakan Remove-Item bekerja di dalamnya. Secara umum, itu ternyata bug mereka.



Tetapi setelah lelah dengan Mighty Shell mereka, saya pergi ke Google untuk membaca mengapa shell mereka memiliki sintaksis yang begitu hebat. Mlyn, mereka memposisikannya sebagai .NET untuk konsol, tetapi mereka bahkan tidak berbau sintaks C #. Sebaliknya ...



Secara umum, saya menemukan artikel ini: " Yang Saya Benci Tentang PowerShell ". Seperti kata pepatah: "Saya sangat setuju."



Saya menduga tim Mighty Shell adalah sekelompok pecinta Bash.



- Akhirnya mari kita membuat konsol Windows yang memungkinkan untuk menulis skrip yang rumit. Dan kemudian cmd kami sudah ketinggalan zaman, begitu banyak sehingga kami sudah sedikit malu.

— ! ? VBScript, JScript. , .NET: C#, VB. , C# ? , C# . , .NET .

— , , , C#? bash! bash Windows. , bash , , 1960-. , , ! — ! . . , . ?



All Articles