强大的贝壳仇恨帖子

很久以前,我写了一个简单的脚本,删除指定目录中具有给定名称的所有子目录:

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

我已经很长时间没有使用它了,但现在我需要它。 我启动它 - 没有任何内容被删除。

“WTF?”,我想。 我开始挖掘。 我摆弄了又摆弄,检查了所有内容,提前创建了一个列表,并更改了名称 - 但仍然没有删除任何内容。 最后,在他们的文件中我读到:“实际上,-Ininclude 与 -Recurse 结合使用时会出现错误,因此请使用拐杖构造。":

由于Remove-Item 中的Recurse 参数存在已知问题,因此本示例中的命令使用Get-ChildItem 获取所需的文件,然后使用管道运算符将它们传递给Remove-Item。

好吧,我用这个拐杖重写了它。 这是一笔非常划算的交易——它不会删除任何东西。 而且, GET-ChildItem с -包括 返回空虚。 再说一次,无论我做什么,无论我如何扭曲参数,它都不起作用。 最主要的是与 -排除 有效,但是与 -包括 决不。 我花了一整天的时间:我一直在想,我在参数中的某个地方搞砸了,我没有考虑到一些棘手的细微差别。 最后发生了什么? 我在 PS7.1 上安装了它们并且它有效。 它甚至包含第一个无拐杖选项,仅使用 除去项目 赚了。 总的来说,这是他们的错误。

但在经历了他们的 Mighty Shell 的折磨后,我去 Google 阅读了为什么他们的 shell 具有如此令人兴奋的语法。 该死,他们将其定位为控制台的 .NET,但他们甚至没有闻到 C# 语法。 而不是他……

无论如何,我看到了这篇文章:“我讨厌 PowerShell 的地方”。正如他们所说:“我完全同意。”

我怀疑 Mighty Shell 团队是一群 Bash 粉丝。

- 最后让我们制作一个 Windows 控制台,您可以在其中编写复杂的脚本。 不然的话,我们的cmd已经过时了,以至于我们已经有点羞愧了。
- 让我们! 基于什么我们会做什么? 我们已经有了 VBScript、JScript。 最后,我们有 .NET 的语言:C#、VB。 也许我们可以用 C# 来做? 我的意思是,我们将使用 C# 作为控制台的脚本语言。 此外,我们想在那里添加 .NET 类。
- 不,你在做什么,伙计,什么 C#? 真正的极客使用 bash! 那么让我们为 Windows 制作 bash。 我不在乎 bash 的语法显然是由一群 1960 世纪 XNUMX 年代喝醉的时髦人士编写的。 一般来说,越复杂越好! 直觉是弱者的专利! 当用我们的语言编写脚本时,用户必须诅咒世界上的一切并发明一些新的诅咒词。 只有这样的语言才有生命的权利。 你看,Linux人一辈子就这样过着,并从中获得一种莫名的快感。 为什么我们更差?

只有注册用户才能参与调查。 登录拜托

您使用 PowerShell 吗?您对此感到满意吗?

  • 30,3%我没用40

  • 29,6%我尝试过但不喜欢39

  • 23,5%我使用它并且对一切都很满意31

  • 12,9%我用了,但我不高兴17

  • 3,8%万岁! 我终于可以在 Windows 上使用我最喜欢的 bash!5

132 位用户投票。 26 名用户弃权。

来源: habr.com

添加评论