17

Как я могу скопировать имена файлов в каталоге в текстовый файл или в буфер обмена?

5 ответов5

30

Это очень просто в интерпретаторе командной строки Windows (все операционные системы Windows):

  1. Откройте командную строку (Пуск -> Выполнить -> cmd Enter)
  2. Перейдите (cd) к каталогу, файлы которого вы хотите перечислить.
  3. Введите 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 увидите новую команду для отображения содержимого каталога.

ПРИМЕЧАНИЕ. Это будет работать только при щелчке правой кнопкой мыши по каталогу и отображает только содержимое каталога, по которому вы щелкнули правой кнопкой мыши. Он также сохраняет список в этот каталог (чтобы избежать перезаписи других файлов). Сценарий можно легко изменить, чтобы изменить место хранения файла списка вывода.

8

Вы можете использовать dir /b > files.txt из командной строки, чтобы получить список имен файлов, сохраненных в files.txt . Добавьте /s если вы хотите рекурсивный список.

Чтобы поместить содержимое прямо в буфер обмена, просто перенаправьте вывод в clip , т.е. выполните dir /b | clip .

6

Поскольку вы не упомянули операционную систему, вот как она работает на * nix:

$ find . -maxdepth 1 -type f > /tmp/files.txt

для файлов в текущем каталоге или

$ find . -type f > /tmp/files.txt

если вы хотите получить все файлы в дереве каталогов.

1

Из проводника Windows создайте ярлык в папке SendTo и введите следующую команду:

%windir%\system32\cmd.exe /k dir /b "%1"

удалить текст "Начать с"

После того, как команда была выполнена один раз, вы можете изменить значения по умолчанию для окна (например, выбор с помощью мыши вместо Edit → Mark).

Единственная проблема заключается в том, что вам нужно будет игнорировать первую строку (которая говорит "файл не найден").

1

Другой вариант Unix будет

ls -R > myfile.txt 

Это будет список всего в текущем каталоге и рекурсивных каталогах.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .