Как восстановить ассоциацию файлов .bat с системой (заставить их запускаться при двойном щелчке)?


68

Как установить свойство «Opens with ...», чтобы система снова запускала файлы .bat (при двойном щелчке по ним)?

Каким-то образом мой босс убедил свою рабочую станцию, что обработчиком .batфайлов должен был быть Word. Теперь при двойном щелчке .batфайлов они открываются в Word.


1
Я даже не могу найти .BAT в диалоге сопоставления типов файлов в Windows. И я не могу вызвать диалог Open With ... для файла .bat. Как он мог изменить это ??

3
ммм ... наверное, поэтому он и есть босс? ;)

3
щелкните правой кнопкой мыши файл .bat -> Открыть с помощью ... -> выберите MS Word, установите флажок «Всегда открывать с помощью этой программы», нажмите кнопку «ОК». bam, ваше расширение теперь зарегистрировано в Word.
шарлатан-кихот

Мои бат-файлы также не имеют меню «Открыть с помощью» (Windows 7). Конечно, есть и в других файлах.
lbalazscs

1
К вашему сведению, файлы .bat не являются исполняемыми файлами. Это интерпретированные сценарии.
Келтари

Ответы:


58

Я думаю, вам придется удалить .bat ассоциации файлов из реестра (с помощью программы regedit).

Согласно этой ветке форума на LockerGnome , вам необходимо удалить настройки реестра под этим ключом:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat

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


28
Для вас, минималистов, я бы добавил, что добился успеха, удалив только подпапку UserChoice. После того, как оно исчезло, поведение «Выполнение по умолчанию» было восстановлено. HKEY_CURRENT_USER \ Программное обеспечение \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts \ .bat \ UserChoice
Марк Ф. Герра

Я удалил весь .batключ, и все пришло в норму. По какой-то причине (я подозреваю, антивирус) я не мог переименовать UserChoiceключ.
Ким Грасман

Такая боль!! и это произошло автоматически при обновлении. Спасибо большое MS.
Jus12

В пути HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.batя полностью удалил UserChoiceключ, который работал нормально для меня. @ Ким - может быть, вы не работали regedt32администратором (щелкните правой кнопкой мыши и выберите Run as administrator)?
Мэтт

Есть много других возможных причин / мест в реестре. Смотрите другие ответы, и мой ответ пытается резюме.
KXR

32

Этот файл ключа реестра сделает это. Скопируйте и вставьте в текстовый файл с именем «restore.reg», и дважды щелкните его, чтобы объединить с реестром.

Он удалит все настройки для каждого пользователя, которые вы могли случайно создать для файлов .bat, и восстановит системные настройки по умолчанию, включая отношение типа файла .bat<->, batfileа также фактические параметры для запуска batfile.

Windows Registry Editor Version 5.00

[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat]
[-HKEY_CURRENT_USER\Software\Classes\.bat]
[-HKEY_CURRENT_USER\SOFTWARE\Classes\batfile]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.bat]
@="batfile"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\batfile\shell\open\command]
@="\"%1\" %*"

также должен был запускаться для cmd файлов на моей машине
mohlsen

1
Я использовал этот, кажется, работает нормально.
Хокон К. Олафсен,

После этого, дважды щелкнув файл bat, я получаю сообщение об ошибке типа «a.bat не является допустимым приложением win32»
rashok

Работает отлично, но чтобы добиться эффекта, мне пришлось снова убить explorer.exeи запустить как новую задачу, используя диспетчер задач.
Дейв Андерсон

Это решило, если для меня выбранный ответ не сделал. Он все еще просил приложение для открытия .bat файлов.
JDuarteDJ

10

У меня была такая же проблема (в Windows 7); командные файлы открывались в блокноте, а не выполнялись.

Исправление приведенного ниже реестра для файлов .bat (как на любом другом компьютере, на котором он работает) заставит пакет выполниться правильно:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\

.bat                --> default-> Value not set
.bat/OpenWithList   --> default-> Value not set
.bat/OpenWithProgIds--> default-> Value not set
                        batfile-> Zero length binary values 

Сохраните эти записи, но удалите все остальные .bat. Обновите и запустите командный файл, дважды щелкнув - он будет работать правильно.


7

Ни один из приведенных выше ответов не исправил это для машины, с которой я работал, но что исправило, так это запуск командной оболочки и запуск

assoc .bat=batfile
assoc .cmd=batfile

1
Это решение для Win 2008 Server, cmd запускается от имени администратора. Не требуется перезапуск Explorer.exe или Windows.
TonyG

Не работает?????????????????
YumYumYum

2
Это работало для меня на Windows 10
htxryan

Нет, не работал на Windows Server 2012
Инструментарий

