Powershell从第2行排序

Hei*_*sen 1 powershell sort-object

我想对.txt文档进行排序,以便第一行保持在顶部,其余的按数字排序.

我目前有以下内容,但它删除了第一行,并且排序不正确,因为数字是例如72,2,51,100,201,5等等所以它将其分类为100,2,201, 5,51,72.

我希望它分类为2,5,51,72,100,201

$emptyLine = Get-Content C:\Path\Document.txt | Select-Object -Skip 1
$emptyLine | Sort-Object | Out-File C:\Path\Document.txt
Run Code Online (Sandbox Code Playgroud)

我知道这在Notepad ++中是可行的,但是不允许需要进行排序的机器安装任何新的东西.

如果对于任何解决方案,我都非常开放,这不需要我安装新的软件.

该机器是Windows 10 Pro x64.

当前图片

期望的结果

目前的结果

No        Tool_Name        Tool_Part
72        10        1      9.	   1
43        36        3      29.     1
102       34        1      1.7     1
600       33        1      3.      1
76        3         1      5.3     1
75        3         1      5.5     1
251       2         3      3.      1
73        10        1      5.3     1
50        36        3      15.9    1
64        2         1      6.      1
Run Code Online (Sandbox Code Playgroud)

(作为HTML片段发布,使格式更漂亮)

Mat*_*sen 5

利用多值赋值并将输出存储Get-Content在两个变量中,然后只对第二个变量进行排序:

$First,$Rest = Get-Content C:\Path\Document.txt
@($First; $Rest |Sort-Object) |Set-Content C:\Path\Document.txt
Run Code Online (Sandbox Code Playgroud)

在上面的场景中,PowerShell将第一行分配给$First其余部分$Rest

如果你需要Sort-Object按字符串属性的第一部分排序,就好像它是一个整数,你可以这样做:

@($First; $Rest |Sort-Object {(-split $_)[0] -as [int]}) |Set-Content C:\Path\Document.txt
Run Code Online (Sandbox Code Playgroud)