Como definir o programa padrão para abrir arquivos sem uma extensão no Windows?

Respostas:

148

Com a linha de comando:

assoc .="No Extension"
ftype "No Extension"="C:\path\to\my editor.exe" "%1"

Para dar crédito, eu aprendi isso com o vim wikia aqui e aqui

Informação extra:

Em vez de "C:\path\to\...", as seguintes macros podem ser úteis:

  • %SystemDrive% - o drive windows está instalado, ou seja, C:\
  • %ProgramFiles% - por exemplo "C:\Program Files\"
  • %ProgramFiles(x86)% - por exemplo "C:\Program Files (x86)\"

Você precisará escapá-los adequadamente:

ftype "No Extension"=^"^%ProgramFiles(x86)^%\Notepad++\notepad++.exe^" "%1"

Para definir o ícone como igual aos arquivos .txt (não fiz isso, pois os ícones dos arquivos são exibidos automaticamente como arquivos do Notepad ++):

assoc "No Extension"\DefaultIcon=%SystemRoot%\System32\imageres.dll,-102

Para desfazer, você pode ler as informações assoc /?ou ftype /?, por exemplo:

ftype "No Extension"=
assoc "No Extension"\DefaultIcon=
assoc .=
hasen
fonte
4
Observe que se o seu editor estiver em uma pasta que contenha um espaço (como "C: \ Arquivos de Programas"), você precisará colocá-lo entre aspas. ftype no_ext="C:\Program Files (x86)\Notepad++\notepad++.exe" "%1"
GuiSim
10
FWIW, no Win7 você precisa executar cmdcomo Administrador
Cristi Diaconescu
1
OK, mais uma: no exemplo acima, no_exté o que o Windows Explorer exibirá na coluna 'Tipo' para esses arquivos. Eu acho que uma descrição mais legível seria melhor, então eu usei "No extension", incluindo as aspas duplas, em vez de no_extnos comandos acima.
Cristi Diaconescu
3
Aqui está como eu definir o ícone para arquivos .txt para arquivos sem extensão (graças @grawity para o ponteiro e idéia): assoc "No extension"\DefaultIcon=%SystemRoot%\system32\imageres.dll,-102
Cristi Diaconescu
2
Isso não está funcionando para mim no Windows 10. Algumas anotações: 1) Ele não seria encontrado assocno PowerShell, portanto cmdé necessário. 2) Estava lançando um erro quando não estava sendo executado como administrador, então eu corri como administrador. O comando é executado sem gerar um erro, mas parece não ter feito nada. Eu reiniciei depois também.
JamesFaix
24

No Windows IT pro :

Arquivos normais com uma extensão podem ter um programa associado, no entanto, esse não é o caso de arquivos que não têm uma extensão. Se você clicar duas vezes em um e selecionar um aplicativo e marcar a caixa para sempre usá-lo, ele será ignorado e toda vez que você selecionar um arquivo, deverá escolher o aplicativo.

Você pode forçar isso usando o registro:

  • Inicie o editor do registro (regedit.exe)
  • Mover para HKEY_CLASSES_ROOT
  • No menu Editar, selecione Novo - Chave
  • Digite um nome de '.' e pressione Enter (não digite as aspas)
  • Selecione o novo '.' chave
  • Clique duas vezes no valor (Padrão)
  • Mude para o HKEY_CLASSES_ROOT usado para abrir, por exemplo, NOTEPAD para o aplicativo notepad.exe NOTEPAD
  • Clique OK

texto alternativo

Se você agora clicar duas vezes em um arquivo sem extensão, ele será aberto com o aplicativo selecionado.

Para verificar o uso de um aplicativo existente, observe sua entrada em HKEY_CLASSES_ROOT, por exemplo, HKEY_CLASSES_ROOT.doc usa o Word.Document.8, portanto, se você quiser isso como seu editor padrão, altere HKEY_CLASSES_ROOT. (Padrão) para Word.Document.8.

