Я поставил ответ в конце моего вопроса. так как моя учетная запись была ограничена, я не мог поставить ответ на свой вопрос !. (Я получил эту ошибку «Мы больше не принимаем ответы из этого аккаунта».)
Вопрос
Я следовал инструкциям этого руководства, чтобы добавить каскадные меню для щелчка правой кнопкой мыши на фоне папок и рабочего стола. (в Windows 10)
Раздел 1: Добавление каскадных меню для открытия программы.
Итак, я написал этот рег файл.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\New2]
"MUIVerb"="Apps"
"SubCommands"="createblankfile"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\createblankfile]
@="createblankfile"
"icon"="notepad.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\createblankfile\command]
@="C:\\Windows\\System32\\notepad.exe"
После установки вышеуказанного кода рег, элемент был добавлен в контекстное меню (см. Рисунок). и если я нажимаю на это, он открывает программу notepad.exe.
Раздел 2: изменить команду, чтобы сделать больше
Я пытаюсь изменить команду на что-то другое (как здесь). но после использования той же команды, она не работает.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\New2]
"MUIVerb"="Apps"
"SubCommands"="createblankfile"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\createblankfile]
@="createblankfile"
"icon"="notepad.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\createblankfile\command]
@="\"CMD\" /D /E:ON /c for /F \"tokens=1-9 delims=.,\\:/\" %%A IN (\"%%date%%.%%time%%\") DO for /F \"tokens=*\" %%a IN (\"%1\") do md \"%%~dpa\\%%A.%%B.%%C %%D;%%E;%%F\""
"nullfile"=hex:
Раздел 3: Мне нужно добавить некоторые элементы в контекстное меню, которые создают пустые файлы в текущем каталоге.
как я могу использовать эту команду ванны в строковом значении клавиши команды добавленной клавиши контекстного меню?(см. этот рисунок)
copy nul ".\new file.m"
решение
Я нашел решение сам:
Раздел 1: чтобы использовать командный файл в строковом значении, мы должны использовать «cmd /c» перед командой.
Пример:
Пакетная команда для создания и пустого файла с именем «new m file.m» в произвольном каталоге, таком как «D:\test\», имеет вид:
copy nul "d:\test\new m file.m"
чтобы использовать эту команду как строковое значение, мы должны изменить это на это:
cmd.exe /C copy nul "d:\test\new m file.m"
чтобы записать это в строковое значение реестра из reg-файла, мы должны использовать дополнительную обратную косую черту перед некоторыми специальными символами (например, \ или "символами"). Итак, мы должны изменить это на:
"MyStringValue"="cmd.exe /C copy nul \"d:\\tesst\\new m file.m\""
или же
"MyStringValue"="cmd.exe /C copy \"nul\" \"d:\\tesst\\new m file.m\""
раздел 2: чтобы создать пустое имя файла в текущем каталоге, я использую это.
cmd.exe /C copy nul "%new m file.m"
Раздел 3: Итак, полный код для добавления каскадного меню для создания пустого файла (здесь это пустой .txt файл), будет
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\New2]
"MUIVerb"="Apps"
"SubCommands"="createblankfile"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\createblankfile]
@="createblankfile"
"icon"="notepad.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\createblankfile\command]
@="cmd.exe /C copy \"nul\" \"%new text_file.txt\""