Windows 8.1: Restaure a associação do arquivo .bat para o padrão

Windows 8.1: Restaure a associação do arquivo .bat para o padrão

Algumas semanas atrás, alterei acidentalmente os arquivos .bat para abrir com o Notepad ++ (um problema bastante comum, acredito). No Win XP e no Win 7, eu tinha um arquivo .reg que atualizava as chaves de registro relevantes e resolvia o problema. No entanto, esse arquivo em lote não funciona mais no Win 8.1 (presumo que as associações de arquivos sejam tratadas de maneira diferente no Win 8.1) e nenhum dos meus hacks manuais de registro está funcionando.

Não importa o que eu faça, não consigo restaurar os arquivos .bat para sua associação anterior. Finalmente consegui desassociar os arquivos .bat do Notepad ++, mas não consigo descobrir como aplicar os padrões.

Eu tentei as soluções listadas nos sites abaixo:

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- arquivos-no-windows-81?forum=w8itproinstall

Além disso, executei os seguintes comandos em um prompt de comando do administrador sem sucesso (ambos relatam os valores corretos):

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

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

Mas não estou chegando a lugar nenhum. Alguém pode ajudar?

Responder1

Isso foi um pesadelo, mas resolvi com a ajuda de @Pariah. Tive que executar o seguinte arquivo .reg como administrador e excluir manualmente a seguinte chave:

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

Execute o arquivo reg como administrador:

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

Arquivo de registro:

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}"

Responder2

O arquivo de registro final que o usuário teve que usar para corrigir esse problema no Windows 8.1 [depois de executar o arquivo em lote fornecido pelo Notepad++ para definir o notepad++ como manipulador de arquivo em lote padrão. Eles tentaram as duas outras correções abaixo desta. No final, eles tiveram que executar o seguinte em um arquivo .reg como administrador.

PRIMEIRO, para executar um arquivo reg como administrador: Nota: É melhor colocar este arquivo em C:\ e nomeá-lo como fix.reg para que no final seja algo como C:\fix.reg. Se você colocar isso em algum lugar onde o caminho e/ou nome do arquivo tenha espaços incluídos, você receberá uma mensagem de erro e as chaves reg não serão adicionadas/alteradas.

O comando:

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

O conteúdo do arquivo 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}"

Outras possíveis soluções para tentar se o procedimento acima não funcionar para você [Foi verificado que funcionava por pelo menos uma pessoa, onde o procedimento abaixo não funcionava no Windows 8.1]

Chave de registro para navegar até: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.BAT\UserChoice Exclua a chave chamada "escolha do usuário"

Bloco de código para maior clareza (por solicitação):

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

Também listado na página de referência como uma correção está o seguinte:

Eu discordaria aí. Este não é um problema específico do Windows 8. Algo mudou a associação do arquivo e precisa ser alterada novamente. Esse mesmo problema pode ser replicado desde o Windows 2000 (e provavelmente antes). Você verificou as chaves a seguir e certificou-se de que elas estavam definidas com os valores mostrados, conforme visto nas respostas daquela postagem?

[HKEY_CLASSES_ROOT.bat] @="arquivobat"

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

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

O usuário desta segunda solução mais complexa também tem um link para um arquivo *.reg que ele criou, que deve definir automaticamente as diversas chaves listadas acima deste texto para os valores padrão. Consulte a parte inferior da página de referência, pois ela foi marcada como Melhor solução e elas são mantidas na parte inferior da página (por que M$ tomou essa decisão está além de mim, você não colocaria as soluções no topo dos tópicos para que sejam mais fáceis de encontrar? Bom e velho M$ )

Isso deve bastar e fazer com que o notepad ++ pare de assumir o controle. Como observação lateral, você pode clicar com o botão direito em um arquivo *.bat e clicar na entrada Editar no menu que abrirá o arquivo em lote no bloco de notas para você, deixando o clique duplo para executar o arquivo em lote em um shell de comando.

Referência usada [listada no fórum do Windows 7, mas é a mesma no Windows 8.1, aliás]:

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

Informações mais detalhadas (como abrir o regedit e executar como administrador, se necessário)

Para este é um pouco complicado pois temos que usar o Editor do Registro. Você DEVE ser capaz de fazer isso como usuário, já que a alteração é de nível de usuário na maioria das vezes, mas dependendo das políticas de segurança em vigor, talvez seja necessário fazer o seguinte.

  1. Clique no botão do menu Iniciar
  2. Digite regedit (basta começar a digitar quando o menu iniciar estiver visível e ele deverá começar a pesquisar automaticamente).
  3. Depois de ver o regedit aparecer na tela, clique com o botão direito nele
  4. Ao ver o menu de contexto aparecer, clique em Executar como administrador
  5. Autenticar (digite sua senha de administrador, coloque o dedo no leitor de impressão digital, porém você o configurou, é como fazer login na conta)

Nota lateral: você pode tentar primeiro sem fazer a parte do administrador, se desejar. A pior coisa que isso fará é negar sua capacidade de excluir a chave listada. Se isso acontecer, você deve executar como administrador e poderá excluí-lo.

Geralmente para a MAIORIA das associações de arquivos em quase todas as versões do Windows (além das definidas pelo sistema, como arquivos em lote):

Tudo o que você precisa fazer é manter pressionada a tecla ESQUERDA Shift enquanto clica com o botão direito em um arquivo *.bat. Ao fazer isso com um arquivo, você verá uma opção Abrir com ... aparecer perto do topo do menu de contexto que aparece [o pequeno menu que você obtém quando clica com o botão direito nas coisas]. Depois de clicar em abrir com, você verá uma caixa de diálogo onde poderá escolher como abrir o arquivo. Se você marcar a caixa Usar como padrão no canto inferior esquerdo, ela se tornará a nova ação padrão quando você clicar duas vezes em arquivos do mesmo tipo.

Responder3

A exclusão desta chave de registro (como administrador) estava faltando em todos os itens acima (Windows 8.1):

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

Espero que isto ajude.

informação relacionada