Windows 8.1: восстановление ассоциации .bat-файла по умолчанию

Windows 8.1: восстановление ассоциации .bat-файла по умолчанию

Несколько недель назад я случайно изменил .bat-файлы, чтобы они открывались с помощью Notepad++ (я считаю, что это довольно распространенная проблема). На Win XP и Win 7 у меня был .reg-файл, который обновил соответствующие ключи реестра и решил проблему. Однако этот пакетный файл больше не работает в Win 8.1 (я предполагаю, что ассоциации файлов обрабатываются по-другому в Win 8.1), и ни один из моих ручных хаков реестра не работает.

Что бы я ни делал, я не могу восстановить .bat файлы в их прежнюю ассоциацию. Мне наконец удалось отсоединить .bat файлы с помощью Notepad++, но я не могу понять, как применить настройки по умолчанию.

Я попробовал решения, перечисленные на следующих сайтах:

http://www.eightforums.com/tutorials/8486-default-file-associations-restore-windows-8-a.html https://social.technet.microsoft.com/Forums/windows/en-US/a85d8a59-b93b-45a3-8aee-cdf93ce32079/how-do-i-reset-the-default-file-association-for-bat-files-on-windows-81?forum=w8itproinstall

Плюс я выполнил следующие команды в командной строке администратора, но безрезультатно (обе команды выдают правильные значения):

C:\Users\Christopher>assoc .bat
.bat= batfile

C:\Users\Christopher>ftype batfile
batfile="%1" %*

Но я никуда не денусь. Может ли кто-нибудь помочь?

решение1

Это был небольшой кошмар, но я решил это с помощью @Pariah. Мне пришлось запустить следующий .reg-файл от имени администратора, а затем вручную удалить следующий ключ:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.BAT\UserChoice

Запустите reg-файл от имени администратора:

runas /user:administrator "regedit /s c:\test.reg"

Рег-файл:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\batfile]
@="Windows Batch File"
"EditFlags"=hex:30,04,00,00
"FriendlyTypeName"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,\
  00,6f,00,6f,00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,\
  32,00,5c,00,61,00,63,00,70,00,70,00,61,00,67,00,65,00,2e,00,64,00,6c,00,6c,\
  00,2c,00,2d,00,36,00,30,00,30,00,32,00,00,00

