Как восстановить ассоциацию файлов .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.