1

Как я могу добавить элемент в «новое» контекстное меню?

Здесь показано, как добавлять элементы в выпадающее меню "Новый". Как насчет того, чтобы забрать их?

Кроме того, я хочу сделать командный файл, который автоматизирует это. Как это:

@echo off
echo Enter you file extension
set /p ext=
copy con ext.reg
echo Windows Registry Editor Version 5.00 >> ext.reg
echo. >> ext.reg
echo [HKEY_CLASSES_ROOT\.%ext%\ShellNew] >> ext.reg
echo "NullFile"="" >> ext.reg
start /wait ext.reg
del ext.reg
echo Complete
exit
  1. Что-то не так с этим вообще?
  2. Можете ли вы записывать в другие типы нетекстовых файлов, таких как файлы реестра, с пакетными файлами?
  3. Пожалуйста, скажите мне код реестра для удаления элемента, чтобы я мог добавить это.
  4. Самое главное, может ли файл реестра взаимодействовать с пользователем, например, принимать входные данные и создавать переменную, чтобы мне вообще не нужен командный файл?

4 ответа4

2
  1. Я не могу судить об этом, извините.
  2. Я не знаю хорошего способа записи бинарных (нетекстовых) файлов из пакетного скрипта.
  3. Вы можете удалить раздел реестра, используя также файл .reg . Просто поместив дефис перед ключом .

    Чтобы удалить раздел реестра с файлом .reg, поставьте дефис (-) перед полем RegistryPath в файле .reg. Например, чтобы удалить подраздел «Тест» из следующего раздела реестра:HKEY_LOCAL_MACHINE\Software
    поместите дефис перед следующим ключом реестра в файле .reg:HKEY_LOCAL_MACHINE\Software\Test
    В следующем примере есть файл .reg, который может выполнить эту задачу.
    [
    -HKEY_LOCAL_MACHINE\Software\Test
    ]

  4. Файл реестра используется только для манипулирования кустом реестра. Насколько мне известно, в процессе не поддерживается взаимодействие с пользователем (кроме запроса на подтверждение).

1
  1. Абсолютно нет, просто обязательно сделайте резервную копию реестра, прежде чем свихнуться.
  2. Не очень легко Вам было бы гораздо лучше просто написать файл .reg, который может обрабатывать практически все, что вам нужно.
  3. В файле .reg просто добавьте '-' (минус) после открывающей скобки элемента, который нужно удалить. Смотрите пример ниже.
  4. Нету. Возможно, напишите сценарий (или пакетный файл), чтобы автоматизировать создание файла .reg, который затем может быть вызван.

Вот содержимое файла реестра, который я использую для устранения многих общих новых элементов шаблона в Windows 7. Не стесняйтесь использовать его в качестве основы для своих собственных. ПОМНИТЕ, ЧТОБЫ ЗАПИСАТЬ РЕГИСТРАЦИЮ ПЕРВОЙ.

    Windows Registry Editor Version 5.00
;Remove everything from the "New" menu other than folder and .txt

; MFC Trace file
[-HKEY_CLASSES_ROOT\.trc\ShellNew]

;Briefcase
[-HKEY_CLASSES_ROOT\Briefcase\ShellNew\Config]
[-HKEY_CLASSES_ROOT\Briefcase\ShellNew]

; Bitmap
[-HKEY_CLASSES_ROOT\.bmp\ShellNew]

; Contact
[-HKEY_CLASSES_ROOT\.contact\ShellNew]

; Skype Contact
[-HKEY_CLASSES_ROOT\.skype\Skype.Content\ShellNew]

; Link
[-HKEY_CLASSES_ROOT\.lnk\ShellNew]

; Microsoft Word Documents
[-HKEY_CLASSES_ROOT\.doc\Word.Document.8\ShellNew]
[-HKEY_CLASSES_ROOT\.dochtml\wordhtmlfile\ShellNew]
[-HKEY_CLASSES_ROOT\.docm\Word.DocumentMacroEnabled.12\ShellNew]
[-HKEY_CLASSES_ROOT\.docx\Word.Document.12\ShellNew]
[-HKEY_CLASSES_ROOT\.docxml\wordxmlfile\ShellNew]
[-HKEY_CLASSES_ROOT\.dot\Word.Template.8\ShellNew]
[-HKEY_CLASSES_ROOT\.dothtml\wordhtmltemplate\ShellNew]
[-HKEY_CLASSES_ROOT\.dotm\Word.TemplateMacroEnabled.12\ShellNew]
[-HKEY_CLASSES_ROOT\.dotx\Word.Template.12\ShellNew]
[-HKEY_CLASSES_ROOT\.rtf\Word.RTF.8\ShellNew]
[-HKEY_CLASSES_ROOT\.wbk\Word.Backup.8\ShellNew]
[-HKEY_CLASSES_ROOT\.wiz\Word.Wizard.8\ShellNew]
[-HKEY_CLASSES_ROOT\.wll\Word.Addin.8\ShellNew]
[-HKEY_CLASSES_ROOT\.rtf\ShellNew]