С Run as Administrator, это отлично работает для меня на Windows 10 ! :-) Теперь (установите) .exe-файлы, которые вызывают .bat-файлы, работают как положено. Это решение намного лучше, чем возиться с реестром! В качестве идентификатора, чтобы увидеть текущую ассоциацию, просто введите assoc .batВ моем случае оба .batи cmd были связаны как Notepad++_file. Теперь, когда они есть .batfile, щелчок правой кнопкой мыши по файлам bat позволяет мне запускаться или запускаться от имени администратора. До этого не было возможности. Ранее мой обходной путь состоял в том, чтобы открыть окно cmd, а затем вручную ввести a filename.batдля запуска файла
SherylHohman


2

Ответ, получивший 40 голосов от Калеба, не сработал для меня, но в итоге я нашел ответ. Чтобы снова запустить файл bat, вам нужно перейти на:

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes.bat] и установите (по умолчанию) значение «batfile». Если у вас есть пакетные сценарии, открывающиеся в Word или Notepad ++ вместо запуска по двойному щелчку, это потому, что эти программы установили (по умолчанию) свои собственные пантомимы.

Если вы хотите быстро исправить, просто откройте текстовый файл и вставьте:

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.bat]
    @="batfile"

И сохраните его с расширением .reg и дважды щелкните, чтобы объединить.


1

В regisrty ваша запись .bat должна указывать на запись batfile :

[HKEY_CLASSES_ROOT\.bat]
@="batfile"
.....

Естественно, вам также необходимо убедиться, что у вас есть запись реестра batfile :

[HKEY_CLASSES_ROOT\batfile]
@="MS-DOS Batch File"
.....

1

В Windows 8 используйте Блокнот для создания или изменения командного файла, но секрет заключается в следующем:

Сохраните пакетный файл, используя двойные кавычки. Буквально используйте «MYBACK.BAT», используя двойные кавычки в окне сохранения, чтобы сохранить файл. Вместо MYBACK.BAT


True (то же самое для предыдущих версий Windows / Notepad). Но как это отвечает на вопрос?
Арджан

0

Содержимое реестра различается для разных версий Windows.

Я предлагаю вам найти другой компьютер с той же версией O / S и использовать regedit для экспорта содержимого HKEY_CLASSES_ROOT\.batи HKEY_CLASSES_ROOT\batfile.

Затем перейдите к машине босса, удалите два вышеуказанных ключа и импортируйте два файла.


0

Чтобы избежать хлопот (а для многих людей - скучности и запугивания) при редактировании реестра, вы можете использовать бесплатную, отличную и неинвазивную утилиту восстановления, которая на самом деле добивается всего хорошего (в отличие от многих других программных продуктов), tweaking.com Windows Repair .

В частности: установите его, перейдите на вкладку «Ремонт», нажмите «Открыть ремонт» и установите флажок «04 Регистрация системных файлов», затем нажмите кнопку «Начать ремонт».

Пользовательский интерфейс этой программы со временем менялся, поэтому в будущем всем, кто это делает, может понадобиться изучить программу, чтобы найти эту опцию.

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

Примечание: я не связан с tweaking.com; Я просто большой поклонник программы. Умелое использование этого спасло операционную систему моего компьютера или решило упорные проблемы несколько раз.


0

Опять же, ни один из предыдущих ответов не сделал это здесь.
Мне, например, пришлось изменить значение по умолчанию [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\batfile\shell] с editна open.

(Как только я изменил ассоциации расширений типов файлов в диалоговом окне параметров папки Explorer. Файлы BAT были и не предлагались для изменения. Похоже, есть особое исключение. Но я помню, как только я добавил тип BAT в диалоговом окне параметров папки Explorer , чтобы 'edit' был глаголом оболочки по умолчанию.)

Различные места для осмотра

Поэтому, в конце концов, существуют разные причины и разные версии ОС, и (по крайней мере) (по умолчанию) значения следующих папок реестра (и подпапок) необходимо проверить - используя некоторый здравый смысл :-). И я думаю, что этот список может отражать порядок приоритета, который имеет отношение к ОС:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat]  (if present: remove "UserChoice")
[HKEY_CURRENT_USER\Software\Classes\.bat]  (if present: @ = "batfile")
[HKEY_CURRENT_USER\SOFTWARE\Classes\batfile]  (if present)
[HKEY_CURRENT_USER\SOFTWARE\Classes\batfile\shell]  (if present: @ = "open")
[HKEY_CURRENT_USER\SOFTWARE\Classes\batfile\shell\open\command]  (if present: @ = "\"%1\" %*")
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.bat]  @ = "batfile"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\batfile]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\batfile\shell]  @ = "open"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\batfile\shell\open\command]  @ = "\"%1\" %*"
[HKEY_CLASSES_ROOT\.bat]  @ = "batfile"
[HKEY_CLASSES_ROOT\batfile]
[HKEY_CLASSES_ROOT\batfile\shell]  @ = "open"
[HKEY_CLASSES_ROOT\batfile\shell\open\command]  @ = "\"%1\" %*"
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.