And*_*ndy 4 c# sorting powershell
所以我试图使用PowerShell对文件顶部的C#"using"语句进行排序.对于给定的输入文件File.cs,using语句如下所示:
using System.Reflection;
using System.Configuration;
using System.Runtime.Caching;
using System.Linq;
using System;
Run Code Online (Sandbox Code Playgroud)
我希望输出"使用System"作为第一个"使用",但实际上Sort-Object将它排序到底部.如何更改此选项以排序到列表顶部?
function Update-UsingStatements
{
param (
[Parameter(Mandatory=$true)][string]$FilePath
)
$fileLines = Get-Content $FilePath
$contents = $fileLines | Out-String
$list = New-Object 'System.Collections.Generic.List[string]'
$contents | Select-String -pattern 'using\s[\w\.]+;' -AllMatches | ForEach-Object {$_.Matches} | ForEach-Object { $list.Add($_.Value) }
$list = $list | Sort-Object
for ($i = 0; $i -lt $list.Count; $i++)
{
$fileLines[$i] = $list[$i]
}
$fileLines | Out-File $FilePath -Encoding utf8
}
Run Code Online (Sandbox Code Playgroud)
您正在获得该排序顺序,因为字符串包括尾部;,并且在字符表;(ASCII字符59)之后.(ASCII字符46).所以排序顺序绝对正确,即使它不是你所期望的.
从您对其进行排序的属性中删除尾随分号:
$list = $list | Sort-Object { $_ -replace ';' }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
170 次 |
| 最近记录: |