本文介绍了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带数字的排序对象名称不正确的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!