大家对 PowerShell 有好感么?

2018-01-14 03:52:06 +08:00
 gowl

例子:

# 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"
}
5503 次点击
所在节点    PowerShell
25 条回复
gowl
2018-01-14 03:55:52 +08:00
现在 PS 跨平台了,但是我在 mac 上鼓捣了了一下发现交互不如 bash 快(有延时),然后别的也没有特别吸引人的地方。
geelaw
2018-01-14 03:58:59 +08:00
楼主的代码很不 PS

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/422721

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX