Como faço para restaurar a associação de arquivos .bat ao sistema (executá-los quando clicamos duas vezes)?

68

Para que defino a propriedade 'Abre com ...' para que o sistema execute os arquivos .bat novamente (quando clicam duas vezes)?

De alguma forma, meu chefe convenceu sua estação de trabalho de que o manipulador de .batarquivos deveria ser o Word. Agora, ao clicar duas vezes nos .batarquivos, eles são abertos no Word.

justSteve
fonte
11
Não consigo nem encontrar .BAT na caixa de diálogo de associações de tipo de arquivo no Windows. E não consigo chamar a caixa de diálogo Abrir com ... em um arquivo .bat. Como ele poderia ter mudado isso?
3
umm ... acho que é por isso que ele é o chefe? ;)
3
clique com o botão direito do mouse no arquivo .bat -> Abrir com ... -> selecione MS Word, marque "Sempre abrir com este programa", clique em OK. bam, sua extensão agora está registrada no Word.
quack quixote
Meus arquivos bat também não têm o menu "Abrir com" (Windows 7). Outros arquivos também, é claro.
precisa saber é o seguinte
11
Para sua informação, os arquivos .bat não são executáveis. Eles são scripts interpretados.
Keltari

Respostas:

58

Eu acho que você precisará remover a associação de arquivo .bat do registro (usando o programa regedit).

De acordo com este tópico do fórum no LockerGnome , você precisa remover as configurações do registro abaixo desta chave:

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

Você provavelmente desejará fazer backup do registro antes de fazer isso, apenas para garantir a segurança.

Kaleb Brasee
fonte
28
Para vocês minimalistas, eu acrescentaria que obtive sucesso removendo apenas a subpasta UserChoice. Depois que ele desapareceu, o comportamento de execução padrão foi restaurado. HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts \ .bat \ UserChoice
Mark F Guerra
Tirei a .batchave inteira e as coisas voltaram ao normal. Por alguma razão (suspeito de antivírus), não consegui renomear a UserChoicechave.
Kim Gräsman 01/07/2014
Que dor !! e isso aconteceu automaticamente em uma atualização. Muito obrigado MS.
Jus12
No caminho HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat, removi a UserChoicechave completamente, o que funcionou bem para mim. @ Kim - talvez você não tenha executado regedt32como administrador (clique com o botão direito do mouse e selecione Run as administrator)?
Matt
Existem muitas outras razões possíveis / locais de registro. Veja as outras respostas e minha resposta tentando um resumo.
KXR
32

Este arquivo de chave do registro fará isso. Copie e cole em um arquivo de texto chamado "restore.reg" e clique duas vezes nele para mesclar no registro.

Ele limpará qualquer configuração por usuário que você tenha criado acidentalmente para arquivos .bat e restaurará os padrões do sistema, incluindo o relacionamento do tipo de arquivo .bat<-> batfilee os parâmetros reais para iniciar a 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\" %*"
Fator Místico
fonte
também teve que correr para arquivos cmd na minha máquina
mohlsen
11
Eu usei este aqui, parece que está funcionando bem.
Håkon K. Olafsen
Depois de fazer isso, enquanto a fila dupla clicando morcego, eu estou recebendo erro como "a.bat não é uma aplicação Win32 válida"
rashok
Funciona perfeitamente, mas para afetar, eu tive que matar explorer.exee executar como uma nova tarefa novamente usando o Gerenciador de tarefas.
Dave Anderson
Este resolveu se, para mim, a resposta selecionada não estava. Ainda estava pedindo um aplicativo para abrir arquivos .bat.
precisa saber é o seguinte
10

Eu tive o mesmo problema (no Windows 7); arquivos em lote foram abertos no bloco de notas em vez de serem executados.

A correção do registro abaixo para arquivos .bat (como em qualquer outra máquina em que funciona) fará com que o lote seja executado corretamente:

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 

Mantenha essas entradas, mas remova todas as outras abaixo .bat. Atualize e execute um arquivo em lote clicando duas vezes - ele será executado corretamente.

Sonhador
fonte
7

Nenhuma das respostas acima o corrigiu para a máquina com a qual eu estava trabalhando, mas o que foi corrigido foi iniciar um Admin Shell e executar