Qualquer método que evite a necessidade de editar o registro é o seguinte:

  • Abra o Explorer - Exibir - Opções de pasta ... - Tipos de arquivo - Novo tipo:
  • Descrição do tipo: Texto (qualquer descrição, você pode digitar)
  • Extensão associada:. (apenas um período)
  • Ações: - novo ...
  • Ação: aberto
  • Aplicativo usado para executar a ação: c: \ winnt \ notepad.exe
  • Clique em ok, então ok novamente
Ivo Flipse
fonte
Há algo errado com as informações acima. Tenho arquivos .xml configurado para abrir com o Notepad ++, mas (Padrão) entrada para .xml está definido para XMLFILE ...
Piotr Dobrogost
Eu realmente não entendo o que você quer dizer, mas eu tenho medo que eu não saberia uma solução ou ...
Ivo Flipse
3
@Piotr: Se a entrada padrão HKCR\.xmlé is xmlfile, significa que o shell (Explorer) precisa acessar HKCR\xmlfilee ler as informações dessa chave.
grawity
@Ivo Quando olho para a entrada .txt no registro para verificar como ela se parece (tenho arquivos .txt abertos pelo Notepad ++), a entrada padrão tem o valor "txtfile". Não há nenhum rastro do Notepad ++ em nenhum lugar dessa chave do Registro. o que estou perdendo?
Piotr Dobrogost 16/09/09
Você quer dizer que ele não usa o Notepad ++ agora? Desde que você deve ser capaz de defini-lo como o bloco de notas se você sabe a extensão ou criá-lo
Ivo Flipse
14

Este é um exemplo de arquivo .reg para fazer com que o Bloco de notas abra extensões de arquivo desconhecidas. Crie um novo arquivo de texto com uma extensão .reg, recorte e cole-o nele, clique duas vezes para executar e o colocará no registro.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Unknown\shell]
@="notepad"

[HKEY_CLASSES_ROOT\Unknown\shell\notepad]
@="Open with Notepad"

[HKEY_CLASSES_ROOT\Unknown\shell\notepad\command]
@="C:\\WINDOWS\\NOTEPAD.EXE %1"
Pauk
fonte
Há algo errado com as informações acima. Quando clico no arquivo .reg recém-criado, recebo o erro "O arquivo especificado não é um script de registro".
Piotr Dobrogost
Desculpas Piotr, tente agora, eu adicionei uma linha adicional ao topo dela.
27409 Pauk
Isso funciona no Explorer, mas não no Total Commander, que deve se comportar (e sempre tem) de forma idêntica ao Explorer a esse respeito. Alguma ideia?
Piotr Dobrogost 23/09/09
A idéia de que você deve definir associações de arquivo para TODOS os arquivos desconhecidos no Windows é insana. Muito bem, senhor!
Steven Penny
verificado no win7, funciona. portanto, não há necessidade de uma chave ./ separada.
jiggunjer
5

A maioria dessas soluções não funcionou para mim no Windows 8.1. Eu trabalhei fazendo o seguinte (isso deve funcionar também para o Windows 7 e Windows 10):

  1. Siga a solução do hasnj: Primeiro abra uma janela de comando elevada e digite

    assoc .="No Extension"
    ftype "No Extension"="C:\path\to\my editor.exe" "%1"
    
  2. Abra o regedit e navegue até

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

    Clique com o botão direito e adicione uma nova chave chamada UserChoicese ela ainda não existir.

  3. Na nova chave UserChoice, clique com o botão direito do mouse e crie um novo Valor da String chamado Progid. Defina seu valor como "Sem extensão" (sem as aspas duplas).

Amol Randhawa
fonte
Infelizmente, isso não está funcionando para mim no Windows 8.1. Tentei matar e reiniciar o explorer.exe depois - há algo mais que preciso fazer? Na entrada HCU você mencionou agora tenho OpenWithList, OpenWithProgidse aquele que eu acrescentou UserChoice.
Conan
1
Possível erro-chave no artigo 3. No Extention deve ser No Extension?
19116 JosefZ
2

A resposta de Pauk não funcionou para mim, eu tive que usar:

Editor do Registro do Windows versão 5.00

