Ответ 1
Примерно в 6:00 вечера....
exit
Предоставьте одну строку PowerShell script, которую вы сочтете полезной, за один script за ответ.
Здесь есть аналогичный , но в нем приведены только ссылки на страницы со сценариями, даются ответы один за другим здесь и есть список наиболее часто используемых или наиболее полезные скрипты.
Список последних версий файлов
ls -r -fi *.lis | sort @{expression={$_.Name}}, @{expression={$_.LastWriteTime};Descending=$true} | select Directory, Name, lastwritetime | Group-Object Name | %{$_.Group | Select -first 1}
gps programThatIsAnnoyingMe | kill
Откройте файл с его зарегистрированной программой (например, start
e.g start foo.xls
)
ii foo.xls
Извлекает и отображает пути к системе Специальная папка
[enum]::getvalues([system.environment+specialfolder]) | foreach {"$_ maps to " + [system.Environment]::GetFolderPath($_)}
Скопировать значение среды в буфер обмена (так что теперь вы знаете, как использовать буфер обмена!)
$env:appdata | % { [windows.forms.clipboard]::SetText($input) }
ИЛИ ls | clip
С SnapIns
Файлы между двумя номерами наборов изменений в TFS
Get-TfsItemHistory <location> -Recurse -Version <label1>~<label2> |
% { $(Get-TfsChangeset $_.ChangeSetID).Changes } |
% { $_.Item.ServerItem } | Sort-Object -Unique
Получает сообщения очереди с ошибками по всем серверам-концентраторам в обмен 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
Примерно в 6:00 вечера....
exit
Ну, вот я часто использую вместе с некоторыми объяснениями.
ii.
ii - псевдоним для Invoke-Item. Этот командный файл, по существу, вызывает любую команду, зарегистрированную в Windows для следующего элемента. Итак:
ii foo.xls
Откроется foo.xls
в Excel (если у вас установлен Excel, а файлы .xls связаны с Excel).
В ii .
.
ссылается на текущий рабочий каталог, поэтому команда заставит Windows Explorer открываться в текущем каталоге.
Список всех файлов, которые я обновил сегодня:
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
Мой любимый powerhall один вкладыш
gps programThatIsAnnoyingMe | kill
($x=new-object xml).Load("http://rss.slashdot.org/Slashdot/slashdot");$x.RDF.item|?{$_.creator-ne"kdawson"}|fl descr*
Мой любимый: это читатель slashdot без ужасных заявлений от mr. kdawson. Он рассчитан на менее чем 120 символов, что позволяет использовать его в качестве подписи на/.
Подавить Visual Studio 2012 ВСЕ меню CAPS - самое первое, что я делаю после установки VS2012.
Set-ItemProperty -Path HKCU:\Software\Microsoft\VisualStudio\11.0\General -Name SuppressUppercaseConversion -Type DWord -Value 1
Благодаря Richard Banks, который обнаружил значение реестра.
Я смущаюсь перечислять мой список однострочных наборов PowerShell один за другим, поскольку в списке насчитывается всего около 400 записей!:-) Но вот несколько из моих фаворитов, чтобы заинтересовать вас:
[accelerators]::get
[xml]"<root><a>...</a></root>"
$PWD | ConvertTo-Json -Depth 2
#cd
[System.Text.RegularExpressions.RegexOptions]::Singleline
ls . | select name,length | Out-ConsoleGraph -prop length -grid
Вся коллекция является общедоступной в серии из 4 частей, опубликованной на Simple-Talk.com. Я надеюсь, что это будет полезно для читателей SO!
Я хотел назвать серию "Do Anything in One Line of PowerShell", но мой редактор хотел что-то более кратким, поэтому мы пошли с PowerShell One-Liners. Хотя в интересах полного раскрытия, только 98% или около того действительно являются однолинейными в истинном духе этого термина; Я думал, что это было достаточно близко, округляя...: -)
Извлекает и отображает пути к специальной папке
[enum]::getvalues([system.environment+specialfolder]) | foreach {"$_ maps to " + [system.Environment]::GetFolderPath($_)}
Это показывает, какие процессы используют версии DLL-библиотек MS CRT:
gps | select ProcessName -exp Modules -ea 0 |
where {$_.modulename -match 'msvc'} | sort ModuleName |
Format-Table ProcessName -GroupBy ModuleName
Это может быть обман, поскольку у меня установлена привязка TFS PowerTools, но это очень полезно для определения, какие файлы были изменены между двумя наборами изменений, версиями или ярлыками.
Get-TfsItemHistory <location> -Recurse -Version <label1>~<label2> |
% { $(Get-TfsChangeset $_.ChangeSetID).Changes } |
% { $_.Item.ServerItem } | Sort-Object -Unique
Мне показалось полезным показать значения переменных среды
dir env:
И вы также можете скопировать значение env в буфер обмена
$env:appdata | % { [windows.forms.clipboard]::SetText($input) }
(вам нужно, чтобы перед вызовом были загружены файлы windows.form: Add-Type -a system.windows.forms и запустить PowerShell с ключом -STA)
Мне не нравятся сложные приложения для подсчета строк кода, особенно потому, что я считаю это фиктивной метрикой в первую очередь. Вместо этого я использую однострочный PS:
PS C:\Path> (dir -include *.cs,*.xaml -recurse | select-string .).Count
Я просто включаю расширения файлов, которые я хочу включить в счетчик строк, и перейдите к нему из корневого каталога проекта.
вывести вывод чего-то в буфер обмена
ls | clip
Сгенерировать в файле некоторые псевдослучайные байты.
[Byte[]][email protected](); 0..9 | %{$out += Get-Random -Minimum 0 -Maximum 255}; [System.IO.File]::WriteAllBytes("random",$out)
Алгоритм Get-Random берет семя из системных часов, поэтому не используйте его для серьезных криптографических потребностей.
Получает сообщения очереди с ошибками по всем серверам-концентраторам в Exchange 2007 (с некоторым форматированием)
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
Отображение функций Система Время работы Я использую это для моей таблицы учета
function get-uptime
{
$PCounter = "System.Diagnostics.PerformanceCounter"
$counter = new-object $PCounter System,"System Up Time"
$value = $counter.NextValue()
$uptime = [System.TimeSpan]::FromSeconds($counter.NextValue())
"Uptime: $uptime"
"System Boot: " + ((get-date) - $uptime)
}
Скопируйте часть на рабочий стол:
Copy-Item $home\*.txt ([Environment]::GetFolderPath("Desktop"))
Список всех поставщиков Windows в альфа-порядке:
get-winevent -listprovider microsoft-windows* | % {$_.Name} | sort
Фактически вы можете использовать это с подстановочным знаком для любой определенной группы поставщиков:
get-winevent -listprovider microsoft-windows-Securit* | % {$_.Name} | sort
cls
Избавьтесь от всех трудноразрешимых красных отметок после каждой из моих попыток, позволив мне возобновить работу с красивым шикарным прозрачным экраном.