¿Cómo copiar la ruta del archivo al portapapeles?


40

¿Hay alguna forma de copiar el nombre de archivo seleccionado actualmente, incluida la ruta, en el portapapeles? Idealmente, esto sería a través del menú del botón derecho.

Sería útil cierto grado de flexibilidad, como la capacidad de copiar solo el nombre de archivo, ruta + nombre de archivo, nombre de archivo menos extensión, etc. Sin embargo, esto no es esencial, siempre que pueda copiar la ruta + nombre de archivo.

La solución debe ser compatible con Windows XP, Windows Vista y Windows 7.


66
Vista y superior tienen una forma integrada de hacer esto: mantener presionada la tecla shift, abrir el menú contextual en los archivos seleccionados. Habrá un elemento llamado " Copiar como ruta "
LogicDaemon

Charles, ¿considerarías cambiar la respuesta aceptada ahora que está integrada en Windows? Esto ayudará a otros a encontrar la mejor respuesta más fácilmente.
Simon East

No voté para abrir esta pregunta nuevamente porque la respuesta aceptada no se cambiará, ya que solo está integrada en Windows Vista y superior. Veo muchas oportunidades para abusar de esta pregunta. Por lo menos, si se volviera a abrir, debería protegerse para evitar respuestas de "yo también".
Ramhound

1
@SimonEast La pregunta indica que debe ser compatible con XP, por lo que la respuesta aceptada sigue siendo la más adecuada. La segunda respuesta tiene más votos y se encuentra directamente debajo de la respuesta aceptada, lo que parece un compromiso razonable. Así es como el sistema StackExchange Q / A está diseñado para funcionar.
Charles Roper

Respuestas:


5

Use CopyFilenames

o

Copiar nombres de archivo a la utilidad del portapapeles

Windows XP no tiene forma de copiar una lista de nombres de archivo en el portapapeles (esto ha cambiado en versiones posteriores de Windows, comenzando con Vista). Un artículo de Microsoft Knowledge Base sugiere escribir un pequeño archivo * .bat que ejecuta el comando DIR, recopila su salida en un archivo, imprime ese archivo y luego lo elimina. Esto puede ser conveniente algunas veces, pero sería más útil poder seleccionar una lista de archivos y poner sus nombres en el portapapeles. Luego puede pegarlos donde los necesite.

Así que aquí hay una utilidad para hacer eso. Tienes que hacer un poco de trabajo tú mismo, pero no mucho, para instalarlo. Aquí están las instrucciones:

  1. Descargue el ejecutable . Son solo 20 KB, por lo que debería tomar solo unos segundos, incluso si está utilizando el acceso telefónico. Guárdelo donde quiera que resida en su sistema.
  2. Crear un acceso directo en "Ir a"

    1. Vaya a la carpeta "Enviar a" debajo de su nombre en \ Windows \ Profiles en el Explorador de Windows (o tal vez XP Home coloca ese directorio en la carpeta Configuración, no lo recuerdo).
    2. Haga clic derecho en el panel derecho, donde están los nombres de los archivos. Seleccione "Nuevo | Acceso directo".
    3. Aparecerá el asistente "Crear acceso directo". En la primera página, escriba la ruta al ejecutable o use el botón "Examinar ..." para encontrarlo. Haga clic en Siguiente".
    4. En la segunda página, escriba un nombre para su nueva opción de menú. Usé "Nombres de archivo en el portapapeles", pero elijo lo que sea significativo para usted. Haga clic en "Finalizar"

Eso es; Lo tienes instalado. Ahora seleccione uno o más archivos, haga clic derecho y mueva el puntero del mouse a "Enviar a". Aparecerá un submenú que incluirá su nuevo comando. Elija ese comando, y una lista de los archivos que ha seleccionado, ordenados en orden ascendente, estará en el portapapeles.

Fuente: http://members.cox.net/slatteryt/FNtoClip.html


2
Grave inconveniente de ese programa: no puede manejar nombres de archivo Unicode. El uso de un pequeño archivo por lotes que solo canaliza argumentos de línea de comandos clip.exe(incluido en versiones recientes de Windows, previamente disponibles en el kit de recursos) probablemente debería funcionar mejor aquí (siempre que use fuentes TrueType para la consola).
Joey

75

Comenzando con Vista, puede simplemente Shift + clic derecho en el archivo en el Explorador y seleccionar "Copiar como ruta":

        Entrada del menú contextual "Copiar como ruta" en Windows 7

Esto incluso funciona para varios archivos, que se colocan en el portapapeles uno por línea.

En Windows 8 esto se expone en la cinta del Explorador:

        Botón "Copiar ruta" en la cinta del Explorador de Windows 8 en la pestaña Inicio


66
Impresionante, esta debería ser la respuesta aceptada. No se requiere software!
HaggleLad

55
Excelente, me hace preguntarme cómo podría estar usando Windows tanto tiempo y no saber esto. Bonificación por trabajar en múltiples archivos.
Bratch

2
@HaggleLad la razón por la cual esta no es la respuesta aceptada es por esta línea en la pregunta original: "Debe ser compatible con XP, Vista y Win7".
Charles Roper

4

Utilizo el PowerToy 'Enviar a X' de MS disponible como parte del conjunto de Windows 95 PowerToys ( enlace de descarga de MS ).
Esto agrega 'Portapapeles como nombre' (así como 'Portapapeles como contenido' y algunas otras opciones) al menú contextual 'Enviar a'.
La forma más fácil de instalar es extraer el W95powertoy.exe descargado con una utilidad Zip, haga clic derecho en 'SENDTOX.INF' y seleccione 'Instalar'. Puede eliminar cualquier elemento no deseado del menú 'Enviar a' abriéndolo en el Explorador.

Funciona bien en Windows XP, no en Windows 7, pero como señaló Johannes, puede usar 'Shift + clic derecho' en su lugar.


3

Yo uso Ninotech Path Copy. Su sitio web está muerto, pero se puede encontrar aquí .

Hay 14 posibilidades diferentes para copiar nombres de archivos, 5 de los cuales puede personalizar completamente.


+1 para PathCopy; esta herramienta es particularmente útil si, por ejemplo, necesita convertir la ruta a barras diagonales, o si solo necesita la ruta sin el nombre del archivo.
yalestar

Excelente, justo lo que estaba buscando, proporcionan una DLL de 64 bits, así que supongo que funciona en Win7 (lo intentará en casa ...). Las capacidades de personalización parecen poderosas (¡incluida una función de búsqueda / reemplazo!).
PhiLho

2

He buscado una solución de teclas rápidas . Para mí estos son trabajos:

Windows 7 :

  1. Ctrl-C el archivo
  2. Ahora puede pegar (Ctrl-V) directamente el contenido del portapapeles en el cuadro de diálogo Abrir de Windows en el campo Ruta, si solo desea abrir el archivo por la ruta completa O puede pegar (Ctrl-V) el contenido del portapapeles en la barra de direcciones y luego Ctrl-A, después de Ctrl-C, y en el portapapeles se despejará la ruta completa

Windows 7, Windows Vista, Windows XP :

Script AutoHotkey, un poco modificado desde aquí para 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

Esta es una de las utilidades ganadoras más épicas.
Chris Marisic

1
El editor anónimo dice que: > cuando descarga la versión 2.6, Antivirus afirma que este archivo contiene un troyano / virus , la Versión 2.5 parece estar bien.
slhck


1

Algunos de nosotros no tenemos la libertad de descargar / instalar / compilar C ++ en el trabajo, así que aquí hay una solución sin descarga, sin instalación, sin código. Solo probé esto con Windows XP SP3:

  • Abra el símbolo del sistema.
  • Dir el directorio donde se encuentran los archivos que desea enumerar.
  • Haga clic derecho en cualquier lugar de la ventana del símbolo del sistema y elija "seleccionar todo".
  • Presione la tecla [Intro] (esto copiará efectivamente la salida del símbolo del sistema en su portapapeles).
  • Pegue el contenido de su portapapeles donde desee (recomiendo Excel para que pueda "enviar mensajes de texto a columnas" y convertirlo en una tabla adecuada).

1

StExBar le brinda cierta flexibilidad y personalización para copiar nombres de archivos, rutas, etc., además de varias características adicionales.

ingrese la descripción de la imagen aquí


1

Para cualquiera que todavía use Windows XP (como yo, obligado a trabajar), el siguiente procedimiento funciona para copiar un solo nombre de archivo sin ningún software adicional:

  1. Haga clic derecho en el archivo deseado en la lista del Explorador de Windows

  2. Haga clic en "Propiedades" en el menú desplegable

  3. Resalte el nombre del archivo en el cuadro en la parte superior de la pestaña "General"

  4. CTRL-C para copiar el nombre del archivo y luego cerrar la ventana "Propiedades"

  5. CTRL-V para pegar el nombre del archivo donde lo desee.


1

FreeCommander proporciona las siguientes 3 opciones después de resaltar archivos:

  1. Copie el nombre completo como texto
  2. Copiar nombre como texto
  3. Copiar ruta completa como texto

1

Aquí está mi solución de código abierto y también gratuita, si considera que Windows es gratuito :)

Crear un archivo por lotes, por ejemplo, listfiles.bat. Coloque cualquiera de los siguientes en el archivo:

NOMBRES DE ARCHIVO

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%

RUTA Y NOMBRES DE ARCHIVO

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%

Ahora cree un acceso directo a ese archivo en el C:\Documents and Settings\<username>\SendTodirectorio. Vaya al directorio del que desea obtener una lista de archivos. Haga clic derecho en cualquier archivo y elija Send To -> Shortcut to listfiles.bat. La lista de archivos se escribirá en myfilelist.txto myfileandpathlist.txtsegún su elección. Obviamente, no hay nada que le impida tener accesos directos a ambos archivos por lotes en el SendTodirectorio.

Para obtener una lista completa de los dirinterruptores, escriba dir /?en la línea de comando o visite este sitio web .


1

Aquí hay un script simple de AutoHotkey, que copia todos los argumentos de la línea de comandos al portapapeles (separados por líneas nuevas). Al igual que con otras soluciones, funciona a través del menú Enviar a , así que coloque un acceso directo para que "%USERPROFILE%\SendTo"lo haga (o lo hará por usted si se inicia sin argumentos).

Para ejecutarlo, pégalo en el bloc de notas y guárdalo en "%USERPROFILE%\SendTo\CopyToClipboard.ahk". También necesitará AutoHotkey 1.1 ( dl directo ) instalado, es 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

Funcionó correctamente en Windows 7.

Copie la lista completa de archivos

Paso 1 Mantén presionada la tecla "Shift", haz clic derecho en la carpeta que contiene una lista de archivos y selecciona "Abrir ventana de comandos aquí".

Paso 2 Escriba "dir / b> filenames.txt" (sin las comillas) en la ventana del símbolo del sistema. Presiona "Enter".

Paso 3 Haz doble clic en el archivo "filenames.txt" de la carpeta previamente seleccionada para ver una lista de nombres de archivos en esa carpeta.

Paso 4 Presione "Ctrl-A" y luego "Ctrl-C" para copiar la lista de nombres de archivo en su portapapeles.

Consejo Cuando esté listo para pegar los nombres de los archivos, haga clic en su ubicación de pegado en el programa apropiado y presione "Ctrl-V".


0

Me gusta ClipboardPath de Stefan Bertels. La mayoría de las otras herramientas ocultan esto en el submenú Enviar a, que rara vez uso; ClipboardPath lo coloca cerca de la parte superior del menú contextual, y si desea la ruta de red completa (muy útil), simplemente mantenga presionado Control antes de seleccionar Copiar ruta.


0

Escribí una pequeña aplicación .NET gratuita / de código abierto llamada fnamecopy para hacer esto mismo. Es muy simple y no tiene integración de clic derecho, simplemente arrastre los archivos / carpetas para los que desea la ruta a una pequeña ventana y luego elija para cuáles desea la ruta. Es muy básico, pero hace el trabajo por mí.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.