Як скопіювати шлях до файлу буфера обміну?


40

Чи є спосіб скопіювати поточне вибране ім’я файлу, включаючи шлях, до буфера обміну? В ідеалі це буде через меню правою кнопкою миші.

Буде корисною певна ступінь гнучкості, як, наприклад, можливість копіювати лише ім’я файлу, шлях + ім'я файлу, ім'я мінус розширення тощо. Однак це не є суттєвим, доки він може скопіювати шлях + ім'я файлу.

Рішення повинно бути сумісним з Windows XP, Windows Vista та Windows 7.


6
Vista та новіші версії мають інтегрований спосіб зробити це: утримуйте зсув, відкрийте контекстне меню на вибраних файлах. Там буде пункт під назвою " Скопіювати як шлях "
LogicDaemon

Чарльз, чи не могли б ви змінити прийняту відповідь тепер, коли вона вбудована в Windows? Це допоможе іншим легше знайти найкращу відповідь.
Саймон Схід

Я не голосував за відкриття цього питання ще раз, оскільки прийнята відповідь не буде змінена, оскільки вона вбудована лише в Windows Vista і вище. Я бачу багато можливостей для зловживання цим питанням. Принаймні, якби його було повторно відкрито, його слід захищати, щоб уникнути відповідей "я теж".
Рамхаунд

1
@SimonEast У запитанні зазначено, що він повинен бути сумісний з XP, тому прийнята відповідь все ще є найбільш прийнятною. Друга відповідь має більше голосів і сидить безпосередньо під прийнятою відповіддю, що здається розумним компромісом. Ось так розроблена система StackExchange Q / A.
Чарльз Ропер

Відповіді:


5

Використовуйте імена CopyFilename

або

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

У Windows XP немає можливості скопіювати список буферних файлів у буфер обміну (це змінилося в пізніших версіях Windows, починаючи з Vista). У статті бази знань Microsoft пропонується написати невеликий * .bat файл, який виконує команду DIR, збирає його вихід у файл, друкує цей файл, а потім видаляє його. Це може бути зручно в деяких випадках, але було б корисніше мати можливість вибору списку файлів і розміщення їх назв у буфері обміну. Тоді ви можете вставити їх куди-небудь, де вам потрібні.

Отже, ось утиліта для цього. Ви повинні зробити трохи роботи самостійно - але не дуже багато - щоб встановити її. Ось інструкція:

  1. Завантажте виконуваний файл . Це всього 20 кб, тому це займе лише кілька секунд, навіть якщо ви використовуєте комутований доступ. Зберігайте його там, де ви хочете, щоб він знаходився у вашій системі.
  2. Створіть ярлик у "Перейти"

    1. Перейдіть у папку "Надіслати" під своїм ім'ям у \ Windows \ Профілі в Провіднику 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 це відкрито на стрічці Провідника:

        Кнопка "Скопіювати шлях" на стрічці Провідника Windows 8 на вкладці "Головна"


6
Дивовижно, це повинна бути повністю прийнятою відповіддю. Не потрібно програмне забезпечення!
HaggleLad

5
Чудово, змушує мене замислитися, як я міг так довго користуватися Windows, і не знаю цього. Бонус за роботу над декількома файлами.
Братч

2
@HaggleLad Причина, чому це не прийнята відповідь, полягає в тому, що цей рядок в оригінальному запитанні: "Має бути сумісним з XP, Vista та Win7".
Чарльз Ропер

4

Я використовую MS "Відправити на X" PowerToy, доступний як частина набору 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 (спробую вдома ...). Можливості налаштування здаються потужними (включаючи засоби пошуку / заміни!).
PhiLho

2

Я шукав рішення гарячої клавіші . Для мене це твори:

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

Деякі з нас не мають права завантажувати / встановлювати / компілювати C ++ на роботі, тому ось рішення, яке не завантажує, не встановлює код, без коду. Я тестував це лише на Windows XP SP3:

  • Відкрийте командний рядок.
  • Забрудуйте каталог, де знаходяться файли, які ви хочете перелічити.
  • Клацніть правою кнопкою миші де-небудь у вікні командного рядка та оберіть "вибрати все".
  • Натисніть клавішу [enter] (це ефективно скопіює вихід командного рядка у буфер обміну).
  • Вставте вміст буфера обміну там, де ви хочете (я рекомендую Excel, щоб ви могли "надіслати текст до стовпців" і зробити його належним таблиці).

1

StExBar надає певну гнучкість та налаштованість при копіюванні імен файлів, шляхів тощо, а також різноманітних додаткових функцій.

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


1

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

  1. Клацніть потрібний файл правою кнопкою миші у списку Провідника Windows

  2. У спадному меню натисніть "Властивості"

  3. Виділіть ім’я файлу у полі вгорі вкладки "Загальні"

  4. CTRL-C для копіювання імені файлу та закрийте вікно "Властивості"

  5. CTRL-V, щоб вставити ім'я файлу там, де ви хочете.


1

FreeCommander надає наступні 3 варіанти після виділення файлів:

  1. Скопіюйте повне ім'я як текст
  2. Скопіюйте назву як текст
  3. Скопіюйте повний шлях у вигляді тексту

1

Ось моє рішення з відкритим кодом, а також безкоштовне, якщо ви вважаєте, що Windows безкоштовний :)

Створіть пакетний файл, скажімо, listfiles.bat. Помістіть у файл будь-яке з наведеного нижче:

ФІЛЕНАМИ

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

Ось простий скрипт 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" (без лапок) у вікні командного рядка. Натисніть "Enter".

Крок 3 Двічі клацніть файл "filenames.txt" з раніше вибраної папки, щоб побачити список імен файлів у цій папці.

Крок 4 Натисніть "Ctrl-A", а потім "Ctrl-C", щоб скопіювати список імен файлів у буфер обміну.

Порада Коли ви готові вставити назви файлів, клацніть місце вставки у відповідній програмі та натисніть «Ctrl-V».


0

Мені подобається ClipboardPath від Стефана Бертелса. Більшість інших інструментів приховують це у підменю "Send To", яке я рідко використовую; ClipboardPath розміщує його у верхній частині контекстного меню, і якщо ви хочете повний мережевий шлях (дуже корисно), просто натисніть клавішу Control, перш ніж вибрати шлях Копіювати.


0

Я написав трохи безкоштовного / open source .NET додатка під назвою fnamecopy, щоб зробити це саме. Це дуже просто і не має інтеграції правою кнопкою миші, ви просто перетягніть файл / папки / папки, до яких потрібно шлях, до невеликого вікна, а потім виберіть, для яких саме ви хочете шлях. Це дуже голі кістки, але це працює за мене.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.