Команда 'dir' Windows, Порядок По имени И <что-то>

Это должно сработать:

Sub PrintBOL()
    Dim x%
    x% = 1
    For x% = 1 To 3
        If x% = 1 Then
            ActiveSheet.PageSetup.CenterFooter = x% & " of 3" & "   Company Copy"
        ElseIf x% = 2 Then
            ActiveSheet.PageSetup.CenterFooter = x% & " of 3" & "   Customer Copy"
        ElseIf x% = 3 Then
            ActiveSheet.PageSetup.CenterFooter = x% & " of 3" & "   Carrier Copy"
        End If
        ActiveSheet.PrintOut
    Next x%
End Sub
5
задан Ross Ridge 16 August 2018 в 13:25
поделиться

5 ответов

Ваш наилучший вариант (если возможный) состоит в том, чтобы добавить достаточно начальных нулей (два, в этом случае) к Вашим меньшим числам так, чтобы вид действительно вышел как ожидалось.

8
ответ дан 14 December 2019 в 01:20
поделиться

Windows Explorer использует специальную функцию сортировки, StrCmpLogicalW, который не используется cmd.exe, следовательно различия в выводе. Вы могли записать свою собственную программу сортировки с ним, все же.

Вы могли бы также интересоваться записями Michael Kaplan на это тема: (от ящика для предложений Raymond Chen).

4
ответ дан 14 December 2019 в 01:20
поделиться

Он он он. Вы все хотите знать мое решение?

Я использую программу под названием ImageMagick, который преобразовывает мои 200 МБ файлы PDF в JPG. В конце долгого процесса это сериализирует все файлы в числовом порядке... Так в основном дата создания файла увеличивается в значении немного, как каждый файл пишется в жесткий диск. Таким образом любая из следующих двух команд пакетного файла запишет файлы в 'корректном' порядке:

dir *.jpg /ODN /B > files.txt

for /f "tokens=*" %%a in ('dir *.jpg /ODN /B') do (
    echo ^<page^>%%a^</page^> >>pages.xml.fragment
)

Таким образом dir *.jpg /OD управляйте заказывает содержание каталога путем возрастания (создание?) дата, и мы можем полностью проигнорировать фактическое имя файла.

0
ответ дан 14 December 2019 в 01:20
поделиться

4NT/TCC/TC от JPSoft используют естественный порядок сортировки по умолчанию; поочередно, если у Вас есть доступ к программе "вида" GNU, такой как инструменты Cygwin, можно сделать что-то как "ls-1 |/bin/sort-g" или "dir/b | \cygwin\bin\sort-g"; это даст Вам имена файлов в естественном порядке сортировки.

Если Вы ограничиваетесь к инструментам, которые являются собственными к окнам, можно попробовать инструменты Windows Scripting и сделать что-то, любят, используют FileSystemObject, чтобы заставить имена файлов и регулярные выражения извлекать числовую часть имен файлов для использования в качестве ключей в объекте Словаря. Я оставлю фактическое кодирование как осуществление читателю :)

-1
ответ дан 14 December 2019 в 01:20
поделиться

Нет, нет никакого способа сделать это. Windows Explorer использует другой подход для обработки этого.

-2
ответ дан 14 December 2019 в 01:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: