Как я могу скопировать имена файлов в каталоге в текстовый файл или в буфер обмена?
5 ответов
Это очень просто в интерпретаторе командной строки Windows (все операционные системы Windows):
- Откройте командную строку (Пуск -> Выполнить ->
cmd
Enter) - Перейдите (
cd
) к каталогу, файлы которого вы хотите перечислить. - Введите
dir > output_file_name
(например,dir > C:\dir.txt
) и нажмите Enter.
Откройте недавно созданный текстовый файл (C:\dir.txt
), и вы получите полный вывод команды dir
в этом каталоге.
Символ «больше» (>
) означает перенаправление вывода; он отправляет выходные данные большинства команд в указанный вами файл и очень удобен для возможности регистрации выходных данных команд.
Выходом можно управлять всеми доступными опциями для настройки обычного вывода команды DIR; просто добавьте перенаправление вывода в конце любых аргументов, которые вы хотите отправить в текстовый файл.
Обновление: создание контекстного меню, вызываемого правой кнопкой мыши, для создания списка содержимого каталога.
Создайте пакетный файл и сохраните его как %windir%\DirList.bat
:
@echo off
set dirpath=%1
dir %dirpath% /-p /o:gn > "%dirpath%\DirContents.txt"
exit
Откройте свой каталог SendTo
:
Windows 7/Vista: %appdata%\Microsoft\Windows\SendTo
Windows XP: %USERPROFILE%\SendTo
Создайте новый ярлык, указывающий на DirList.bat
и назовите его как хотите.
Теперь, щелкнув правой кнопкой мыши по любому каталогу и выбрав подменю SendTo
увидите новую команду для отображения содержимого каталога.
ПРИМЕЧАНИЕ. Это будет работать только при щелчке правой кнопкой мыши по каталогу и отображает только содержимое каталога, по которому вы щелкнули правой кнопкой мыши. Он также сохраняет список в этот каталог (чтобы избежать перезаписи других файлов). Сценарий можно легко изменить, чтобы изменить место хранения файла списка вывода.
Вы можете использовать dir /b > files.txt
из командной строки, чтобы получить список имен файлов, сохраненных в files.txt
. Добавьте /s
если вы хотите рекурсивный список.
Чтобы поместить содержимое прямо в буфер обмена, просто перенаправьте вывод в clip
, т.е. выполните dir /b | clip
.
Поскольку вы не упомянули операционную систему, вот как она работает на * nix:
$ find . -maxdepth 1 -type f > /tmp/files.txt
для файлов в текущем каталоге или
$ find . -type f > /tmp/files.txt
если вы хотите получить все файлы в дереве каталогов.
Из проводника Windows создайте ярлык в папке SendTo и введите следующую команду:
%windir%\system32\cmd.exe /k dir /b "%1"
удалить текст "Начать с"
После того, как команда была выполнена один раз, вы можете изменить значения по умолчанию для окна (например, выбор с помощью мыши вместо Edit → Mark).
Единственная проблема заключается в том, что вам нужно будет игнорировать первую строку (которая говорит "файл не найден").
Другой вариант Unix будет
ls -R > myfile.txt
Это будет список всего в текущем каталоге и рекурсивных каталогах.