Hacer que los ficheros con cierta extensión sean ejecutables en windows
En los entornos linux/unix hacer que un script sea directamente ejecutable es algo tan sencillo como marcar el fichero como ejecutable, mediante chmod
, y poner en la primera linea del script el path del interprete comentado. En windows esto mismo no es posible, no obstante es posible asociar cada extensión de fichero con que programa se ha de usar por defecto al ejecutarlo. En este articulo haremos que los ficheros .py
se ejecuten con el interprete de python IronPython, implementación de python sobre el clr de .NET)
Habilitar HKEY_CLASS_ROOT en powershell
Por defecto powershell no tiene acceso al grupo de claves de registro HKEY_CLASSES_ROOT
, para poder tener acceso a este conjunto de claves de registro hay que ejecutar el siguiente comando en powershell:
New-PSDrive -PSProvider registry -Root HKEY_CLASSES_ROOT -Name HKCR
Crear una clave de registro para el tipo de archivo (si no existe)
Version regedit
- Abrir el editor de registro de windows i sobre la clave de registro
HKEY_CLASSES_ROOT
crear una nueva clave con la extension de archivos que queremos hacer ejecutable (en nuestro caso .py) - Sobre esta nueva clave de registro que hemos creado, crear un nuevo valor con estos valores:
Nombre | Tipo | Datos |
---|---|---|
Content | Type | REG_SZ text/plain |
- Sobre esta nueva clave de registro que hemos creado cambiar el valor (Predeterminado) para que quede de la siguiente forma:
Nombre | Tipo | Datos |
---|---|---|
(Predeterminado) | REG_SZ | IronPython.File |
Versión powershell
Set-Location HKCR:
New-Item -Path HKCR:\ -Name '.py'
Set-ItemProperty -Path HKCR:\.py -Name '(Default)' -Value 'IronPython.File'
Crear una clau para el manejador de archivo que hemos declarado anteriormente
Versión regedit
- Sobre la clave de registro
HKEY_CLASS_ROOT
crear una nueva clave con el valor introducido en el punto 3 del apartado anterior (En nuestro caso IronPython.File). - Sobre la clave de registro creada en el paso anterior crear una subclave llamada Shell.
- Sobre la clave creada en el paso anterior crear una subclave llamada Open, editar el valor del valor (Predeterminado) de la clave Open. para que quede de la siguiente forma.
Nombre | Tipo | Datos |
---|---|---|
(Predeterminado) | REG_SZ | Open |
- Sobre la clave de registro creada en el paso anterior crear una subclave Command.
- Editar el valor (Predeterminado) de la clave creada en el paso anteiror para que quede de la siguiente forma:
Nombre | Tipo | Datos |
---|---|---|
(Predeterminado) | REG_SZ | “C:\Program Files\IronPython 2.7\ipy.exe” “%1″ %* |
Nota!!: C:\Program Files\IronPython 2.7\ipy.exe es la ruta hacia el ejecutable de ironpython.
Versión powershell
New-Item -Path HKCR:\ -Name 'IronPython.File'
New-Item -Path HKCR:\IronPython.File -Name 'Shell'
New-Item -Path HKCR:\IronPython.File\Shell -Name 'Open'
New-ItemProperty -Path HKCR:\IronPython.File\Shell\Open -Name '(Default)' -Value 'Open'
New-Item -Path HKCR:\IronPython.File\Shell\Open -Name 'Command'
New-ItemProperty -Path HKCR:\IronPython.File\Shell\Open\Command -Name '(Default)' -Value '"C:\Program Files\IronPython 2.7\ipy.exe" "%1" %*'