1

Я начал новую работу в фирме, которая использует полный стек Windows. Я чувствую, что ушел назад с точки зрения производительности, не потому, что Windows менее мощная, а потому, что я просто незнаком с этой средой. Я обнаруживаю, что постоянно бьюсь головой об Пауэршелла, вскидываю руки и бьюсь о том, что я пытался сделать в Сигвине. Я чувствую, что это грязное решение и предпочел бы чувствовать себя комфортно в правильной среде Windows.

С учетом сказанного, как начинающий, как я, должен искать в выводе get-command общие командлеты, которые я хотел бы выполнить? Я понимаю, что должен думать в объектном пространстве, поэтому есть ли элегантный способ поиска по представленным свойствам, чтобы я мог выполнять такие действия, как, например, выяснение, существует ли псевдоним для определенного командлета, или поиск, если командлет есть даже в наличии? (искал командлет symlink и предпочел бы остаться в cmdline, а не гуглить, если это возможно).

Отсутствие grep/piping сводит меня с ума. Должно быть, я что-то упустил, какой-нибудь совет, учитывая мое затруднительное положение?

2 ответа2

2

Хорошо, вот некоторые вещи, которые я хотел бы знать при запуске PowerShell:

Чтобы проверить, существует ли команда, вы можете сделать что-то вроде этого:

Get-Command *Item*

Чтобы увидеть, какими свойствами обладает объект, вы можете сделать что-то вроде этого:

$Items = Get-ChildItem -Path C:\
$Items | Get-Member  

Чтобы увидеть, есть ли псевдоним для чего-то, что вы можете использовать:

Get-Alias -Definition Get-ChildItem

Наконец, чтобы увидеть, как использовать команду, вы можете использовать:

Get-Help Get-ChildItem

Кроме того, PowerShells Pipline является одним из самых сильных пунктов продажи, вы знаете о "|" символ трубы правильно?

0

Я собираюсь использовать сокращенные формы, предполагая, что вы печатаете в командной строке и хотите скорость. В сценарии мне нравятся полные имена для удобства обслуживания.

выяснить, существует ли псевдоним для определенного командлета

Это работает, но я никогда не могу вспомнить это:

PS> gal -def get-childitem

поэтому я использую запрос вместо:

PS> gal | ? { $_.Definition -eq "Get-ChildItem" }

? это псевдоним для Where-Object , так как вы фильтруете выходные данные.

поиск, если командлет даже доступен? (искал командлет symlink и предпочел бы остаться в cmdline, а не гуглить, если это возможно).

Я мог бы попробовать:

PS> help *link*

Но я часто хожу в Google, который возвращал меня в StackOverflow (конечно!) https://stackoverflow.com/questions/894430/powershell-hard-and-soft-links

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .