powershell指南建议避免在脚本中使用别名,例如:拼写Get-Content
而不是使用gc
,并使用Foreach-Object
代替%
。
在大多数情况下,我认为这是一个很好的建议,但我很难用dir
别名来跟踪它,至少在与文件系统一起使用时(与注册表等)。在我看来,dir
在可读性方面与Get-ChildItem
一样好或更好。它也不像gc
(Get-Content
)或lp
(Out-Printer
)那样神秘,尽管可能没有cmd.exe脚本背景的人可能不同意。 / p>
有人对此有意见吗?我应该继续使用dir
,还是尝试更“正确”?
答案 0 :(得分:8)
别名可以打字。但是在剧本中拼出来。你输了什么?
答案 1 :(得分:6)
我个人避免脚本中的别名,但我在命令行使用它们。我有两个例外吗? for Where-Object和%for ForEach-Object。我一直都在使用它们。但这只是我个人的约定。因此,没有合理的理由可以解释为什么其他内置别名也不能正常使用。
但是你绝对应该避免使用非标准别名。 Doug Finke为PowerShell ISE创建了一个函数,可以将别名扩展为真正的名称。
我为PowerShell ISE创建了一个这个脚本,它显示了脚本所依赖的非标准命令。它还需要考虑别名。
http://einsteintech.spaces.live.com/blog/cns!89E05724AF67A39E!840.entry
答案 2 :(得分:4)
PowerShell的理念是在命令提示符下使用您熟悉的任何内容。这就是为什么你有'ls'和'dir'作为Get-ChildItem的别名。但是,在编写脚本,单行或任何将与其他人共享的内容时,请始终使用完整的命令名称和完整的参数名称以避免混淆。特别是,永远不要在脚本中使用自定义别名,因为它们会破坏环境之外的脚本。
答案 3 :(得分:0)
我不明白为什么......我从来没有避免“ls”:)