[HKEY_CLASSES_ROOT.] @ = "Sem extensão"

[HKEY_CLASSES_ROOT \ Sem extensão]

[HKEY_CLASSES_ROOT \ Sem extensão \ Shell]

[HKEY_CLASSES_ROOT \ Sem extensão \ Shell \ Open]

[HKEY_CLASSES_ROOT \ Nenhuma extensão \ Shell \ Open \ Command] @ = "C: \\ pathtoexe \\ yourexe.exe% 1"

Observe as barras invertidas duplas no caminho exe.

79E09796
fonte
Este é o que funcionou para mim. Key era duas barras invertidas.
ontherocks
1

Você também pode usar o NirSoft FileTypesManager :

O FileTypesMan é uma alternativa à guia 'Tipos de arquivo' nas 'Opções de pasta' do Windows.

O FileTypesMan também permite editar facilmente as propriedades e sinalizadores de cada tipo de arquivo, além de adicionar, editar e remover ações em um tipo de arquivo.

guneysus
fonte
1

As outras respostas estão um pouco desatualizadas. Aqui está um link para um que funcione para o Windows 7:

Extensões de shell para nomes de arquivos sem extensão de arquivo

As extensões do shell para nomes de arquivos sem nenhuma extensão podem ser registradas de acordo com o seguinte:

[HKEY_CLASSES_ROOT\.]
           For example, to associate a program (for example, Notepad.exe) to open all files with no extension, use the following registry keys:

[HKEY_CLASSES_ROOT\.]
@=""

[HKEY_CLASSES_ROOT\.\shell]

[HKEY_CLASSES_ROOT\.\shell\open]

[HKEY_CLASSES_ROOT\.\shell\open\command]
@="<path to notepad.exe> %1"
           Here is an alternative method:

[HKEY_CLASSES_ROOT\.]
@="NoExtFile"

[HKEY_CLASSES_ROOT\NoExtFile]

[HKEY_CLASSES_ROOT\NoExtFile\shell]

[HKEY_CLASSES_ROOT\NoExtFile\shell\open]

[HKEY_CLASSES_ROOT\NoExtFile\shell\open\command]
@="<path to notepad.exe> %1"
Runa
fonte
No futuro, inclua as partes mais relevantes aqui, no site, em vez de apenas fornecer um link. Obrigado.
Slhck 14/08
1

Não posso acreditar que ninguém tenha dito isso ainda. Você não precisa fornecer um caminho para o seu editor de texto, como diz a resposta aceita.

Basta executar o seguinte em um prompt de comando do administrador:

assoc .=txtfile
CoolOppo
fonte
0

Tenho um problema ao abrir arquivos PDF no IE9, sim IE9 (necessário para o programa antigo). Os arquivos PDF são gerados por um Javascript e devolvidos ao navegador como tipo de conteúdo de aplicativo / pdf , o que é bom, mas o nome do arquivo "none" , que é ruim. O IE8 permite que você escolha Salvar, Cancelar e Abrir e entende o MimeType . por alguma razão, o IE9 não. Então você tem que escolher sempre para abri-lo com o leitor de PDF.

Minha solução: usando este post, fiz uma associação de arquivo para o arquivo sem extensão. primeiro, mapeei-o no Acrobat Reader , que funciona bem, mas está limitando as possibilidades de abrir um arquivo sem extensão. Por isso, escolhi o Internet Explorer como meu visualizador padrão para arquivos sem extensão. Dessa forma, se o IE puder abri-lo ou conhecer um plugin ou outra associação, ele funcionará.

Eu testei isso com os arquivos "none1" e "none2" na minha área de trabalho. "none1" é um arquivo de texto que diz "olá mundo". "none2" é um arquivo pdf.


Aqui está o meu arquivo .reg :

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.]
@="htmlfile"

[HKEY_CLASSES_ROOT\.\PersistentHandler]
@="{eec97550-47a9-11cf-b952-00aa0051fe20}"

- Veja a captura de tela

http://postimg.org/image/xtklrzcoz/

Christian Glebbeek
fonte