https://www.v2ex.com/t/563986从“撸串.ps1 ”开始学习 [powershell 的参数补全]
问:powershell 命令为啥那么长?我很不爽啊。
问:powershell 命令会重名吗?
答:
powershell 命令太多,超过好几万。微软为了 powershell 命令不重名,所以把 powershell 命令搞的很长。
正因为命令长,命令唯一,才让 ps 基本不需要像 python 那样,在脚本中 import 这个库、那个包。也没有 py 那种 [库或依赖] 路径问题。
鱼与熊掌而已。唯一的长命令名,不需要学习记忆包名。
实际上 linux 命令也很长。有很多子命令。比如
kubectl expose deployment nginx --type=NodePort --name=example-service
但如果使用了第三方模块,还有可能重名。
如:
carbon 模块中,有 get-schcduletask 命令。
内置的 ScheduledTasks 模块中,也有此命令,
这就尴尬了,命令重名了,你喊声悟空,六耳猕猴跑过来了。你喊声疯子,特 zz 朗 cc 普跑出来了
不过,人家教我一招:
Microsoft.PowerShell.Management\Get-ChildItem
(这个命令就是 dir,在重名的时候才需要这样输入)
即先敲入 [模块名] ,再敲入 [\] ,然后再敲 [命令名] ,当然可以用 tab 补全。
这招太好了,相当于详细门牌号,两个命令名完全一样(命令冲突)也不怕了。不过命令名就更长了。
install-module -AllowClobber 就是(安装模块时)允许重复的命令名的意思。