Полезные вкладыши PowerShell one - PullRequest
19 голосов
/ 05 марта 2009

Укажите сценарий PowerShell в одну строку, который вы считаете полезным, по одному сценарию на ответ, пожалуйста.

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

  1. Список самых последних версий файлов

    ls -r -fi *.lis | sort @{expression={$_.Name}}, @{expression={$_.LastWriteTime};Descending=$true} | select Directory, Name, lastwritetime | Group-Object Name | %{$_.Group | Select -first 1}

  2. gps programThatIsAnnoyingMe | kill

  3. Открыть файл с зарегистрированной программой (например, start например, start foo.xls)

    ii foo.xls

  4. Извлекает и отображает пути к системной специальной папке

    [enum]::getvalues([system.environment+specialfolder]) | foreach {"$_ maps to " + [system.Environment]::GetFolderPath($_)}

  5. Копировать значение окружения в буфер обмена (теперь вы знаете, как использовать буфер обмена!)

    $env:appdata | % { [windows.forms.clipboard]::SetText($input) }
    ИЛИ
    ls | clip

со SnapIns

  1. Файлы между двумя номерами наборов изменений в TFS

    Get-TfsItemHistory <location> -Recurse -Version <label1>~<label2> | % { $(Get-TfsChangeset $_.ChangeSetID).Changes } | % { $_.Item.ServerItem } | Sort-Object -Unique

  2. Получает сообщения очереди с ошибками на всех серверах-концентраторах в обмен 200

    Get-ExchangeServer | ?{$_.IsHubTransportServer -eq $true} | Get-Queue | ?{$_.LastError -ne $null} | Sort-Object -Descending -Property MessageCount | ft -Property NextHopDomain,@{l="Count";e={$_.MessageCount}},@{l="Last Try";e={$_.LastRetryTime.tosting("M/dd hh:mm")}},@{l="Retry";e={$_.NextRetryTime.tostring("M/dd hh:mm")}},Status,LastError -AutoSize

Ответы [ 19 ]

21 голосов
/ 03 июня 2009

Примерно в 6:00 вечера ....

exit
13 голосов
/ 05 марта 2009

Список всех файлов, которые я обновил сегодня:

dir | ?{$_.LastWriteTime -ge [DateTime]::Today}

Используйте его так часто, что я фактически создал небольшую функцию в своем профиле:

function Where-UpdatedSince{
Param([DateTime]$date = [DateTime]::Today,
      [switch]$before=$False)
Process
{ 
    if (($_.LastWriteTime -ge $date) -xor $before)
    {
        Write-Output $_
    }
} 
};  set-item -path alias:wus -value Where-UpdatedSince

Итак, я могу сказать:

dir | wus
dir | wus "1/1/2009"

Чтобы увидеть информацию, обновленную до сегодняшнего дня:

dir | wus -before
13 голосов
/ 05 марта 2009

Ну, вот один, который я часто использую вместе с некоторыми объяснениями.

ii .

II - псевдоним Invoke-Item. Этот командлет по существу вызывает любую команду, зарегистрированную в Windows для следующего элемента. Итак, это:

ii foo.xls

Откроется foo.xls в Excel (при условии, что у вас установлен Excel и файлы .xls связаны с Excel).

В ii . . относится к текущему рабочему каталогу, поэтому команда приведет к открытию проводника Windows в текущем каталоге.

6 голосов
/ 05 марта 2009

Мой любимый лайнер PowerShell

gps programThatIsAnnoyingMe | kill
4 голосов
/ 18 марта 2009
($x=new-object xml).Load("http://rss.slashdot.org/Slashdot/slashdot");$x.RDF.item|?{$_.creator-ne"kdawson"}|fl descr*

Мой любимый: это читатель слэшдота без ужасных представлений мр. kdawson. Он рассчитан на менее чем 120 символов, что позволяет использовать его в качестве подписи на /.

3 голосов
/ 29 апреля 2014

Стесняюсь перечислять мой список однострочников PowerShell один за другим, поскольку в настоящее время список насчитывает всего около 400 записей! :-) Но вот некоторые из моих любимых, чтобы возбудить ваш интерес:

  • Список всех типов ускорителей (требуется PSCX ): [accelerators]::get
  • Преобразовать строковое представление XML в фактический XML: [xml]"<root><a>...</a></root>"
  • Дамп объекта (увеличьте глубину для большей детализации): $PWD | ConvertTo-Json -Depth 2
  • Команда отзыва из истории по подстроке (поиск более раннего 'cd' cmd): #cd
  • Доступ к значению перечисления C #: [System.Text.RegularExpressions.RegexOptions]::Singleline
  • Создание гистограммы (требуется командование Джеффа Хикса ): ls . | select name,length | Out-ConsoleGraph -prop length -grid

Вся коллекция общедоступна в виде серии из четырех частей, опубликованной на Simple-Talk.com - я надеюсь, что она будет полезна для ТАКИХ читателей!

Я хотел назвать серию «Делай что-нибудь в одной строке PowerShell» , но мой редактор хотел что-то более лаконичное, поэтому мы выбрали PowerShell One-Liners . Хотя в интересах полного раскрытия, только 98% или около того действительно являются однострочниками в истинном духе этого термина; Я думал, что это было достаточно близко с округлением ...: -)

3 голосов
/ 01 июня 2012

Подавление меню Visual Studio 2012 ALL CAPS - самое первое, что я делаю после установки VS2012.

Set-ItemProperty -Path HKCU:\Software\Microsoft\VisualStudio\11.0\General -Name SuppressUppercaseConversion -Type DWord -Value 1

Благодарю Ричарда Бэнкса , который обнаружил значение реестра.

3 голосов
/ 18 декабря 2009

Мне не нравятся сложные приложения для подсчета строк кода, особенно потому, что я считаю, что это в первую очередь фиктивная метрика. Вместо этого я использую однострочник PS:

PS C:\Path> (dir -include *.cs,*.xaml -recurse | select-string .).Count

Я просто включаю расширения файлов, которые я хочу включить в счетчик строк, и иду из корневого каталога проекта.

3 голосов
/ 11 марта 2009

Извлекает и отображает пути к системной специальной папке

[enum]::getvalues([system.environment+specialfolder]) | foreach {"$_ maps to " + [system.Environment]::GetFolderPath($_)}
3 голосов
/ 01 июня 2009

Мне показалось полезным показать значения переменных окружения

dir env:

И вы можете скопировать значение env в буфер обмена

$env:appdata | % { [windows.forms.clipboard]::SetText($input) }

(перед вызовом необходимо загрузить windows.forms: Add-Type –a system.windows.forms; и запустить PowerShell с ключом -STA)

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