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

Cha*_*lie 1 powershell scripting

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

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

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

Joh*_*ers 8

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


Jos*_*osh 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


Kim*_*and 5

PowerShell的理念是在命令提示符下使用任何您喜欢的东西。这就是为什么同时将“ ls”和“ dir”作为Get-ChildItem的别名的原因。但是,在编写脚本,单行代码或将与他人共享的任何内容时,请始终使用完整的命令名称和完整的参数名称,以避免混淆。特别是,切勿在脚本中使用自定义别名,因为它们会破坏环境之外的脚本。