; Microsoft Excel Documents
[-HKEY_CLASSES_ROOT\.csv\Excel.CSV\ShellNew]
[-HKEY_CLASSES_ROOT\.oft\Outlook.File.oft.14\ShellNew]
[-HKEY_CLASSES_ROOT\.slk\Excel.SLK\ShellNew]
[-HKEY_CLASSES_ROOT\.xla\Excel.Addin\ShellNew]
[-HKEY_CLASSES_ROOT\.xlam\Excel.AddInMacroEnabled\ShellNew]
[-HKEY_CLASSES_ROOT\.xld\Excel.Dialog\ShellNew]
[-HKEY_CLASSES_ROOT\.xlk\Excel.Backup\ShellNew]
[-HKEY_CLASSES_ROOT\.xll\Excel.XLL\ShellNew]
[-HKEY_CLASSES_ROOT\.xlm\Excel.Macrosheet\ShellNew]
[-HKEY_CLASSES_ROOT\.xlsb\Excel.SheetBinaryMacroEnabled.12\ShellNew]
[-HKEY_CLASSES_ROOT\.xlshtml\Excelhtmlfile\ShellNew]
[-HKEY_CLASSES_ROOT\.xlsm\Excel.SheetMacroEnabled.12\ShellNew]
[-HKEY_CLASSES_ROOT\.xlsx\Excel.Sheet.12\ShellNew]
[-HKEY_CLASSES_ROOT\.xlt\Excel.Template.8\ShellNew]
[-HKEY_CLASSES_ROOT\.xlthtml\Excelhtmltemplate\ShellNew]
[-HKEY_CLASSES_ROOT\.xltm\Excel.TemplateMacroEnabled\ShellNew]
[-HKEY_CLASSES_ROOT\.xltx\Excel.Template\ShellNew]
[-HKEY_CLASSES_ROOT\.xlw\Excel.Workspace\ShellNew]
[-HKEY_CLASSES_ROOT\.xls\Excel.Sheet.8\ShellNew]

; Microsoft Powerpoint Documents
[-HKEY_CLASSES_ROOT\.pot\PowerPoint.Template.8\ShellNew]
[-HKEY_CLASSES_ROOT\.pothtml\powerpointhtmltemplate\ShellNew]
[-HKEY_CLASSES_ROOT\.potm\PowerPoint.TemplateMacroEnabled.12\ShellNew]
[-HKEY_CLASSES_ROOT\.potx\PowerPoint.Template.12\ShellNew]
[-HKEY_CLASSES_ROOT\.ppa\PowerPoint.Addin.8\ShellNew]
[-HKEY_CLASSES_ROOT\.ppam\PowerPoint.Addin.12\ShellNew]
[-HKEY_CLASSES_ROOT\.pps\PowerPoint.SlideShow.8\ShellNew]
[-HKEY_CLASSES_ROOT\.ppsm\PowerPoint.SlideShowMacroEnabled.12\ShellNew]
[-HKEY_CLASSES_ROOT\.ppsx\PowerPoint.SlideShow.12\ShellNew]
[-HKEY_CLASSES_ROOT\.ppt\PowerPoint.Show.8\ShellNew]
[-HKEY_CLASSES_ROOT\.ppthtml\powerpointhtmlfile\ShellNew]
[-HKEY_CLASSES_ROOT\.pptm\PowerPoint.ShowMacroEnabled.12\ShellNew]
[-HKEY_CLASSES_ROOT\.pptx\PowerPoint.Show.12\ShellNew]
[-HKEY_CLASSES_ROOT\.pptxml\powerpointxmlfile\ShellNew]
[-HKEY_CLASSES_ROOT\.pwz\PowerPoint.Wizard.8\ShellNew]
[-HKEY_CLASSES_ROOT\.sldm\PowerPoint.SlideMacroEnabled.12\ShellNew]
[-HKEY_CLASSES_ROOT\.sldx\PowerPoint.Slide.12\ShellNew]

