Muitas vezes preciso copiar rapidamente o nome de uma pasta no Windows 7 e, por isso, estou tentando criar um equivalente ao Copy as path
item que aparece nos menus de contexto estendidos (ou seja, ao fazer Shift+ Right Click) que copiará apenas o nome da pasta selecionada para o prancheta.
Eu criei a chave do Registro em:
HKEY_CLASSES_ROOT\Directory\shell\Copy folder name\command
... onde estão todas as minhas adições semelhantes ao menu de contexto para pastas, e pode ser visto aqui:
No entanto, até agora não consegui fazer com que o código que precisa ser executado pela chave funcionasse como deveria. eu me depareiesta solução para pegar a pasta atual de um diretório, eeste para canalizar o nome do diretório para a área de transferênciae junte-os para obter o seguinte:
for %* in (.) do set FolderName=%~nx* && echo %FolderName%| clip
Este código funciona exatamente como esperado na linha de comando.
Anexar cmd /c
a ele, que é necessário para executar uma instância CMD do Registro, fornece o seguinte:
cmd /c for %* in (.) do set FolderName=%~nx* && echo %FolderName%| clip
No entanto, colocar isso nos dados do valor da Default
string na \Copy folder name\command
chave e, em seguida, clicar com o botão direito em uma pasta e clicar emCopiar nome da pastanão funciona.
Colocar entre aspas também não faz nada:
cmd /c "for %* in (.) do set FolderName=%~nx* && echo %FolderName%| clip"
O que estou perdendo aqui?