默认情况下有没有办法阻止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
答案 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