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

23153
Charles Roper

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

Была бы полезна некоторая степень гибкости, например, возможность копировать только имя файла, путь + имя файла, имя файла без расширения и т. Д. Однако это не является обязательным, если можно скопировать путь + имя файла.

Решение должно быть совместимо с Windows XP, Windows Vista и Windows 7.

40
В Vista и выше есть встроенный способ сделать это: удерживать Shift, открыть контекстное меню для выбранных файлов. Будет элемент под названием «[Копировать как путь] (http://i.imgur.com/3LoGsJy.png)» LogicDaemon 10 лет назад 6
Чарльз, не подумаете ли вы об изменении принятого ответа сейчас, когда он встроен в Windows? Это поможет другим легче найти лучший ответ. Simon East 8 лет назад 0
Я не голосовал, чтобы снова открыть этот вопрос, потому что принятый ответ не изменится, поскольку он встроен только в Windows Vista и выше. Я вижу много возможностей для злоупотребления этим вопросом. По крайней мере, если оно будет открыто, оно должно быть защищено, чтобы избежать ответов «Я тоже». Ramhound 8 лет назад 0
@SimonEast В вопросе говорится, что он должен быть совместим с XP, поэтому принятый ответ по-прежнему является наиболее подходящим. Второй ответ имеет больше голосов и находится непосредственно под принятым ответом, что представляется разумным компромиссом. Так работает система StackExchange Q / A. Charles Roper 8 лет назад 1

16 ответов на вопрос

74
Joey

Начиная с Vista, вы можете просто нажать Shift + правый клик на файле в проводнике и выбрать «Копировать как путь»:

        Запись в контекстном меню «Копировать как путь» в Windows 7

Это даже работает для нескольких файлов, которые помещаются в буфер обмена по одному на строку.

В Windows 8 это отображается на ленте Explorer:

        "Copy path" button in the Windows 8 Explorer ribbon on the Home tab

Круто, это должен быть полностью принятый ответ. Программное обеспечение не требуется! HaggleLad 12 лет назад 6
Отлично, заставляет задуматься, как я мог так долго пользоваться Windows и не знать этого. Бонус за работу над несколькими файлами. Bratch 11 лет назад 5
@HaggleLad причина, по которой этот ответ не принят, заключается в следующей строке исходного вопроса: «Должно быть совместимо с XP, Vista и Win7». Charles Roper 10 лет назад 2
5
joe

Используйте CopyFilenames

или же

Скопируйте имена файлов в утилиту буфера обмена

Windows XP не имеет возможности скопировать список имен файлов в буфер обмена (это изменилось в более поздних версиях Windows, начиная с Vista). В статье базы знаний Майкрософт предлагается написать небольшой * .bat-файл, который запускает команду DIR, собирает ее выходные данные в файл, печатает этот файл и затем удаляет его. Иногда это может быть удобно, но было бы более полезно иметь возможность выбрать список файлов и поместить их имена в буфер обмена. Затем вы можете вставить их туда, где они вам нужны.

Так вот утилита для этого. Вы должны сделать немного работы самостоятельно - но не так много - чтобы установить его. Вот инструкции:

  1. Загрузите исполняемый файл . Это всего лишь 20 КБ, поэтому это займет всего несколько секунд, даже если вы используете удаленный доступ. Сохраните его там, где вы хотите, чтобы он находился в вашей системе.
  2. Создать ярлык в «Перейти»

    1. Перейдите в папку «Отправить» под своим именем в \ Windows \ Profiles в проводнике Windows (или, может быть, XP Home поместит этот каталог в папку «Настройки», я не могу вспомнить).
    2. Щелкните правой кнопкой мыши на правой панели, где находятся имена файлов. Выберите «Создать | Ярлык».
    3. Откроется мастер «Создать ярлык». На первой странице введите путь к исполняемому файлу или нажмите кнопку «Обзор ...», чтобы найти его. Нажмите кнопку "Далее".
    4. На второй странице введите имя для новой опции меню. Я использовал «Имена файлов в буфер обмена», но выбираю то, что будет для вас значимым. Нажмите «Готово»

Это оно; Вы установили это. Теперь выберите один или несколько файлов, щелкните правой кнопкой мыши и переместите указатель мыши на «Отправить». Появится подменю, которое будет включать вашу новую команду. Выберите эту команду, и список выбранных вами файлов, отсортированных по возрастанию, будет в буфере обмена.

Источник: http://members.cox.net/slatteryt/FNtoClip.html

Серьезный недостаток этой программы: она не может обрабатывать имена файлов Unicode. Использование небольшого пакетного файла, который просто передает аргументы командной строки в `clip.exe` (включенный в последние версии Windows, ранее доступный в наборе ресурсов), вероятно, должно работать лучше (при условии, что вы используете шрифты TrueType для консоли). Joey 13 лет назад 2
4
pelms

Я использую PowerToy для MS Send, доступную как часть набора Windows 95 PowerToys ( ссылка на скачивание MS ).
Это добавляет «Буфер обмена как имя» (а также «Буфер обмена как содержимое» и некоторые другие параметры) в контекстное меню «Отправить».
Самый простой способ установки - извлечь загруженный файл W95powertoy.exe с помощью утилиты Zip, щелкнуть правой кнопкой мыши «SENDTOX.INF» и выбрать «Установить». Вы можете удалить любые ненужные элементы из меню «Отправить», открыв его в Проводнике.

Прекрасно работает в Windows XP - не в Windows 7, но, как отметил Йоханнес, вместо этого вы можете использовать «Shift + щелчок правой кнопкой мыши».

3
jan

Я использую Ninotech Path Copy. Их сайт мертв, но его можно найти здесь .

Существует 14 различных возможностей для копирования имен файлов, 5 из которых вы можете полностью настроить.

+1 для PathCopy; Этот инструмент особенно полезен, если, например, вам нужно преобразовать путь в прямую косую черту, или если вам просто нужен путь без имени файла. yalestar 15 лет назад 0
Отлично, именно то, что я искал, они предоставляют 64-битную DLL, так что я полагаю, она работает на Win7 (попробую дома ...). Возможности настройки кажутся мощными (включая возможность поиска / замены!). PhiLho 13 лет назад 0
2
Mikhail V.

Я искал решение горячей клавиши . Для меня это работы:

Windows 7 :

  1. Ctrl-C файл
  2. Теперь вы можете вставить (Ctrl-V) непосредственно содержимое буфера обмена в диалоговое окно Windows Open в поле «Путь», если вы просто хотите открыть файл по полному пути ИЛИ Вы можете вставить (Ctrl-V) содержимое буфера обмена в в адресной строке и после этого Ctrl-A, после Ctrl-C и в буфере обмена будет очищен полный путь

Windows 7, Windows Vista, Windows XP :

Скрипт AutoHotkey, немного измененный отсюда для Ctrl + Shift + C

^+c:: Clipboard := gst()  if !IsClipEmpty  ClipWait, 0.5, 1   gst() { ; GetSelectedText or FilePath in Windows Explorer by Learning one   IsClipEmpty := (Clipboard = "") ? 1 : 0  if !IsClipEmpty {  ClipboardBackup := ClipboardAll  While !(Clipboard = "") {  Clipboard =  Sleep, 10  }  }  Send, ^c  ClipWait, 0.1  ToReturn := Clipboard, Clipboard := ClipboardBackup  if !IsClipEmpty  ClipWait, 0.5, 1  Return ToReturn  } 
1
innaM
Это одна из самых грандиозных выигрышных утилит. Chris Marisic 13 лет назад 0
Anonymous editor says that: *> when downloading version 2.6, Antivirus claims this file contains a trojan/virus*, Version 2.5 seems to be fine. slhck 13 лет назад 1
1
CGA

Инструменты Filemenu могут сделать это плюс куча других полезных вещей.

Ссылка на инструменты Filemenu не работает. David A. Gray 6 лет назад 0
1
Frogpower

Некоторые из нас не имеют права загружать / устанавливать / компилировать C ++ на работе, так что вот решение для загрузки, без установки, без кода. Я только что проверил это с Windows XP SP3:

  • Откройте командную строку.
  • Dir каталог, в котором находятся файлы, которые вы хотите просмотреть.
  • Щелкните правой кнопкой мыши в любом месте окна командной строки и выберите «выбрать все».
  • Нажмите клавишу [enter] (это эффективно скопирует вывод командной строки в буфер обмена).
  • Вставьте содержимое буфера обмена в нужное место (я рекомендую Excel, чтобы вы могли «преобразовать текст в столбцы» и сделать его подходящей таблицей).
1
Johnny Baloney

Вот мое решение с открытым исходным кодом, а также бесплатно, если вы считаете, что Windows бесплатно :)

Создайте пакетный файл, скажем, listfiles.bat. Поместите любое из следующего в файл:

FILENAMES

set mylist=myfilelist.txt set tempfile=tmp.txt set diroptions=/a /b  set fullpath=%1 for %%i in (%fullpath%) do set path=%%~dpi cd %path%  if exist %mylist% del %mylist% if exist %tempfile% del %tempfile%  dir %diroptions% > "%path%%mylist%"  for /f "usebackq delims=" %%a in ("%mylist%") do ( if not "%%a"=="%mylist%" ( echo %%a >> %tempfile% ) )  del %mylist% ren %tempfile% %mylist% 

ПУТЬ И ФИЛЬЕНАМЫ

set mylist=myfileandpathlist.txt set tempfile=tmp.txt set diroptions=/a /b /s  set fullpath=%1 for %%i in (%fullpath%) do set path=%%~dpi cd %path%  if exist %mylist% del %mylist% if exist %tempfile% del %tempfile%  dir %diroptions% > "%path%%mylist%"  for /f "usebackq delims=" %%a in ("%mylist%") do ( if not "%%a"=="%path%%mylist%" ( echo %%a >> %tempfile% ) )  del %mylist% ren %tempfile% %mylist% 

Теперь создайте ярлык для этого файла в C:\Documents and Settings\<username>\SendToкаталоге. Перейдите в каталог, из которого вы хотите получить список файлов. Щелкните правой кнопкой мыши по любому файлу и выберите Send To -> Shortcut to listfiles.bat. Список файлов будет записан myfilelist.txtили в myfileandpathlist.txtзависимости от вашего выбора. Очевидно, ничто не мешает вам иметь ярлыки для обоих командных файлов в SendToкаталоге.

Для получения полного списка параметров dirвведите dir /?в командной строке или посетите этот веб-сайт .

1
Synetech

StExBar gives you some flexibility and customizability in copying filenames, paths, etc. plus various additional features.

enter image description here