例子:
# 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"
}
1
gowl OP 现在 PS 跨平台了,但是我在 mac 上鼓捣了了一下发现交互不如 bash 快(有延时),然后别的也没有特别吸引人的地方。
|
2
geelaw 2018-01-14 03:58:59 +08:00 via iPhone 1
楼主的代码很不 PS
PS 的做法是返回一个对象,至于怎么格式化是用户和管道后面的 cmdlet 的事儿 |
3
xupefei 2018-01-14 05:40:26 +08:00 1
PS 主要优势是后面无所不能的 .net 框架。只要你想,从文本处理到用户界面,没什么搞不出来的东西。
比如说,我学校 IT 那帮人硬是拿 PS 写了管理客户端出来,实现了托盘图标、右键菜单、Active Directory 授权、网络打印机通讯、内部软件市场…… |
8
nightcat 2018-01-14 07:09:41 +08:00
默认字体太丑,辣眼睛,不知道能不能美化,没深入研究过
|
9
xiaolingxinna 2018-01-14 07:12:53 +08:00 via Android
PS 是对应 bash 的产品…对于有信仰的人来说还是很重要的嗯(
|
10
xiaolingxinna 2018-01-14 07:13:34 +08:00 via Android
@nightcat Windows 控制台是都能改字体的,右键标题栏 属性。
|
11
doubleflower 2018-01-14 08:02:20 +08:00 via Android
继承了微软一惯的笨重风格
|
12
msg7086 2018-01-14 08:25:28 +08:00
简单的操作我选择 Shell,复杂的我宁愿 Python / Ruby 脚本。C#式的脚本,直接在命令提示符下写吧,总觉得不适合大段脚本,但是写成 ps 吧,那些超长的参数名又记不住,更别说对象的成员名字了。除非是本来就习惯于写 C#代码的人,否则还不如写 py 什么的了。
|
15
iszero 2018-01-14 09:28:44 +08:00 via Android
轻量级的用 bat,复杂一点的 ipython
|
16
htfy96 2018-01-14 10:22:43 +08:00 via Android
默认开启 telemetry,继承了 MS 的一贯作风
|
17
thetast 2018-01-14 11:09:46 +08:00 via Android
天天写 PS 感觉没啥毛病
|
18
h4lbhg1G 2018-01-14 11:16:23 +08:00
我不喜欢函数名带减号,然后就没然后了。
|
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 ) |
20
SuperMild 2018-01-14 13:43:51 +08:00
主要是花时间学 PS 那一套东西,却不能跨平台使用,感觉比较吃亏。
|
21
hljjhb 2018-01-14 14:36:07 +08:00 via Android
很微妙 就设计上还挺喜欢 实际中却用的不多
|
22
fox0001 2018-01-14 18:45:43 +08:00
什么鬼?
|
23
chenqh 2018-01-14 19:49:35 +08:00
我现在就在学,尽量用 powershell 而不用 bash
|
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 开源免费的最大受益者。 |