Я хочу напечатать нумерованный список имен файлов в каталоге.
Я старался
dir /w > test.txt
Какие команды для этого?
Я хочу напечатать нумерованный список имен файлов в каталоге.
Я старался
dir /w > test.txt
Какие команды для этого?
@echo off
setlocal enabledelayedexpansion
set num=0
FOR %%F IN (*) DO (
set /a num += 1
echo !num! %%~fF
)
echo %num% files
endlocal
"%% ~ fF" печатает полный путь. Чтобы напечатать короткое имя файла, используйте «%% F». Смотрите for /?
ближе к концу для всех возможных расширений.
Изменить: чтобы перейти в каталог, измените его на
FOR %%F IN (%**) DO (
И назовите его с именем каталога со следующей косой чертой («C:\Windows\», а не «C:\Windows») или без имени каталога.
Вы также можете перейти в каталог с помощью pushd %*
перед циклом for, а затем popd
любое время после цикла for. Это было бы полезно, если вам нужно было сделать больше, чем перечислять файлы, но вы хотите вернуться в исходный рабочий каталог.
Изменить: Вот более полная, аннотированная версия. В нем также перечислены каталоги - я пропустил , что for
этого не делает по умолчанию:
@echo off
setlocal enabledelayedexpansion
:: change to a dir
pushd %*
:: file counter
set num=0
:: dirs only
FOR /D %%D IN (*) DO (
set /a num += 1
echo !num! %%D
)
:: files only
FOR %%F IN (*) DO (
set /a num += 1
echo !num! %%F
)
:: final tally
echo.
echo %num% files
:: return to original directory
popd
endlocal
Просто сохраните в файл с расширением .cmd
и поместите его куда-нибудь по пути (например, C:\Windows), и это должно работать на любой недавней ОС Windows (проверено на XP).
Вы можете экспортировать список имен файлов, используя Экспорт имен файлов, разместить номера, отформатировать список любым удобным для вас способом и распечатать его.
Если вы используете Windows с NTFS, я думаю, что это можно сделать с помощью поисковой системы Everything . Он может искать типы файлов с определенными элементами в имени файла, поддерживает регулярные выражения и может экспортировать в .txt.