Mighty Shell жек көретін посты

Ұзақ уақыт бұрын мен көрсетілген каталогта берілген атаулары бар барлық ішкі каталогтарды жойатын қарапайым сценарий жаздым:

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

Мен оны көптен бері қолданбадым, бірақ қазір маған қажет болды. Мен оны іске қосамын - ештеңе жойылмайды.

«WTF?» Менің ойымша. Мен қазуға кірістім. Мен скрипка ойнадым, бәрін араладым, алдын ала тізім жасап, атауларды өзгерттім - бәрібір ештеңе жойылмайды. Ақырында, олардың құжатында мен оқыдым: «Шын мәнінде, -Include -Recurse-мен бірге қолданылғанда қате болады, сондықтан балдақ конструкциясын пайдаланыңыз.":

Remove-Item ішіндегі Recurse параметрінде белгілі мәселе болғандықтан, осы мысалдағы пәрмен қажетті файлдарды алу үшін Get-ChildItem пайдаланады, содан кейін оларды Remove-Element параметріне беру үшін құбыр операторын пайдаланады.

Жарайды, мен оны осы балдақ арқылы қайта жаздым. Керемет мәміле - ол ештеңені жоймайды. Оның үстіне, Get-ChildItem с - Қосу бостығын қайтарады. Тағы да, мен не істесем де, параметрлерді қалай бұрмаласам да, ол жұмыс істемеді. Ең бастысы - бірге - Алып тастау жұмыс істейді, бірақ бірге - Қосу мүмкін емес. Мен бір күнді осыған жұмсадым: мен параметрлердің бір жерінде бұрмалап жібердім, кейбір күрделі нюанстарды ескермедім деп ойладым. Ал соңында не болды? Мен оларды PS7.1 жүйесіне орнаттым және ол жұмыс істеді. Ол тіпті тек қолданатын бірінші балдақсыз опцияны қамтиды Жою-элемент тапқан. Жалпы, бұл олардың қателігі болып шықты.

Бірақ олардың Mighty Shell-тен зардап шеккеннен кейін мен Google-ге олардың қабығында неге соншалықты таң қалдыратын синтаксис бар екенін оқу үшін бардым. Қарғыс атқыр, олар оны консоль үшін .NET ретінде орналастырады, бірақ олар C# синтаксисінің иісін де сезбейді. Оның орнына…

Қалай болғанда да, мен бұл мақаланы таптым: «PowerShell туралы не жек көремін«. Олар айтқандай: «Мен одан әрі келісе алмадым».

Менің ойымша, Mighty Shell командасы - бұл Bash жанкүйерлерінің тобы.

- Ақырында Windows үшін күрделі сценарийлер жазуға болатын консоль жасайық. Әйтпесе, біздің cmd ескіргені сонша, біз қазірдің өзінде аздап ұялып қалдық.
-Келейік! Біз не істейміз? Бізде VBScript, JScript бар. Соңында, бізде .NET үшін тілдер бар: C#, VB. Мүмкін біз оны C# тілінде жасай аламыз ба? Айтайын дегенім, біз консоль үшін сценарий тілі ретінде C# тілін қолданамыз. Сонымен қатар, біз онда .NET сыныптарын қосқымыз келеді.
- Жоқ, не істеп жатырсың, балам, қандай C#? Нағыз гейктер bash пайдаланады! Сонымен Windows үшін bash жасайық. Маған bash синтаксисін 1960 жылдардағы таспен ұрылған хипстерлер тобы жазғаны маңызды емес. Жалпы алғанда, неғұрлым күрделі болса, соғұрлым жақсы! Интуитивтілік әлсіздерге арналған! Сценарийді өз тілімізде жазғанда қолданушы дүниедегінің бәрін қарғап, бір-екі жаңа қарғыс сөздер ойлап табуы керек. Тек осындай тіл ғана өмір сүруге құқылы. Қараңызшы, Linux адамдары өмір бойы осылай өмір сүреді және оның барлығынан түсініксіз толқу алады. Неліктен біз одан да жаманбыз?

Сауалнамаға тек тіркелген пайдаланушылар қатыса алады. Кіру, өтінемін.

Сіз PowerShell пайдаланасыз ба және оны пайдалану сізге ыңғайлы ма?

  • 30,3%Мен 40 қолданбаймын

  • 29,6%Мен оны қолданып көрдім, бірақ ол ұнамады39

  • 23,5%Мен оны қолданамын және бәріне ризамын31

  • 12,9%Мен оны қолданамын, бірақ мен риза емеспін17

  • 3,8%Ура! Соңында мен Windows!5 жүйесінде сүйікті bash-ті пайдалана аламын

132 қолданушы дауыс берді. 26 пайдаланушы қалыс қалды.

Ақпарат көзі: www.habr.com

пікір қалдыру