3

Несколько недель назад я случайно изменил .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/ как-делать-я-сброс-на-умолчанию-файл-ассоциации-для-BAT-файлов-на-Windows-81? форум = w8itproinstall

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

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

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

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

3 ответа3

2

Это было немного страшно, но я решил это с помощью @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}"
1

Окончательный файл 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 Удалить ключ с именем "выбор пользователя"

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

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 и, если вы щелкнете по записи Edit в меню, откроет пакетный файл в блокноте для вас, оставив двойной щелчок, чтобы запустить пакетный файл в командной оболочке.

Использованная ссылка [Перечислена на форуме 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. Аутентификация (введите свой пароль администратора, поместите палец на считыватель отпечатков пальцев, как бы он ни был настроен, это как вход в учетную запись)

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

Как правило, для ассоциаций файлов MOST практически во всех версиях Windows (кроме системных наборов, таких как командные файлы):

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

0

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

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

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

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