Тебе не нужна какая-то мощная оболочка? Как, например:
$D = get-childitem $B = foreach ($F in $D) { "" -f $F.Name } $B | sort
производство:
PS C:\temp\test> c:\temp\numdir.ps1 1.txt 2.txt 10.txt 100.txt
У меня есть несколько изображений в формате 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 (...)
Как я могу отсортировать файлы в числовом порядке?
Тебе не нужна какая-то мощная оболочка? Как, например:
$D = get-childitem $B = foreach ($F in $D) { "" -f $F.Name } $B | sort
производство:
PS C:\temp\test> c:\temp\numdir.ps1 1.txt 2.txt 10.txt 100.txt
Используйте следующий пакетный файл, чтобы переименовать файлы, используя трехзначное имя. Затем вы можете использовать порядок сортировки окон по умолчанию, чтобы сделать ваш 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.