мне следует избегать псевдонима 'dir' в скриптах Powershell? - PullRequest
1 голос
/ 13 мая 2009

Руководства PowerShell предлагают избегать использования псевдонимов в сценариях, например, изложение Get-Content вместо gc и Foreach-Object вместо %.

По большей части, я думаю, что это хороший совет, но мне трудно следовать ему с псевдонимом dir, по крайней мере, при использовании с файловой системой (по сравнению с реестром или чем-то подобным). Мне кажется, что dir так же хорош или лучше, чем Get-ChildItem, с точки зрения читабельности. Это также не столь загадочно, как что-то вроде gc (Get-Content) или lp (Out-Printer), хотя, возможно, кто-то, не имеющий опыта работы с cmd.exe, может не согласиться.

У кого-нибудь есть мнение по этому поводу? Должен ли я продолжать использовать dir или пытаться быть более «правильным»?

Ответы [ 4 ]

9 голосов
/ 13 мая 2009

Псевдонимы хороши для набора текста. Но в сценарии изложите это. Что вы теряете?

6 голосов
/ 13 мая 2009

Я лично избегаю псевдонимов в скриптах, но я использую их в командной строке. Два исключения у меня есть? для Where-Object и% для ForEach-Object. Я использую их все время. Но это просто мое личное соглашение. Так что нет законной причины, по которой другие встроенные псевдонимы также не подходят для использования.

Но вам определенно следует избегать использования нестандартных псевдонимов. Даг Финке создал для 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

5 голосов
/ 14 мая 2009

Философия PowerShell - использовать все, что вам удобно в командной строке. Вот почему у вас есть как ls, так и dir в качестве псевдонимов для Get-ChildItem. Однако при написании сценариев, однострочников или чего-либо, что будет совместно использоваться другими, всегда используйте полные имена команд и полные имена аргументов, чтобы избежать путаницы. В частности, никогда не используйте пользовательские псевдонимы в сценариях, так как они нарушат сценарий за пределами вашей среды.

0 голосов
/ 15 мая 2009

Не понимаю, почему ... Я никогда не избегал "ls":)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...