assoc .bat=batfile
assoc .cmd=batfile
Niklas R
fonte
11
Esta é a solução para o Windows 2008 Server, cmd, executado como administrador. Não é necessário reiniciar o Explorer.exe ou o Windows.
TonyG
Não funciona?????????????????
YumYumYum 17/01
2
Isso funcionou para mim no Windows 10
htxryan 18/03
não, não funcionou no Windows Server 2012
Toolkit
Com Run as Administrator, isso funcionou perfeitamente para mim no Windows 10 !! :-) Agora (instale) os arquivos .exe que chamam de arquivos .bat funcionam conforme o esperado. Esta solução é muito melhor do que ter que mexer com o registro! Como nota de rodapé, para ver qual é a associação atual, basta digitar assoc .batNo meu caso os dois .bate cmd foram associados como Notepad++_file. Agora que estão .batfile, clicar com o botão direito do mouse nos arquivos bat permite executar ou executar como administrador. Antes disso não era possível. Anteriormente, minha solução alternativa era abrir uma janela do cmd e digitar manualmente a filename.batpara executar o arquivo
SherylHohman
3

As informações nesta resposta me levaram à solução da minha pergunta .

Abri a chave do registro mencionada lá e

  • excluiu a UserChoicechave
  • removeu todas as entradas sob a OpenWithListchave
Gigante verde
fonte
2

A resposta que Kaleb obteve 40 votos não funcionou para mim, mas acabei encontrando a resposta. Para que o arquivo bat seja executado novamente, você deve acessar:

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes.bat] e defina (Padrão) como "batfile". Se você tiver scripts em lote abrindo no Word ou no Notepad ++ em vez de executar com um clique duplo, é porque esses programas definiram (Padrão) os seus próprios mimos.

Se você deseja uma solução rápida, basta abrir um arquivo de texto e colar:

    Windows Registry Editor Version 5.00

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

E salve-o com uma extensão .reg e clique duas vezes para mesclar.

thebunnyrules
fonte
1

No registro, sua entrada .bat precisa apontar para a entrada batfile :

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

Naturalmente, você também precisará se certificar de ter uma entrada de registro batfile :

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

No Windows 8, use o Bloco de notas para criar ou modificar um arquivo em lote, mas o segredo é o seguinte:

Salve o arquivo em lotes usando aspas duplas. Literalmente, use "MYBACK.BAT" usando aspas duplas na caixa de salvamento para salvar o arquivo. Em vez de MYBACK.BAT

user351257
fonte
Verdadeiro (o mesmo para versões anteriores do Windows / Bloco de notas). Mas como isso responde à pergunta?
Arjan 29/07
0

O conteúdo do registro varia para diferentes versões do Windows.

Sugiro que você encontre outro computador com a mesma versão do sistema operacional e use o regedit para exportar o conteúdo de HKEY_CLASSES_ROOT\.bate HKEY_CLASSES_ROOT\batfile.

Em seguida, vá para a máquina do chefe, exclua as duas chaves acima e importe os dois arquivos.

harrymc
fonte
0

Para evitar o incômodo (e para muitas pessoas, medo e intimidação) de editar o registro, você pode usar o utilitário de reparo gratuito, excelente e não invasivo, que realmente realiza qualquer bem (em comparação com muitos outros crapware), tweaking.com Reparo do Windows .

Especificamente: instale-o, pule para a guia "Reparos", clique em "Abrir reparos" e marque "04 Registrar arquivos do sistema" e clique no botão "Iniciar reparos".

A interface do usuário desse programa foi alterada ao longo do tempo; portanto, no futuro, qualquer pessoa que fizer isso poderá precisar explorar o programa para encontrar essa opção.

Eu arriscaria supor que existem muitos outros problemas no computador do seu chefe, para que ele queira executar todos os reparos do programa, o que pode levar horas, dependendo.

Nota: Eu não sou afiliado ao tweaking.com; Eu sou apenas um grande fã do programa. O uso qualificado dele salvou o sistema operacional do meu computador ou resolveu problemas persistentes várias vezes.

r_alex_hall
fonte
0

Novamente, nenhuma das respostas anteriores fez isso aqui.
Por exemplo, tive que alterar o valor padrão de [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\batfile\shell] de editpara open.

(Depois de alterar o tipo de arquivo, estenda as associações na caixa de diálogo de opções da pasta Explorer. Os arquivos BAT foram e não são oferecidos para alteração. Parece haver uma exceção especial. Mas eu lembro, depois de adicionar o tipo BAT na caixa de diálogo de opções da pasta Explorer , para que 'edit' seja o verbo padrão do shell.)

Vários lugares para inspecionar

Afinal, existem várias razões e diferentes versões do sistema operacional e (pelo menos) os valores (padrão) das seguintes pastas (e subpastas) do Registro precisam ser verificados - usando algum senso comum :-). E acho que essa lista pode refletir a ordem de precedência relevante para o sistema operacional:

[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\" %*"
kxr
fonte