¿Cómo restauro la asociación de archivos .bat con el sistema (hacer que se ejecuten al hacer doble clic)?

68

¿En qué configuro la propiedad 'Se abre con ...' para que el sistema vuelva a ejecutar archivos .bat (cuando se hace doble clic)?

De alguna manera, mi jefe convenció a su estación de trabajo de que .batse suponía que el controlador de los archivos era Word. Ahora, al hacer doble clic en los .batarchivos, se abren en Word.

justSteve
fuente
1
Ni siquiera puedo encontrar .BAT en el diálogo de asociaciones de tipo de archivo en Windows. Y no puedo invocar el cuadro de diálogo Abrir con ... en un archivo .bat. ¿Cómo pudo haberlo cambiado?
3
umm ... supongo que por eso es el jefe. ;)
3
Haga clic derecho en el archivo .bat -> Abrir con ... -> seleccione MS Word, marque "Abrir siempre con este programa", haga clic en Aceptar. bam, tu extensión ahora está registrada en Word.
quack quijote
Mis archivos bat tampoco tienen el menú "Abrir con" (Windows 7) Otros archivos lo tienen, por supuesto.
lbalazscs
1
Para su información, los archivos .bat no son ejecutables. Son guiones interpretados.
Keltari

Respuestas:

58

Creo que tendrá que eliminar la asociación de archivos .bat del registro (utilizando el programa regedit).

De acuerdo con este hilo del foro en LockerGnome , debe eliminar la configuración del registro debajo de esta clave:

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

Probablemente quiera hacer una copia de seguridad del registro antes de hacer esto, solo para estar seguro.

Kaleb Brasee
fuente
28
Para ustedes, minimalistas, agregaría que tuve éxito al eliminar solo la subcarpeta UserChoice. Una vez que desapareció, se restableció el comportamiento de ejecución predeterminado. HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts \ .bat \ UserChoice
Mark F Guerra
Quité toda la .batllave y las cosas volvieron a la normalidad. Por alguna razón (sospecho antivirus) no pude cambiar el nombre de la UserChoiceclave.
Kim Gräsman
¡¡Que problematico!! y esto sucedió automáticamente en una actualización. Muchas gracias MS.
Jus12
En el camino HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.batquité la UserChoicellave por completo, lo que funcionó bien para mí. @Kim: ¿tal vez no se ejecutó regedt32como administrador (haga clic con el botón derecho y seleccione Run as administrator)?
Matt
Hay muchas otras posibles razones / lugares de registro. Vea las otras respuestas y mi respuesta probando un resumen.
kxr
32

Este archivo de clave de registro lo hará. Copie y pegue en un archivo de texto llamado "restore.reg", y haga doble clic para fusionarlo en el registro.

Borrará cualquier configuración por usuario que haya creado accidentalmente para archivos .bat y restaurará los valores predeterminados del sistema, incluida la relación de tipo de archivo .bat<-> batfile, así como los parámetros reales 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\" %*"
Factor místico
fuente
también tuve que ejecutar archivos cmd en mi máquina
mohlsen
1
Usé este, parece que funciona bien.
Håkon K. Olafsen
Después de hacer esto, mientras hago doble clic en el archivo bat, recibo un error como "a.bat no es una aplicación win32 válida"
rashok
Funciona perfectamente, pero para tener efecto, tuve que matar explorer.exey ejecutar como una nueva tarea nuevamente usando el Administrador de tareas.
Dave Anderson
Este se resolvió si para mí, la respuesta seleccionada no. Todavía estaba pidiendo una aplicación para abrir archivos .bat.
JDuarteDJ
10

Tuve el mismo problema (en Windows 7); los archivos por lotes se abrían en el Bloc de notas en lugar de ejecutarse.

Corregir el siguiente registro para archivos .bat (según cualquier otra máquina donde funcione) hará que el lote se ejecute correctamente:

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 

Mantenga estas entradas pero elimine todas las demás debajo .bat. Actualice y ejecute un archivo por lotes haciendo doble clic: se ejecutará correctamente.

Soñador
fuente
7

Ninguna de las respuestas anteriores lo arregló para la máquina con la que estaba trabajando, pero lo que solucionó fue iniciar un Shell de administración y ejecutar