; Microsoft Outlook entries
[-HKEY_CLASSES_ROOT\.msg\Outlook.File.msg.14\ShellNew]
[-HKEY_CLASSES_ROOT\.vcf\Outlook.File.vcf.14\ShellNew]
[-HKEY_CLASSES_ROOT\.hol\Outlook.File.hol.14\ShellNew]
[-HKEY_CLASSES_ROOT\.ics\Outlook.File.ics.14\ShellNew]
[-HKEY_CLASSES_ROOT\.pst\Outlook.File.pst.14\ShellNew]
[-HKEY_CLASSES_ROOT\.vcs\Outlook.File.vcs.14\ShellNew]

; Microsoft Visio Drawing
[-HKEY_CLASSES_ROOT\.vdx\Visio.Drawing.11\ShellNew]
[-HKEY_CLASSES_ROOT\.vsd\Visio.Drawing.11\ShellNew]
[-HKEY_CLASSES_ROOT\.vss\Visio.Stencil.11\ShellNew]
[-HKEY_CLASSES_ROOT\.vst\Visio.Template.11\ShellNew]
[-HKEY_CLASSES_ROOT\.vsw\Visio.Workspace.11\ShellNew]
[-HKEY_CLASSES_ROOT\.vsx\Visio.Stencil.11\ShellNew]
[-HKEY_CLASSES_ROOT\.vtx\Visio.Template.11\ShellNew]

; Microsoft Project Document
[-HKEY_CLASSES_ROOT\.mpp\MSProject.Project.9\ShellNew]
[-HKEY_CLASSES_ROOT\.mpt\MSProject.Template\ShellNew]
[-HKEY_CLASSES_ROOT\.mpw\MSProject.Workspace\ShellNew]
[-HKEY_CLASSES_ROOT\.mpx\MSProject.MPX\ShellNew]
[-HKEY_CLASSES_ROOT\.mpd\MSProject.MPD\ShellNew]
[-HKEY_CLASSES_ROOT\.mpf\MediaPackageFile\ShellNew]

; Microsoft OneNote
[-HKEY_CLASSES_ROOT\.one\OneNote.Section.1\ShellNew]
[-HKEY_CLASSES_ROOT\.onepkg\OneNote.Package\ShellNew]
[-HKEY_CLASSES_ROOT\.onetoc\OneNote.TableOfContents\ShellNew]
[-HKEY_CLASSES_ROOT\.onetoc2\OneNote.TableOfContents.12\ShellNew]

; Microsoft Graph
[-HKEY_CLASSES_ROOT\.gra\MSGraph.Chart.8\ShellNew]

; Microsoft Office Theme
[-HKEY_CLASSES_ROOT\.thmx\OfficeTheme.12\ShellNew]

; Microsoft Office List Shortcut
[-HKEY_CLASSES_ROOT\.ols\OfficeListShortcut\ShellNew]

; Microsoft Journal Entry
[-HKEY_CLASSES_ROOT\.jnt\jntfile\ShellNew]

; Microsoft Publisher
[-HKEY_CLASSES_ROOT\.pub\Publisher.Document.14\ShellNew]

; PCB
[-HKEY_CLASSES_ROOT\.pcb\PCBFile\ShellNew]

; PDX
[-HKEY_CLASSES_ROOT\.pdx\PDXFileType\ShellNew]

; UMP Profile
[-HKEY_CLASSES_ROOT\.umprofile\umprofilefile\ShellNew]

; UMS Shortcut
[-HKEY_CLASSES_ROOT\.umshortcut\umshortcutfile\ShellNew]

; Zip
[-HKEY_CLASSES_ROOT\.zip\CompressedFolder\ShellNew]
0

на самом деле вы можете программно писать / читать / взаимодействовать с реестром ...

[использование, @ cmd] рег /?

удалить (через reg /? клип :)

REG DELETE KeyName [/v ValueName | / ве | / ва] [/ f]

KeyName [\Machine] FullKey Machine Имя удаленной машины - по умолчанию не используется текущая машина. Только HKLM и HKU доступны на удаленных машинах. FullKey ROOTKEY\SubKey ROOTKEY [HKLM | HKCU | HKCR | HKU | HKCC] SubKey Полное имя раздела реестра под выбранной ROOTKEY.

ValueName Имя значения под выбранным ключом для удаления. Если опущено, все подразделы и значения в разделе Ключ удаляются.

/ve удалить значение пустого значения name (по умолчанию).

/v удалить все значения под этим ключом.

/f Принудительно удаляет без запроса.

Примеры:

REG DELETE HKLM\Software\MyCo\MyApp\Timeout Удаляет раздел реестра Timeout и все его подразделы и значения.

REG DELETE \ZODIAC \HKLM \Software \MyCo /v MTU Удаляет значение реестра MTU для MyCo в ZODIAC.

0

Просто удалите эту строку, чтобы она заработала:

copy con ext.reg

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .