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


40

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

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

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


6
Vista и выше имеют встроенный способ сделать это: удерживать клавишу Shift, открыть контекстное меню для выбранных файлов. Там будет пункт под названием « Копировать как путь »
LogicDaemon

Чарльз, не подумаете ли вы изменить принятый ответ сейчас, когда он встроен в Windows? Это поможет другим легче найти лучший ответ.
Саймон Ист

Я не голосовал, чтобы снова открыть этот вопрос, потому что принятый ответ не изменится, поскольку он встроен только в Windows Vista и выше. Я вижу много возможностей для злоупотребления этим вопросом. По крайней мере, если оно будет открыто, оно должно быть защищено, чтобы избежать ответов «Я тоже».
Ramhound

1
@SimonEast В вопросе говорится, что он должен быть совместим с XP, поэтому принятый ответ по-прежнему является наиболее подходящим. Второй ответ имеет больше голосов и находится непосредственно под принятым ответом, что представляется разумным компромиссом. Так работает система StackExchange Q / A.
Чарльз Ропер

Ответы:


5

Используйте 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


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

75

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

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

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

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

        Кнопка «Копировать путь» на ленте проводника Windows 8 на вкладке «Главная»


6
Круто, это должен быть полностью принятый ответ. Программное обеспечение не требуется!
HaggleLad

5
Отлично, заставляет задуматься, как я мог так долго пользоваться Windows и не знать этого. Бонус за работу над несколькими файлами.
Bratch

2
@HaggleLad причина, по которой это не принятый ответ, заключается в следующей строке исходного вопроса: «Должно быть совместимо с XP, Vista и Win7».
Чарльз Ропер

4

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

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


3

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

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


+1 для PathCopy; Этот инструмент особенно полезен, если, например, вам нужно преобразовать путь в прямую косую черту, или если вам просто нужен путь без имени файла.
yalestar

Отлично, именно то, что я искал, они предоставляют 64-битную DLL, так что я полагаю, она работает на Win7 (попробую дома ...). Возможности настройки кажутся мощными (включая возможность поиска / замены!).
Фил

2

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

Windows 7 :

  1. Ctrl-C файл
  2. Теперь вы можете вставить (Ctrl-V) непосредственно содержимое буфера обмена в диалоговое окно Windows Open в поле Path, если вы просто хотите открыть файл по полному пути ИЛИ Вы можете вставить (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

Это одна из самых грандиозных выигрышных утилит.
Крис Марисик

1
Анонимный редактор говорит, что: > при загрузке версии 2.6, Антивирус утверждает, что этот файл содержит троян / вирус , версия 2.5, кажется, в порядке.
Slhck


1

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

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

1

StExBar дает вам некоторую гибкость и настраиваемость при копировании имен файлов, путей и т. Д., А также различные дополнительные функции.

введите описание изображения здесь


1

Для тех, кто все еще использует Windows XP (как я, вынужден работать), следующая процедура работает для копирования одного имени файла без какого-либо дополнительного программного обеспечения:

  1. Щелкните правой кнопкой мыши нужный файл в списке Windows Explorer.

  2. Нажмите «Свойства» в выпадающем меню

  3. Выделите имя файла в поле вверху вкладки «Общие»

  4. CTRL-C, чтобы скопировать имя файла, затем закрыть окно «Свойства»

  5. CTRL-V, чтобы вставить имя файла, где вы хотите.


1

FreeCommander предоставляет следующие 3 опции после выделения файлов:

  1. Скопируйте полное имя как текст
  2. Скопируйте имя как текст
  3. Скопируйте полный путь как текст

1

Вот мое решение с открытым исходным кодом, а также бесплатно, если вы считаете, что 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%

ПУТЬ И FILENAMES

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

Вот простой скрипт AutoHotkey, который копирует все аргументы командной строки в буфер обмена (разделенные новыми строками). Как и в других решениях, он работает через меню « Отправить» , поэтому установите для него ярлык "%USERPROFILE%\SendTo"(или он сделает это за вас, если запустится без аргументов).

Чтобы запустить его, вставьте его в блокнот и сохраните в "%USERPROFILE%\SendTo\CopyToClipboard.ahk". Также вам понадобится AutoHotkey 1.1 ( direct dl ), это FOSS.

#NoEnv
#NoTrayIcon
#SingleInstance force

If %0%
{
    Loop %0%  ; For each parameter:
        AllArguments .= ( A_Index > 0 ? "`r`n" : "") . %A_Index%
    ;MsgBox %AllArguments%
    Clipboard = %AllArguments%
    ToolTip Copied paths: %0%
} Else {
    MsgBox 68, %A_ScriptName%, This script copies command line arguments to clipboard. Intended to be used as Send To target`, so shourtcut to one should be in Send To.`n`nCreate the shourtcut?
    IfMsgBox Yes
    {
        EnvGet UserProfile, UserProfile
        FileCreateShortcut %A_AhkPath%, %UserProfile%\SendTo\Names to Clipboard.lnk,, %A_ScriptFullPath%, Copies file names (with paths) to clipboard.
    }
}

Sleep 1500

1

Работал правильно в Windows 7.

Копировать весь список файлов

Шаг 1 Удерживая клавишу «Shift», щелкните правой кнопкой мыши папку, содержащую список файлов, и выберите «Открыть командное окно здесь».

Шаг 2 Введите «dir / b> filenames.txt» (без кавычек) в окне командной строки. Нажмите Ввод."

Шаг 3 Дважды щелкните файл «filenames.txt» из ранее выбранной папки, чтобы просмотреть список имен файлов в этой папке.

Шаг 4 Нажмите «Ctrl-A», а затем «Ctrl-C», чтобы скопировать список имен файлов в буфер обмена.

Совет. Когда вы будете готовы вставить имена файлов, щелкните место вставки в соответствующей программе и нажмите «Ctrl-V».


0

Мне нравится ClipboardPath от Stefan Bertels. Большинство других инструментов скрывают это в подменю «Отправить», которым я редко пользуюсь; ClipboardPath размещает его в верхней части контекстного меню, и, если вы хотите полный сетевой путь (очень полезно), просто удерживайте нажатой клавишу «Control», прежде чем выбрать «Копировать путь».


0

Я написал небольшое бесплатное приложение с открытым исходным кодом .NET под названием fnamecopy для этой цели . Это очень просто и не имеет интеграции с щелчком правой кнопкой мыши, вы просто перетаскиваете файл (ы) / папки, для которых вы хотите указать путь, в небольшое окно, а затем выбираете, для каких из них вы хотите указать путь. Это очень голые кости, но это делает работу за меня.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.