我应该避免使用Powershell脚本中的'dir'别名吗?

时间:2009-05-12 20:46:14

标签: powershell scripting

powershell指南建议避免在脚本中使用别名,例如:拼写Get-Content而不是使用gc,并使用Foreach-Object代替%

在大多数情况下,我认为这是一个很好的建议,但我很难用dir别名来跟踪它,至少在与文件系统一起使用时(与注册表等)。在我看来,dir在可读性方面与Get-ChildItem一样好或更好。它也不像gcGet-Content)或lpOut-Printer)那样神秘,尽管可能没有cmd.exe脚本背景的人可能不同意。 / p>

有人对此有意见吗?我应该继续使用dir,还是尝试更“正确”?

4 个答案:

答案 0 :(得分:8)

别名可以打字。但是在剧本中拼出来。你输了什么?

答案 1 :(得分:6)

我个人避免脚本中的别名,但我在命令行使用它们。我有两个例外吗? for Where-Object和%for ForEach-Object。我一直都在使用它们。但这只是我个人的约定。因此,没有合理的理由可以解释为什么其他内置别名也不能正常使用。

但是你绝对应该避免使用非标准别名。 Doug Finke为PowerShell ISE创建了一个函数,可以将别名扩展为真正的名称。

http://dougfinke.com/blog/index.php/2009/01/03/expand-alias-for-powershell-integrated-scripting-environment/

我为PowerShell ISE创建了一个这个脚本,它显示了脚本所依赖的非标准命令。它还需要考虑别名。

http://einsteintech.spaces.live.com/blog/cns!89E05724AF67A39E!840.entry

答案 2 :(得分:4)

PowerShell的理念是在命令提示符下使用您熟悉的任何内容。这就是为什么你有'ls'和'dir'作为Get-ChildItem的别名。但是,在编写脚本,单行或任何将与其他人共享的内容时,请始终使用完整的命令名称和完整的参数名称以避免混淆。特别是,永远不要在脚本中使用自定义别名,因为它们会破坏环境之外的脚本。

答案 3 :(得分:0)

我不明白为什么......我从来没有避免“ls”:)