Мне часто нужно быстро скопировать имя папки в Windows 7, поэтому я пытаюсь создать эквивалент элемента, Copy as path
который появляется в расширенных контекстных меню (т. е. при нажатии Shift+ Right Click), который будет копировать в буфер обмена только имя выбранной папки.
Я создал раздел реестра по адресу:
HKEY_CLASSES_ROOT\Directory\shell\Copy folder name\command
...где находятся все мои аналогичные дополнения к контекстному меню для папок, и это можно увидеть здесь:
Однако мне пока не удалось заставить код, который должен быть выполнен клавишей, работать как надо. Я наткнулся наэто решение для захвата текущей папки каталога, иэтот для передачи имени каталога в буфер обменаи соединим их вместе, чтобы получить следующее:
for %* in (.) do set FolderName=%~nx* && echo %FolderName%| clip
Этот код работает в командной строке именно так, как и ожидалось.
Добавление cmd /c
к нему префикса, необходимого для запуска экземпляра CMD из реестра, дает следующее:
cmd /c for %* in (.) do set FolderName=%~nx* && echo %FolderName%| clip
Однако, поместив это в данные значения Default
строки в \Copy folder name\command
ключе, а затем щелкнув правой кнопкой мыши папку и выбравКопировать имя папкине работает.
Заключение в кавычки также ничего не даст:
cmd /c "for %* in (.) do set FolderName=%~nx* && echo %FolderName%| clip"
Что я здесь упускаю?