Como copiar o caminho do arquivo para a área de transferência?


40

Existe uma maneira de copiar o nome de arquivo atualmente selecionado, incluindo o caminho, para a área de transferência? Idealmente, isso seria através do menu do botão direito.

Algum grau de flexibilidade seria útil, como a capacidade de copiar apenas o nome do arquivo, caminho + nome do arquivo, nome do arquivo menos extensão, etc. Isso não é essencial, desde que ele possa copiar o caminho + nome do arquivo.

A solução deve ser compatível com o Windows XP, Windows Vista e Windows 7.


6
Vista e superior têm integrado maneira de fazer isso: segure shift, abra o menu de contexto em arquivos selecionados. Haverá um item chamado " Copiar como caminho "
LogicDaemon

Charles você consideraria mudar a resposta aceita agora que isso é construído no Windows? Isso ajudará os outros a encontrar a melhor resposta com mais facilidade.
Simon East

Eu não votei para abrir esta questão novamente, porque a resposta aceita não será alterada, uma vez que é construída apenas no Windows Vista e acima. Eu vejo muito a oportunidade para esta questão ser abusada. No mínimo, se fosse reaberto, deveria ser protegido, para evitar respostas "eu também".
Ramhound

1
@SimonEast A questão afirma que ele precisa ser compatível com o XP, então a resposta aceita ainda é a mais apropriada. A segunda resposta tem mais votos e fica diretamente abaixo da resposta aceita, o que parece um compromisso razoável. É assim que o sistema Stack / Exchange Q / A é projetado para funcionar.
Charles Roper

Respostas:


5

Usar CopyFilenames

ou

Copiar nomes de arquivos para o utilitário da área de transferência

O Windows XP não tem como copiar uma lista de nomes de arquivos para a área de transferência (isso mudou em versões posteriores do Windows, começando com o Vista). Um artigo da Base de Conhecimento da Microsoft sugere a gravação de um pequeno arquivo * .bat que executa o comando DIR, coleta sua saída em um arquivo, imprime esse arquivo e o exclui. Isso pode ser conveniente algumas vezes, mas seria mais útil poder selecionar uma lista de arquivos e colocar os nomes deles na área de transferência. Então você poderia colá-los onde quer que fosse necessário.

Então aqui está um utilitário para fazer isso. Você tem que fazer um pouco de trabalho sozinho - mas não muito - para instalá-lo. Aqui estão as instruções:

  1. Faça o download do executável . São apenas 20 KB, portanto, deve levar apenas alguns segundos, mesmo se você estiver usando acesso discado. Salve-o onde você quiser que ele fique em seu sistema.
  2. Criar um atalho em "Ir para"

    1. Vá para a pasta "Enviar para" em seu nome em \ Windows \ Profiles no Windows Explorer (ou talvez o XP Home coloque esse diretório na pasta Configurações, não me lembro).
    2. Clique com o botão direito do mouse no painel direito, onde estão os nomes dos arquivos. Selecione "Novo | Atalho".
    3. O assistente "Criar atalho" será exibido. Na primeira página, digite o caminho para o executável ou use o botão "Procurar ..." para encontrá-lo. Clique em "" próximo ".
    4. Na segunda página, digite um nome para sua nova opção de menu. Eu usei "File Names to Clipboard", mas escolha o que for mais significativo para você. Clique em "Finish"

É isso aí; você tem instalado. Agora selecione um ou mais arquivos, clique com o botão direito e mova o ponteiro do mouse para "Enviar para". Um submenu aparecerá, o qual incluirá seu novo comando. Escolha esse comando e uma lista dos arquivos selecionados, classificados em ordem crescente, estará na área de transferência.

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


2
Grande desvantagem desse programa: Ele não pode manipular nomes de arquivos Unicode. Usando um pequeno arquivo em lotes que apenas canaliza argumentos de linha de comando para clip.exe (incluído em versões recentes do Windows, anteriormente disponíveis no kit de recursos) deve funcionar melhor aqui (desde que você use fontes TrueType para o console).
Joey

74

Começando com o Vista, você pode simplesmente Shift + clique com o botão direito do mouse no arquivo no Explorer e selecione "Copiar como caminho":

"Copy as path" context menu entry in Windows 7

Isso funciona mesmo para vários arquivos, que são colocados na área de transferência um por linha.

No Windows 8, isso é exposto na faixa do Explorer:

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


6
Incrível, isso deve ser totalmente a resposta aceita. Nenhum software requerido!
HaggleLad

5
Excelente, me faz pensar como eu poderia estar usando o Windows por tanto tempo e não sei este. Bônus por trabalhar em vários arquivos.
Bratch

2
@HaggleLad a razão pela qual esta não é a resposta aceita é por causa desta linha na pergunta original: "Deve ser compatível com XP, Vista e Win7".
Charles Roper

4

Eu uso o MS 'Enviar para X' PowerToy disponível como parte do conjunto Windows 95 PowerToys ( Link de download do MS ).
Isto adiciona 'Clipboard as Name' (assim como 'Clipboard as Contents' e algumas outras opções) ao clicar com o botão direito do mouse no menu 'Send To'.
A maneira mais fácil de instalar é extrair o arquivo W95powertoy.exe baixado com um utilitário Zip, clique com o botão direito do mouse em "SENDTOX.INF" e selecione "Instalar". Você pode remover qualquer item indesejado do menu "Enviar para" abrindo-o no Explorer.

Funciona bem no Windows XP - não no Windows 7, mas como observado por Johannes, você pode usar 'Shift + right-click' no lugar.


3

Eu uso o Ninotech Path Copy. Seus local na rede Internet está morto, mas pode ser encontrado Aqui .

