Powershell "LastWriteTime" не работает - PullRequest
0 голосов
/ 25 апреля 2018

Есть ли способ остановить сортировку Powershell по умолчанию?Мне нужно читать файлы из каталога и в порядке их перечисления в каталоге. Мне нужно, чтобы они также были перечислены в массиве (переменной).Даже когда я использую -lastwritetime в команде get-childitem, это никак не влияет.Основная причина, по которой я хочу это сделать, заключается в том, что имена файлов имеют одинаковые имена, за исключением того, что после каждого файла есть номер, следующий за ним, например: 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 голосов
/ 01 мая 2018

Спасибо, что ответили, Майк. Я просто поместил «-filter * .pdf» перед -path, который дал мне заголовки. Затем я передал «select-object -ExpandProperty name», чтобы вывести его точно так, как мне было нужно. Это была небольшая проба и ошибка, но в конце концов я все понял.

$filesnames1 = Get-ChildItem -filter *.doc -Path c:\fileFolder\test | 
           Sort-Object -LastWriteTime | -ExpandProperty name
0 голосов
/ 30 апреля 2018

Возможно, вы хотите что-то еще в этом духе.

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

Я не думаю, что у одного из этих двух командлетов есть параметр -LastWriteTime.

Если вам нужны только именаиз этих объектов файловой системы вы можете использовать ($filesnames1).Name после кода выше.Есть и другие способы.

...