assoc .bat=batfile
assoc .cmd=batfile
Niklas R
fuente
1
Esta es la solución para Win 2008 Server, cmd se ejecuta como administrador. No se requiere reiniciar Explorer.exe o Windows.
TonyG
¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿No funcionan?????????????????
YumYumYum
2
Esto funcionó para mí en Windows 10
htxryan
no, no funcionó en Windows Server 2012
Toolkit
¡Con Run as Administratoresto funcionó perfectamente para mí en Windows 10 ! :-) Ahora (instale) los archivos .exe que llaman a archivos .bat funcionan como se esperaba. ¡Esta solución es mucho mejor que tener que meterse con el registro! Como nota al margen, para ver cuál es la asociación actual, simplemente escriba assoc .batEn mi caso ambos .baty cmd se asociaron como Notepad++_file. Ahora que lo están .batfile, hacer clic con el botón derecho en los archivos bat me permite EJECUTAR o Ejecutar como administrador. Antes esto no era posible. Anteriormente, mi solución era abrir una ventana de cmd y luego escribir manualmente a filename.batpara ejecutar el archivo
SherylHohman
3

La información en esta respuesta me llevó a la solución de mi pregunta .

Abrí la clave de registro mencionada allí y

  • borró la UserChoiceclave
  • eliminó todas las entradas bajo la OpenWithListclave
Gigante verde
fuente
2

La respuesta que obtuvo 40 votos de Kaleb no funcionó para mí, pero terminé encontrando la respuesta. Para que el archivo bat se ejecute nuevamente, debe ir a:

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes.bat] y establezca (Predeterminado) en "batfile". Si tiene scripts por lotes que se abren en Word o Notepad ++ en lugar de ejecutarse con doble clic, es porque esos programas han establecido (Predeterminado) a sus propios mimos.

Si desea una solución rápida, simplemente abra un archivo de texto y pegue:

    Windows Registry Editor Version 5.00

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

Y guárdelo con una extensión .reg y haga doble clic para fusionar.

thebunnyrules
fuente
1

En el registro, la entrada .bat debe apuntar a la entrada batfile :

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

Naturalmente, también deberá asegurarse de tener una entrada de registro batfile :

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

En Windows 8, use el Bloc de notas para crear o modificar un archivo Batch, pero el secreto es el siguiente:

Guarde el archivo por lotes con comillas dobles. Utilice literalmente "MYBACK.BAT" utilizando las comillas dobles en el cuadro de guardar para guardar el archivo. En lugar de MYBACK.BAT

usuario351257
fuente
Verdadero (igual para versiones anteriores de Windows / Bloc de notas). Pero, ¿cómo responde eso a la pregunta?
Arjan
0

El contenido del registro varía para diferentes versiones de Windows.

Le sugiero que encuentre otra computadora con la misma versión de O / S, y use regedit para exportar el contenido de HKEY_CLASSES_ROOT\.baty HKEY_CLASSES_ROOT\batfile.

Luego vaya a la máquina del Jefe, elimine las dos claves anteriores e importe los dos archivos.

harrymc
fuente
0

Para evitar la molestia (y para muchas personas, la intimidación y la intimidación) de editar el registro, puede usar la utilidad de reparación gratuita, excelente y no invasiva que realmente logra cualquier bien (en comparación con muchos otros crapware), tweaking.com Windows Repair .

Específicamente: instálelo, pase a la pestaña "Reparaciones", haga clic en "Abrir reparaciones" y marque "04 Registrar archivos del sistema", luego haga clic en el botón "Iniciar reparaciones".

La interfaz de usuario de ese programa ha cambiado con el tiempo, por lo que en el futuro, cualquiera que haga esto puede necesitar explorar el programa para encontrar esta opción.

Me arriesgaría a suponer que existen muchos otros problemas en la computadora de su jefe, por lo que es posible que desee ejecutar todas las reparaciones del programa, lo que puede llevar horas, dependiendo.

Nota: no estoy afiliado a tweaking.com; Solo soy un gran admirador del programa. El uso experto del mismo ha salvado el sistema operativo de mi computadora o resuelto problemas difíciles varias veces.

r_alex_hall
fuente
0

De nuevo, ninguna de las respuestas anteriores lo hizo aquí.
Por ejemplo, tuve que cambiar el valor predeterminado de [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\batfile\shell] de edita open.

(Una vez que cambié el tipo de archivo, extienda las asociaciones en el cuadro de diálogo de opciones de la carpeta del Explorador. Los archivos BAT se ofrecieron y no se ofrecen para el cambio. Parece haber una excepción especial. Pero recuerdo, una vez que agregué el tipo BAT en el cuadro de diálogo de opciones de la carpeta del Explorador , para que 'editar' sea el verbo de shell predeterminado).

Varios lugares para inspeccionar

Entonces, después de todo, hay diferentes razones y diferentes versiones del sistema operativo, y (al menos) los valores (predeterminados) de las siguientes carpetas (y subcarpetas) del registro deben verificarse, utilizando un poco de sentido común :-). Y creo que esa lista puede reflejar el orden de precedencia que es relevante para el sistema operativo:

[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
fuente