1
nanaw 2019-04-21 23:17:53 +08:00 via Android
PowerShell 写脚本或许很强大,但命令行下真的很难用。命令,参数又臭又长大小写和横线。自动补全还捉鸡的不行。
|
2
hellojinjie 2019-04-21 23:20:55 +08:00
这命令和参数真的不是一般的难记
|
3
geelaw 2019-04-21 23:30:43 +08:00
Disclaimer: 我对这个群完全不感兴趣。
@nanaw #1 如果你想要传统 Unix shell 一样 cryptic 的用法也是可以的,因为命令和参数都可以缩写,此外我不懂横线怎么能是一个问题,而且命令和参数都是不区分大小写的,所以我也不能理解这怎么能是一个问题,尤其是你已经限定场景为“命令行”(交互式)。 @hellojinjie #2 实际上 native utilities 的参数更难记住。此外 Get-Help 的帮助文档非常全面。 |
4
ps1aniuge OP 原来大家对 powershell 有这些看法。看来我要写一些帖子说明。我打算发在 linux 版,敬请期待。
|
5
nanaw 2019-04-21 23:48:27 +08:00
@geelaw #3
1. 只有一部分可以缩写。 2. 命令区分大小写,参数不清楚。 比如我用自带的 PakageManagement 安装个软件包 $Install-Pakage 7zip 这样子,小写了就会出错,自动补全会直接补完( Install-Dtc ),需要不停的按 tab 才会按首字母顺序往下来,而不是 bash 那样补到确定的为止。 |
6
geelaw 2019-04-22 00:00:35 +08:00
@nanaw #5 你可以在 $PROFILE 里面设置你想要的缩写,我实际上在 macOS 的 $PROFILE 里面把所有的 Windows PowerShell 缩写都加回来了。
另外不存在 Install-Package 写成小写会出错的情况,如果存在且 Install-Package 是一个 cmdlet/function,那这是 PowerShell 的 bug。 我实际上很不喜欢 bash 补成目前可确定的最长前缀,因为如果我写 install- 再按 Tab,那么补全不会有任何进展,这点在补全路径上有很大的问题(尤其是一个文件名是另一个的前缀时)。我不知道这个是否可以调整( macOS 下我不知道怎么让它恢复 Windows PowerShell 的默认行为)。不过这个是个人偏好,agree to disagree。 |
7
nanaw 2019-04-22 00:08:40 +08:00 1
@geelaw
1. 说它难用当然主要指默认状态下,自己定制当然会提高体验,但这不影响它本身很难用。。 2. https://i.loli.net/2019/04/22/5cbc9496e6dc6.png 其他的也有不少命令如此 3. 主要是习惯了 bash 那种补全。这玩意的补全一是很卡,按下 tab 要等 2 秒才出来(不知道什么原因),搞得我会按很多遍或者怀疑自己拼错。而且他按字母顺序排序补全出来我也不知道要按多少下,很不爽。 bash 里面就算没有连按两下虽然“哔”一声有点不爽但会列出来可能的选项。当然补全体验还是 zsh 更好。 |
9
GM 2019-04-22 00:21:38 +08:00
一直想学来着。
参数长怎么说呢,双刃剑吧,写的时候烦,读时候爽。 |
10
wspsxing 2019-04-22 05:33:28 +08:00 via Android
个人觉得吧,,会 c 艹艹或者得用 windows 的可以学一学,,其它平台的 fish (交互式),python 之类更好用
|
11
lihongjie0209 2019-04-22 08:46:39 +08:00
Name : bash
Arch : x86_64 Version : 4.2.46 Release : 31.el7 Size : 3.5 M --------------------- Name : zsh Arch : x86_64 Version : 5.0.2 Release : 31.el7 Size : 5.6 M ----------------------- Name : powershell Arch : x86_64 Version : 6.2.0 Release : 1.rhel.7 Size : 55 M 这个安装包的大小有点吓人 |
12
DAPTX4869 2019-04-22 09:28:07 +08:00
要不是博登 VMware 上只能用 powercli 管理,这破玩意完全不想碰,py 真香
|
13
wampyl 2019-04-22 10:04:10 +08:00
已经满员了
|
14
Greenm 2019-04-22 12:53:07 +08:00 via iPhone
如果我没记错的话,楼主之前的帖子里火药味非常的浓,建议大家在入群之前先看看上个帖子里楼主的言论和观点,以免给自己带来不快。
|
15
ps1aniuge OP 问:powershell 区分大小写么?
答: powershell 命令名,powershell 参数名,不区分大小写。但是你输入的参数值,是区分大小写的。 win,linux,中的文件名写入=保留大小写。 win 文件名读取=不区分大小写。 linux 文件名读取=区分大小写。 问:powershell 命令为啥那么长? 问:powershell 命令会重名吗? 答: 微软为了 powershell 命令不重名,所以把 powershell 命令搞的很长。鱼与熊掌。 但如果使用了第三方模块,还有可能重名。 如: carbon 模块中,有 get-schcduletask 命令。 内置的 ScheduledTasks 模块中,也有此命令, 这就尴尬了,命令重名了,你喊声悟空,六耳猕猴跑过来了。你喊声疯子,特-朗 /普跑出来了 不过,人家教我一招: Microsoft.PowerShell.Management\Get-ChildItem 即先敲入 [模块名] ,再敲入 [\] ,然后再敲 [命令名] ,当然可以用 tab 补全。 这招太好了,相当于详细门牌号,两个命令名完全一样(命令冲突)也不怕了。不过命令名就更长了。 install-module -AllowClobber 就是(安装模块时)允许重复的命令名的意思。 |
16
BiaoGuo 2020-08-26 20:53:52 +08:00
就是一个邪教群,没太大的用处。
|