Muitas vezes preciso copiar rapidamente o nome de uma pasta no Windows 7, e estou tentando criar um equivalente ao item Copy as path
que aparece nos menus de contexto estendidos (ou seja, ao fazer Shift + Clique com o botão direito do mouse ) que copiará apenas o nome da pasta selecionada para a área de transferência.
Eu criei a chave do registro em:
HKEY_CLASSES_ROOT\Directory\shell\Copy folder name\command
... onde todas as minhas adições de menu de contexto semelhantes para pastas são, e pode ser visto aqui:
Noentanto,atéagoranãoconseguiobterocódigoqueprecisaserexecutadopelachavefuncionandocomodeveria.Euencontrei
for %* in (.) do set FolderName=%~nx* && echo %FolderName%| clip
Este código funciona exatamente como esperado na linha de comando.
A introdução do cmd /c
, que é necessário para executar uma instância do CMD no Registro, fornece o seguinte:
cmd /c for %* in (.) do set FolderName=%~nx* && echo %FolderName%| clip
Noentanto,colocarissonosdadosdevalordovalordastringDefault
nachave\Copyfoldername\command
eclicarcomobotãodireitodomouseemumapastaeclicaremCopiarnomedapastafalhará.
Envolvê-loentreaspastambémnãofaznada:
cmd/c"for %* in (.) do set FolderName=%~nx* && echo %FolderName%| clip"
O que estou perdendo aqui?