PowerShell — считаем количество страниц в документах Word
На днях попалась интересная задача — подсчитать количество страниц в документах Word. Немного погуглив нашел почти рабочий скрипт на просторах Reddit. Слегка исправив скрипт и добавив в него кое-что получил рабочий вариант. Вдруг кому тоже пригодится…
В свойствах файла для Windows 7 и Windows 10 действительно используются разные ID.
Windows 7 — 148
Windows 10 — 157
На Reddit еще используют 152, но возможно он для другой версии Windows, проверить не получилось, так как под рукой нет Windows 8.
И так, сам код:
1 2 3 4 5 6 7 8 9 10 11 12 |
$shell = new-object -com shell.application $pages = Get-ChildItem -Path "C:\Docum\Word\" -Recurse -Include *.doc, *.docx | ForEach-Object { $file = $_ Write-Host $file $shellFolder = $shell.namespace($_.DirectoryName) $shellFile = $shellFolder.Items() | Where-Object { $_.path -eq $file.FullName } $pages = $shellFolder.GetDetailsOf($shellFile, 157) #id-code Write-Host 'Страниц:' $pages $pages } $pages | Measure-Object -Sum |
Скрипт смотрит свойства файлов *.doc и *.docx и выводит количество страниц. Последняя строчка нужна для суммирования значений.
2 комментария
SЛM
В коде ошибка есть похоже.
kanitelka
Спасибо, код поправил 🙂