V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gowl
V2EX  ›  PowerShell

大家对 PowerShell 有好感么?

  •  
  •   gowl · 2018-01-14 03:52:06 +08:00 · 5694 次点击
    这是一个创建于 2497 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例子:

    # Microsoft PowerShell script to create a simple function 
    Function Get-BatAvg{
      Param ($Name, $Runs, $Outs)
      $Avg = [int]($Runs / $Outs*100)/100 
      Write-Output "$Name's Average = $Avg, $Runs, $Outs"
    }
    
    25 条回复    2019-06-05 22:14:38 +08:00
    gowl
        1
    gowl  
    OP
       2018-01-14 03:55:52 +08:00
    现在 PS 跨平台了,但是我在 mac 上鼓捣了了一下发现交互不如 bash 快(有延时),然后别的也没有特别吸引人的地方。
    geelaw
        2
    geelaw  
       2018-01-14 03:58:59 +08:00 via iPhone   ❤️ 1
    楼主的代码很不 PS

    PS 的做法是返回一个对象,至于怎么格式化是用户和管道后面的 cmdlet 的事儿
    xupefei
        3
    xupefei  
       2018-01-14 05:40:26 +08:00   ❤️ 1
    PS 主要优势是后面无所不能的 .net 框架。只要你想,从文本处理到用户界面,没什么搞不出来的东西。
    比如说,我学校 IT 那帮人硬是拿 PS 写了管理客户端出来,实现了托盘图标、右键菜单、Active Directory 授权、网络打印机通讯、内部软件市场……
    gowl
        4
    gowl  
    OP
       2018-01-14 06:27:09 +08:00
    @geelaw 多谢点拨。
    gowl
        5
    gowl  
    OP
       2018-01-14 06:27:55 +08:00
    @xupefei 用 PS 实现这些功能相对直接用 C# 写有什么优势么?
    XiaoFaye
        6
    XiaoFaye  
       2018-01-14 06:59:13 +08:00 via Android
    @gowl 不用编译,随时修改,灵活性强。
    gowl
        7
    gowl  
    OP
       2018-01-14 07:01:04 +08:00
    @XiaoFaye 谢谢。
    nightcat
        8
    nightcat  
       2018-01-14 07:09:41 +08:00
    默认字体太丑,辣眼睛,不知道能不能美化,没深入研究过
    xiaolingxinna
        9
    xiaolingxinna  
       2018-01-14 07:12:53 +08:00 via Android
    PS 是对应 bash 的产品…对于有信仰的人来说还是很重要的嗯(
    xiaolingxinna
        10
    xiaolingxinna  
       2018-01-14 07:13:34 +08:00 via Android
    @nightcat Windows 控制台是都能改字体的,右键标题栏 属性。
    doubleflower
        11
    doubleflower  
       2018-01-14 08:02:20 +08:00 via Android
    继承了微软一惯的笨重风格
    msg7086
        12
    msg7086  
       2018-01-14 08:25:28 +08:00
    简单的操作我选择 Shell,复杂的我宁愿 Python / Ruby 脚本。C#式的脚本,直接在命令提示符下写吧,总觉得不适合大段脚本,但是写成 ps 吧,那些超长的参数名又记不住,更别说对象的成员名字了。除非是本来就习惯于写 C#代码的人,否则还不如写 py 什么的了。
    Cooky
        13
    Cooky  
       2018-01-14 08:45:11 +08:00 via Android
    @msg7086 能用 Py 就用 Py,其他都是邪教😄
    msg7086
        14
    msg7086  
       2018-01-14 08:46:10 +08:00
    @Cooky 我比较憎恨 Py 概念,所以用的 Rb。
    iszero
        15
    iszero  
       2018-01-14 09:28:44 +08:00 via Android
    轻量级的用 bat,复杂一点的 ipython
    htfy96
        16
    htfy96  
       2018-01-14 10:22:43 +08:00 via Android
    默认开启 telemetry,继承了 MS 的一贯作风
    thetast
        17
    thetast  
       2018-01-14 11:09:46 +08:00 via Android
    天天写 PS 感觉没啥毛病
    h4lbhg1G
        18
    h4lbhg1G  
       2018-01-14 11:16:23 +08:00
    我不喜欢函数名带减号,然后就没然后了。
    imn1
        19
    imn1  
       2018-01-14 13:40:08 +08:00   ❤️ 2
    powershell 比起 shell 慢很多,主要是 cmdlets 慢,但熟悉.net 就不同了,调用.net 就快很多了

    ps 比起 shell 有几个大的优点:
    1.处理一些问题,shell 其实需要好几个工具配合,往往需要了解不同工具的语法,甚至还需要自己去找这些工具,但 ps 只需要知道自身的语法就够了,一本手册就够,例如处理 csv,例如数学计算 shell 要带上 bc
    2.并发,多进程
    3.有些时候纯手工输入比较困难,例如复杂的、非英语路径,或者多选,这时候有个 GUI 文件选择对话框比较方便,这个 GUI 也不用太复杂,PS 调用.net winform 还算方便

    4.(下面不是跨平台比较,纯粹 win 内比较),处理一些 win 自身的东西,例如注册表、服务、网卡、策略……等等,powershell 显然也是比其他语言方便得多
    5.PS 有一套 Azure 专用的处理构件
    6.ps 处理 mount 也比较方便(我硬盘太多,不用盘符的,全部用 mount+softlink/junction )
    SuperMild
        20
    SuperMild  
       2018-01-14 13:43:51 +08:00
    主要是花时间学 PS 那一套东西,却不能跨平台使用,感觉比较吃亏。
    hljjhb
        21
    hljjhb  
       2018-01-14 14:36:07 +08:00 via Android
    很微妙 就设计上还挺喜欢 实际中却用的不多
    fox0001
        22
    fox0001  
       2018-01-14 18:45:43 +08:00
    什么鬼?
    chenqh
        23
    chenqh  
       2018-01-14 19:49:35 +08:00
    我现在就在学,尽量用 powershell 而不用 bash
    ps1aniuge
        24
    ps1aniuge  
       2019-06-05 19:31:19 +08:00
    @msg7086 那些超长的参数名又记不住,更别说对象的成员名字了。除非是本来就习惯于写 C#代码的人,否则还不如写 py 什么的了。-----------用记事本写 c#照样痛苦,用记事本写 py 照样痛苦。用 vscode+powershell 插件写 ps1,就没你说的问题了,全都是补全,提示,自动完成。

    powershell 比起 shell 慢很多---------这是胡说。或者说数组中含 500 个元素以上,少用管道,就没这问题。


    却不能跨平台使用,感觉比较吃亏。-----linux 版 powershell 了解一下。

    问:powershell 啥时候开源(+免费)的?
    答:
    2015 年小范围内部开源,2016 年开发者大会上,正式法律开源。



    问:开源后的 powershell,属于谁的财产?
    答:
    在遵守其开源协议的前提下。powershell 开源后。属于 [社区财产] 或 [任何人财产] 。



    问:谁是 powershell 开源免费的最大受益者?
    答:
    powershell 可以运行在,win,mac,ubuntu1404+,centos7,debian8+,suse12+,arch,alpine linux,树莓派 Raspbian,win10-iot,docker,snap-app,open-wrt 路由器等。
    这些系统使用者,是 powershell 开源免费的最大受益者。
    msg7086
        25
    msg7086  
       2019-06-05 22:14:38 +08:00
    @ps1aniuge
    「这是一个创建于 507 天前的主题,其中的信息可能已经有所发展或是发生改变。」
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2737 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:33 · PVG 20:33 · LAX 04:33 · JFK 07:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.