CTRL + C em um arquivo / pasta, como obter o nome do arquivo em um lote? (leia os nomes de arquivos da área de transferência do lote)

1

Quando você faz Copy ( CTRL + C ) em um arquivo ou pasta, então em alguns programas , mas não todos ( exemplo: funciona na barra de endereços do Windows Explorer, também com o software Everything indexing), ao fazer o Paste ( CTRL + V ), o nome do arquivo ou diretório é colado como texto, assim: "D:\Test\Temp" .

Pergunta: Se você fizer CTRL + C em um arquivo ou pasta no Windows Explorer, como obter seu nome de arquivo em um arquivo de lote test.bat que você corre logo depois?

Eu tentei com o clip.exe, conforme sugerido em Acessar a área de transferência no arquivo de lote do Windows , mas não funcionou: o clip.exe parece fazer o oposto (escrever na área de transferência).

Nota: ao contrário de Como copiar o caminho do arquivo para a área de transferência? (suas respostas requerem software de terceiros, ou solução de atalho diferente, ou use AutoHotkey), aqui estou explicitamente procurando uma solução que funcione em lote, com o padrão CTRL + C (e não outra tecla de atalho, não usando AutoHotkey, etc. ) e nenhum software de terceiros.

    
por Basj 03.09.2018 / 23:36

4 respostas

1

Você pode obter o nome completo do caminho arrastando esse arquivo do explorador para a janela de comando, isso irá inserir o caminho completo.

Um programa pode colocar o conteúdo em diferentes tipos na área de transferência. Por exemplo, o Word pode colocar texto como texto simples e como texto formatado. Alguns programas são inteligentes e extraem o nome do arquivo quando você colocou um arquivo (referência a) na área de transferência. Infelizmente, o comando windows does not.

    
por 04.09.2018 / 00:53
0

Selecione um arquivo ou pasta, pressione F2 e use Ctrl-C . Isso deve permitir que você apenas copie o nome (realmente o 'basename') do arquivo ou pasta.

    
por 03.09.2018 / 23:58
0

Você pode Shift+Right click no arquivo no Explorer e selecionar "Copiar como caminho":

Ou se você selecionar o nome do arquivo e usar Ctrl+Shift+C .

Isto irá dizer ao Explorer para copiar as informações para a área de transferência no formato CF_TEXT, em vez do formato CF_HDROP usual. Alguns programas não sabem o que fazer com o formato CF_HDROP, mas todos devem entender o formato CF_TEXT.

    
por 04.09.2018 / 00:58
0

Use powershell que está presente em todas as versões suportadas do Windows, em vez do legado cmd shell.
(Prometido pela Microsoft para ser removido em um futuro).

Execute powershell e use a função:

Get-Clipboard

ele retornará o conteúdo da área de transferência, enquanto Set-Clipboard fará o oposto - coloque algo na área de transferência.

Se você não quiser mudar para PowerShell , pode chamá-lo on demand do seu script em lote como:

 powershell -Command "& {Get-Clipboard}"

para obter o conteúdo da área de transferência no seu script.

    
por 04.09.2018 / 05:34