Пакетный скрипт перебирает файлы определенного типа в текущем каталоге и получает последние созданные и последующие последние созданные файлы и т. Д.

У меня есть следующий скрипт для циклического перебора файлов определенного типа и получения информации о date а также time их создания:

@echo off
setlocal

call :getCreationInfo
cmd /k

:getCreationInfo
for /f "skip=5 tokens=1,2,4,5* delims= " %%a in ('dir /a:-d /o:d /t:c *.bak') do (
    if "%%~c" NEQ "bytes" (
        echo(
        @echo File Name: %%~d
        @echo Absolute Path: %%~fd
        @echo Creation Date: %%~a
        @echo Creation Time: %%~b
        echo(
    )
)

Но как мне упорядочить этот список по убыванию, как сначала последний созданный файл, а затем следующий созданный файл, а затем следующий и сохранить их в массиве?

Я застрял в этом порядке, надеясь, что кто-нибудь поможет мне здесь.

1 ответ

Решение

Поместите дефис в предложение порядка, как в /o:-d вместо /o:d. Это сработало для меня на экране командной строки.

Попробуйте эту ссылку для размещения результатов в массиве: Создать список или массивы в Windows Batch

@echo off
setlocal

call :getCreationInfo
cmd /k

:getCreationInfo
for /f "skip=5 tokens=1,2,4,5* delims= " %%a in ('dir /a:-d /o:-d /t:c *.bak') do (
    if "%%~c" NEQ "bytes" (
        echo(
        @echo File Name: %%~d
        @echo Absolute Path: %%~fd
        @echo Creation Date: %%~a
        @echo Creation Time: %%~b
        echo(
    )
)
Другие вопросы по тегам