本文介绍了Powershell带数字的排序对象名称不正确的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在文件夹中查找.sql文件,并根据上次写入时间对其进行过滤。根据上次写入时间,我得到了4个文件作为输出。

I am trying to find .sql files in a folder and filtering them based on the last write time. Based on the last write time I got 4 files as output.

TestScript10.sql
TestScript5.sql
TestScript6.sql
TestScript7.sql

现在当我的命令尝试执行排序对象时我在顶部看到Testscript10而不是TestScript5,如何解决此问题?

Now when my command tries to do sort-object I am seeing Testscript10 at the top instead of TestScript5, how do I fix this issue?

我的代码

$File= Get-ChildItem $FileLocation -Filter *.sql | Where-Object {$_.LastWriteTime -gt $datetime} | Sort-Object Name

$ File 输出

[DBG]: PS SQLSERVER:\>> $File


    Directory: C:\SQLScripts


Mode                LastWriteTime     Length    Name
----                -------------     ------ ----
-a---         5/22/2014  10:20 AM         61 TestScript10.sql
-a---         5/22/2014  10:16 AM         60 TestScript5.sql
-a---         5/22/2014  10:24 AM         66 TestScript6.sql
-a---         5/22/2014  10:10 AM         24 Testscript7.sql


推荐答案

类似以下内容:

| sort-object {[int]($_.basename -replace '\D')}

这篇关于Powershell带数字的排序对象名称不正确的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-15 10:08