Powershell“LastWriteTime”无法正常工作

时间:2018-04-25 17:39:11

标签: sorting powershell-v4.0 get-childitem

默认情况下有没有办法阻止Powershell排序?我需要读取目录中的文件,并按照我需要的目录中列出的顺序将它们列在数组(变量)中。即使我在get-childitem命令中使用-lastwritetime,它似乎没有任何影响。我想要这样做的主要原因是因为文件的名称都是相同的,除了每个文件后面都有一个数字,如下所示: document1.doc document2.doc document3.doc ..... document110.doc

问题是,如果它按名称排序,它将以这种方式排序: document1.doc document10.doc document111.doc 这是可怕的错误!

现在我有了这个命令,它不起作用:

$filesnames1 = get-childItem -name *.doc -Path c:\fileFolder\test | sort-object -LastWriteTime

2 个答案:

答案 0 :(得分:0)

你可能想要更多这些内容。

$filesnames1 = Get-ChildItem -Path c:\fileFolder\test\*.doc | 
               Sort-Object -Property LastWriteTime

我不认为这两个cmdlet中的任何一个都有-LastWriteTime参数。

如果只需要这些文件系统对象中的名称,可以在上面的代码后使用($filesnames1).Name。还有其他方法。

答案 1 :(得分:0)

感谢您回复迈克。我做的是放一个" -filter * .pdf"就在-path之前,它给了我标题。然后我用一个" select-object -ExpandProperty名称"准确列出我需要它的方式。这是一个小小的试验和错误,但我最终确定了它。

$filesnames1 = Get-ChildItem -filter *.doc -Path c:\fileFolder\test | 
           Sort-Object -LastWriteTime | -ExpandProperty name