[HKEY_CLASSES_ROOT\batfile\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,69,00,6d,00,\
  61,00,67,00,65,00,72,00,65,00,73,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,36,\
  00,38,00,00,00

[HKEY_CLASSES_ROOT\batfile\shell]

[HKEY_CLASSES_ROOT\batfile\shell\edit]

[HKEY_CLASSES_ROOT\batfile\shell\edit\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,4e,00,4f,00,\
  54,00,45,00,50,00,41,00,44,00,2e,00,45,00,58,00,45,00,20,00,25,00,31,00,00,\
  00

[HKEY_CLASSES_ROOT\batfile\shell\open]
"EditFlags"=hex:00,00,00,00

[HKEY_CLASSES_ROOT\batfile\shell\open\command]
@="\"%1\" %*"

[HKEY_CLASSES_ROOT\batfile\shell\print]

[HKEY_CLASSES_ROOT\batfile\shell\print\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,4e,00,4f,00,\
  54,00,45,00,50,00,41,00,44,00,2e,00,45,00,58,00,45,00,20,00,2f,00,70,00,20,\
  00,25,00,31,00,00,00

[HKEY_CLASSES_ROOT\batfile\shell\runas]
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\batfile\shell\runas\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,63,00,6d,00,\
  64,00,2e,00,65,00,78,00,65,00,20,00,2f,00,43,00,20,00,22,00,25,00,31,00,22,\
  00,20,00,25,00,2a,00,00,00

[HKEY_CLASSES_ROOT\batfile\shell\runasuser]
@="@shell32.dll,-50944"
"Extended"=""
"SuppressionPolicyEx"="{F211AA05-D4DF-4370-A2A0-9F19C09756A7}"

[HKEY_CLASSES_ROOT\batfile\shell\runasuser\command]
"DelegateExecute"="{ea72d00e-4960-42fa-ba92-7792a7944c1d}"

[HKEY_CLASSES_ROOT\batfile\ShellEx]

[HKEY_CLASSES_ROOT\batfile\ShellEx\ContextMenuHandlers]
@="Compatibility"

[HKEY_CLASSES_ROOT\batfile\ShellEx\ContextMenuHandlers\Compatibility]
@="{1d27f844-3a1f-4410-85ac-14651078412d}"

[HKEY_CLASSES_ROOT\batfile\ShellEx\ContextMenuHandlers\OpenGLShExt]
@="{E97DEC16-A50D-49bb-AE24-CF682282E08D}"

[HKEY_CLASSES_ROOT\batfile\ShellEx\DropHandler]
@="{86C86720-42A0-1069-A2E8-08002B30309D}"

[HKEY_CLASSES_ROOT\batfile\ShellEx\PropertySheetHandlers]

[HKEY_CLASSES_ROOT\batfile\ShellEx\PropertySheetHandlers\ShimLayer Property Page]
@="{513D916F-2A8E-4F51-AEAB-0CBC76FB1AF8}"

[HKEY_CLASSES_ROOT\batfile\ShellEx\{8895b1c6-b41f-4c1c-a562-0d564250836f}]
@="{1531d583-8375-4d3f-b5fb-d23bbd169f22}"

решение2

Окончательный файл Reg, который пользователь должен был использовать для исправления этой проблемы в Windows 8.1 [после запуска пакетного файла, предоставленного Notepad++, чтобы установить Notepad++ в качестве обработчика пакетных файлов по умолчанию. Они попробовали оба других исправления ниже этого. В конце концов им пришлось запустить следующее в файле .reg от имени администратора.

ПЕРВОЕ, чтобы запустить reg-файл от имени администратора: Примечание: Лучше всего поместить этот файл на C:\ и назвать его как-то вроде fix.reg, чтобы в итоге получилось что-то вроде C:\fix.reg. Если вы поместите его где-нибудь, где путь и/или имя файла содержат пробелы, вы получите сообщение об ошибке, и ключи reg не будут добавлены/изменены.

Команда:

runas /user:Administrator "regedit.exe c:\fix.reg"

Содержимое файла fix.reg:

Windows Registry Editor Version 5.00 

[HKEY_CLASSES_ROOT\batfile] 
@="Windows Batch File" 
"EditFlags"=hex:30,04,00,00 
"FriendlyTypeName"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,\ 
00,6f,00,6f,00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,\ 
32,00,5c,00,61,00,63,00,70,00,70,00,61,00,67,00,65,00,2e,00,64,00,6c,00,6c,\ 
00,2c,00,2d,00,36,00,30,00,30,00,32,00,00,00 

[HKEY_CLASSES_ROOT\batfile\DefaultIcon] 
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\ 
00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,69,00,6d,00,\ 
61,00,67,00,65,00,72,00,65,00,73,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,36,\ 
00,38,00,00,00 

[HKEY_CLASSES_ROOT\batfile\shell] 

[HKEY_CLASSES_ROOT\batfile\shell\edit] 

[HKEY_CLASSES_ROOT\batfile\shell\edit\command] 
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\ 
00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,4e,00,4f,00,\ 
54,00,45,00,50,00,41,00,44,00,2e,00,45,00,58,00,45,00,20,00,25,00,31,00,00,\ 
00 

[HKEY_CLASSES_ROOT\batfile\shell\open] 
"EditFlags"=hex:00,00,00,00 

[HKEY_CLASSES_ROOT\batfile\shell\open\command] 
@="\"%1\" %*" 

[HKEY_CLASSES_ROOT\batfile\shell\print] 

[HKEY_CLASSES_ROOT\batfile\shell\print\command] 
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\ 
00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,4e,00,4f,00,\ 
54,00,45,00,50,00,41,00,44,00,2e,00,45,00,58,00,45,00,20,00,2f,00,70,00,20,\ 
00,25,00,31,00,00,00 

[HKEY_CLASSES_ROOT\batfile\shell\runas] 
"HasLUAShield"="" 

[HKEY_CLASSES_ROOT\batfile\shell\runas\command] 
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\ 
00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,63,00,6d,00,\ 
64,00,2e,00,65,00,78,00,65,00,20,00,2f,00,43,00,20,00,22,00,25,00,31,00,22,\ 
00,20,00,25,00,2a,00,00,00 

[HKEY_CLASSES_ROOT\batfile\shell\runasuser] 
@="@shell32.dll,-50944" 
"Extended"="" 
"SuppressionPolicyEx"="{F211AA05-D4DF-4370-A2A0-9F19C09756A7}" 

[HKEY_CLASSES_ROOT\batfile\shell\runasuser\command] 
"DelegateExecute"="{ea72d00e-4960-42fa-ba92-7792a7944c1d}" 

[HKEY_CLASSES_ROOT\batfile\ShellEx] 

[HKEY_CLASSES_ROOT\batfile\ShellEx\ContextMenuHandlers] 
@="Compatibility" 

[HKEY_CLASSES_ROOT\batfile\ShellEx\ContextMenuHandlers\Compatibility] 
@="{1d27f844-3a1f-4410-85ac-14651078412d}" 

[HKEY_CLASSES_ROOT\batfile\ShellEx\ContextMenuHandlers\OpenGLShExt] 
@="{E97DEC16-A50D-49bb-AE24-CF682282E08D}" 

[HKEY_CLASSES_ROOT\batfile\ShellEx\DropHandler] 
@="{86C86720-42A0-1069-A2E8-08002B30309D}" 

[HKEY_CLASSES_ROOT\batfile\ShellEx\PropertySheetHandlers] 

[HKEY_CLASSES_ROOT\batfile\ShellEx\PropertySheetHandlers\ShimLayer Property Page] 
@="{513D916F-2A8E-4F51-AEAB-0CBC76FB1AF8}" 

[HKEY_CLASSES_ROOT\batfile\ShellEx\{8895b1c6-b41f-4c1c-a562-0d564250836f}] 
@="{1531d583-8375-4d3f-b5fb-d23bbd169f22}"

Другие возможные исправления, которые можно попробовать, если вышеперечисленное не сработало [Работа проверена как минимум 1 человеком, в то время как нижеприведенное не сработало в Windows 8.1]

Ключ реестра, к которому нужно перейти: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.BAT\UserChoice Удалите ключ с именем «user choice»

Блок кода для ясности (по запросу):

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.BAT\UserChoice

На странице со справочной информацией в качестве исправления также указано следующее:

Я бы не согласился. Это не проблема, связанная с Windows 8. Что-то изменило ассоциацию файлов, и ее нужно вернуть. Эта же проблема может быть воспроизведена вплоть до Windows 2000 (и, возможно, более ранних версий). Вы проверили следующие ключи и убедились, что они установлены на указанные значения, как показано в ответах в этом сообщении?

[HKEY_CLASSES_ROOT.bat] @="batfile"

[HKEY_CLASSES_ROOT.bat\PersistentHandler] @="{5e941d80-bf96-11cd-b579-08002b30bfeb}"

[HKEY_CLASSES_ROOT\batfile\shell\open\command] @="\"%1\" %*"

Пользователь этого второго, более сложного решения также имеет ссылку на файл *.reg, который он создал, который должен автоматически установить несколько ключей, перечисленных выше этого текста, на значения по умолчанию. См. нижнюю часть страницы справки, поскольку это было отмечено как лучшее решение, и они хранятся внизу страницы (почему M$ принял такое решение, мне непонятно, почему вы не размещаете решения в верхней части тем, чтобы их было легче найти? Старый добрый M$)

Это должно сработать и Notepad++ перестанет брать на себя управление. Кстати, вы можете щелкнуть правой кнопкой мыши по файлу *.bat, и если вы щелкните по пункту «Изменить» в меню, то откроется пакетный файл в блокноте, при этом двойной щелчок все равно останется для выполнения пакетного файла в командной оболочке.

Использованная ссылка [указана на форуме Windows 7, но, кстати, она такая же и в Windows 8.1]:

https://social.technet.microsoft.com/Forums/windows/en-US/fc2ca91d-5509-4c9b-92a5-5af19375e361/lost-bat-file-association?forum=w7itprogeneral

Более подробная информация (как открыть regedit и запустить его от имени администратора, если необходимо)

Для этого немного сложнее, так как нам нужно использовать редактор реестра. Вы ДОЛЖНЫ иметь возможность сделать это как пользователь, так как изменение в большинстве случаев является пользовательским уровнем один, но в зависимости от ваших политик безопасности вам, возможно, придется сделать следующее.

  1. Нажмите кнопку меню «Пуск».
  2. Введите regedit (просто начните вводить данные, когда отображается меню «Пуск», и поиск должен начаться автоматически).
  3. Как только на экране появится regedit, щелкните по нему правой кнопкой мыши.
  4. Когда вы увидите контекстное меню, нажмите «Запуск от имени администратора».
  5. Выполните аутентификацию (введите пароль администратора, приложите палец к сканеру отпечатков пальцев, как вы его настроили, это будет похоже на вход в учетную запись)

Примечание: Вы можете попробовать его сначала, не выполняя часть администратора, если хотите. Худшее, что он сделает, это лишит вас возможности удалить указанный ключ. Если это произойдет, вы должны запустить его как администратор, и тогда вы сможете удалить его.

В целом для БОЛЬШИНСТВА ассоциаций файлов практически во всех версиях Windows (за исключением системных, таких как пакетные файлы):

Все, что вам нужно сделать, это удерживать ЛЕВУЮ клавишу Shift, пока вы щелкаете правой кнопкой мыши по файлу *.bat. Когда вы делаете это с файлом, вы должны увидеть опцию Открыть с помощью ..., которая появится близко к верхней части контекстного меню, которое появляется [небольшое меню, которое вы получаете, когда щелкаете правой кнопкой мыши по вещам]. После того, как вы нажмете Открыть с помощью, вы получите диалоговое окно, в котором вы можете выбрать, чем открыть файл. Если вы установите флажок Использовать как значение по умолчанию в левом нижнем углу, это станет новым действием по умолчанию при двойном щелчке по файлам того же типа.

решение3

Удаление этого раздела реестра (как администратор) отсутствовало во всех вышеперечисленных способах (Windows 8.1):

HKEY_CURRENT_USER\Software\Microsoft\Windows\Roaming\OpenWith\FileExts.bat\UserChoice.

Надеюсь это поможет.

Связанный контент