Existem 14 possibilidades diferentes para copiar nomes de arquivos, 5 dos quais você pode personalizar totalmente.


+1 para PathCopy; essa ferramenta é particularmente útil se, por exemplo, você precisar converter o caminho para barras ou se precisar apenas do caminho sem o nome do arquivo.
yalestar

Excelente, apenas o que eu estava procurando, eles fornecem uma DLL de 64 bits, então eu suponho que ele funciona no Win7 (vai tentar em casa ...). Os recursos de personalização parecem poderosos (incluindo um recurso de pesquisa / substituição!).
PhiLho

2

Eu procurei por um atalho solução. Para mim são trabalhos:

Windows 7 :

  1. Ctrl-C o arquivo
  2. Agora você pode colar (Ctrl-V) diretamente o conteúdo da área de transferência na caixa de diálogo Abrir do Windows para o campo Caminho, se quiser apenas abrir o arquivo pelo caminho completo OU Você pode colar (Ctrl-V) o conteúdo da área de transferência para a barra de endereços e depois disso Ctrl-A, depois de Ctrl-C, e na área de transferência será claro caminho completo

Windows 7, Windows Vista, Windows XP :

Script AutoHotkey, um pouco modificado de Aqui 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

Alguns de nós não têm a liberdade de baixar / instalar / compilar o C ++ no trabalho, então aqui está uma solução livre de código, livre de instalação e sem download. Eu só testei isso com o Windows XP SP3:

  • Abra o prompt de comando.
  • Dir o diretório onde os arquivos que você deseja listar estão situados.
  • Clique com o botão direito do mouse em qualquer lugar na janela do prompt de comando e escolha "selecionar todos".
  • Pressione a tecla [enter] (isso efetivamente copiará a saída do prompt de comando para a área de transferência).
  • Cole o conteúdo da área de transferência onde você quiser (eu recomendo o Excel para que você possa "texto para colunas" e torná-lo uma tabela adequada).

1

StExBar dá a você alguma flexibilidade e personalização na cópia de nomes de arquivos, caminhos, etc., além de vários recursos adicionais.

enter image description here


1

Para quem ainda usa o Windows XP (como eu, forçado a trabalhar), o procedimento a seguir funciona para copiar um único nome de arquivo sem nenhum software adicional:

  1. Clique com o botão direito no arquivo desejado na lista do Windows Explorer

  2. Clique em "Propriedades" no menu suspenso

  3. Destaque nome do arquivo na caixa na parte superior da guia "Geral"

  4. CTRL-C para copiar o nome do arquivo e fechar a janela "Propriedades"

  5. CTRL-V para colar o nome do arquivo onde você deseja.


1

O FreeCommander oferece as seguintes 3 opções depois de destacar os arquivos:

  1. Copie o nome completo como texto
  2. Copiar nome como texto
  3. Copie o caminho completo como texto

1

Aqui está a minha solução de código aberto e também gratuita, se você considerar o Windows livre :)

Crie um arquivo de lote, digamos listfiles.bat. Coloque um dos seguintes no arquivo:

FILENAMENTOS

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%

CAMINHO E FILENAMAS

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%

Agora crie um atalho para esse arquivo em C:\Documents and Settings\<username>\SendTo diretório. Vá para o diretório do qual você deseja obter uma lista de arquivos. Clique com o botão direito em qualquer arquivo e escolha Send To -> Shortcut to listfiles.bat. A lista de arquivos será gravada em myfilelist.txt ou myfileandpathlist.txt dependendo da sua escolha. Obviamente, não há nada que o impeça de ter atalhos para os dois arquivos em lote no SendTo diretório.

Para a lista completa de dir tipo de interruptores dir /? na linha de comando ou visita esse site .


1

Aqui está o script AutoHotkey simples, que copia todos os argumentos da linha de comando para a área de transferência (separados por novas linhas). Tal como acontece com outras soluções, funciona através de Enviar para menu, então coloque atalho para ele "%USERPROFILE%\SendTo" (ou ele fará isso por você se for lançado sem argumentos).

Para executá-lo, cole no bloco de notas e salve em "%USERPROFILE%\SendTo\CopyToClipboard.ahk". Você também vai precisar AutoHotkey 1.1 ( dl direto ) instalado, é 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

Trabalhou corretamente no Windows 7.

Copiar a lista inteira de arquivos

Passo 1 Segure a tecla "Shift", clique com o botão direito do mouse na pasta que contém uma lista de arquivos e selecione "Abrir janela de comando aqui".

Passo 2 Digite "dir / b & gt; filenames.txt" (sem as aspas) na janela do prompt de comando. Pressione Enter."

etapa 3 Clique duas vezes no arquivo "filenames.txt" da pasta selecionada anteriormente para ver uma lista de nomes de arquivos nessa pasta.

Passo 4 Pressione “Ctrl-A” e depois “Ctrl-C” para copiar a lista de nomes de arquivos para sua área de transferência.

Gorjeta Quando você estiver pronto para colar os nomes dos arquivos, clique no local da pasta no programa apropriado e pressione "Ctrl-V".


0

Eu gosto ClipboardPath Stefan Bertels. A maioria das outras ferramentas oculta isso no submenu Enviar para, que raramente uso; O ClipboardPath o posiciona próximo ao topo do menu de contexto e, se você quiser o caminho de rede completo (muito útil), basta pressionar Control antes de selecionar Copiar caminho.


0

Eu escrevi um pouco livre / opensource .NET App chamado famaecopy fazer isso mesmo. É muito simples e não tem integração com o botão direito do mouse, basta arrastar o (s) arquivo (s) / pastas para o qual deseja o caminho para uma pequena janela e, em seguida, escolher o caminho para o qual deseja o caminho. É muito simples, mas faz o trabalho para mim.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.