У меня есть несколько изображений TIFF, заказанных от 1 до 246. Я конвертировал их в файл PDF, используя imagemagick с convert *.tif out.pdf . Однако порядок страниц в файле PDF отличается; (например, страница 2 - это изображение 10 и т. д.). Когда я запускаю dir или ls я получаю неупорядоченные файлы, подобные следующим:

21/06/2018  16:15    <DIR>          .
21/06/2018  16:15    <DIR>          ..
21/06/2018  15:51             2.056 1.tif
21/06/2018  15:51            98.710 10.tif
21/06/2018  15:51            96.492 100.tif
21/06/2018  15:51            44.064 101.tif
21/06/2018  15:51            70.960 102.tif
21/06/2018  15:51            85.254 103.tif
21/06/2018  15:51            92.750 104.tif
21/06/2018  15:51            87.672 105.tif
21/06/2018  15:51            90.284 106.tif
21/06/2018  15:51            79.532 107.tif
21/06/2018  15:51            85.956 108.tif
21/06/2018  15:51            22.452 109.tif
21/06/2018  15:51            91.796 11.tif
(...)

Что я хочу:

21/06/2018  16:15    <DIR>          .
21/06/2018  16:15    <DIR>          ..
21/06/2018  15:51             2.056 1.tif
21/06/2018  15:51            98.710 2.tif
21/06/2018  15:51            96.492 3.tif
21/06/2018  15:51            44.064 4.tif
21/06/2018  15:51            70.960 5.tif
21/06/2018  15:51            85.254 6.tif
21/06/2018  15:51            92.750 7.tif
21/06/2018  15:51            87.672 8.tif
21/06/2018  15:51            90.284 9.tif
21/06/2018  15:51            98.710 10.tif
21/06/2018  15:51            91.796 11.tif
(...)

Как я могу отсортировать файлы в числовом порядке?

2 ответа2

3

Тебе не нужна какая-то мощная оболочка? Как, например:

$D = get-childitem
$B = foreach ($F in $D) {
  "{0,30}" -f  $F.Name
}
$B | sort

производство:

PS C:\temp\test> c:\temp\numdir.ps1
                     1.txt
                     2.txt
                    10.txt
                   100.txt
3

Используйте следующий пакетный файл, чтобы переименовать файлы, используя трехзначное имя. Затем вы можете использовать порядок сортировки окон по умолчанию, чтобы сделать ваш PDF-файл правильным.

@echo off
setlocal enableextensions enabledelayedexpansion
for %%f in (*.tif) do (
    set FileName=%%~nf
    set FileName=00!FileName!
    set FileName=!FileName:~-3!
    set FileName=!FileName!%%~xf
    ren "%%f" "!FileName!"
)

При выполнении вышеуказанного командного файла имя файла будет изменено на 001.tif, 002.tif, 020.tif... etc . Д. imagemagick будет использовать порядок сортировки по умолчанию и создаст правильный PDF.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .