elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  asociación de archivos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: asociación de archivos  (Leído 3,568 veces)
polski-levo

Desconectado Desconectado

Mensajes: 5


Ver Perfil
asociación de archivos
« en: 15 Junio 2015, 12:02 pm »

Buenos días mi primera pregunta en este maravilloso foro del que he aprendido mucho, perdón si no meto el tema donde toca o si no se manejar el formato de código:

Estoy intentando elaborar un script bat para asociar la extensión .jar con el programa de java, para ello estoy intentando:

Código:
set direccionJava=C:\Program Files\Java\jre1.8.0_40\bin\javaw.exe
set direccionJava86=C:\Program Files(x86)\Java\jre1.8.0_40\bin\javaw.exe
assoc .jar=JARFile
if "%ProgramFiles(x86)%" == "" (
ftype JARFile="%direccionJava86%"
) else (
ftype JARFile="%direccionJava%" -jar "%1" "%*"
)
pero nada, no lo consigo por mas vueltas que doy. Mi sistema es win7, el bat consigo que se habra antes como administrador con:
Código:
NET FILE 1>NUL 2>NUL
setlocal & pushd .


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.818



Ver Perfil
Re: asociación de archivos
« Respuesta #1 en: 15 Junio 2015, 17:23 pm »

no lo consigo por mas vueltas que doy.

1. Encierra las variables
Código
  1. set "direccionJava=C:\Program Files\Java\jre1.8.0_40\bin\javaw.exe"
  2. set "direccionJava86=C:\Program Files(x86)\Java\jre1.8.0_40\bin\javaw.exe"

2. Escapa los caracteres reservados por el lenguaje (%)
Código
  1. ftype JARFile="%direccionJava%" -jar "%%1" "%%*"

Saludos!


En línea

polski-levo

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: asociación de archivos
« Respuesta #2 en: 15 Junio 2015, 20:58 pm »

Desde luego he quitado errores, pero aún no consigo el efecto, busco poder abrir el archivo como abrir con, seleccionar un programa y convertirlo en el predeterminado, estoy dudando si se puede lo que quiero ¿se puede o esto es diferete y hay que acudir al registro?

Otra cosa ¿Por qué debes poner dos %% aquí?
Código:
ftype JARFile="%direccionJava%" -jar "%%1" "%%*"
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.818



Ver Perfil
Re: asociación de archivos
« Respuesta #3 en: 15 Junio 2015, 22:43 pm »

¿Por qué debes poner dos %% aquí?
Código:
ftype JARFile="%direccionJava%" -jar "%%1" "%%*"

Lo he mencionado antes, para escapar el caracter "%", ya que es un símbolo reservado por el lenguaje ...para definir variables, por ende, obviamente si escribes el símbolo "%" tendrá un efecto muy distinto al que le querías dar, ya que tú pretendes escribir/interpretar dicho símbolo, no usarlo cómo si de una variable se tratase.



busco poder abrir el archivo como abrir con, seleccionar un programa y convertirlo en el predeterminado

Con los arreglos que mencione, aplicados en el código que mostraste, estás creando una asociación por defecto para los archivos con extensión ".jar", para que se ejecuten con la aplicación "javaw.exe" pasándole los argumentos: " -jar "C:\Ruta de archivo.jar" "Argumentos adicionales" ", por ende, al clickar sobre un archivo de tipo ".jar", éste se intentará abrir con la aplicación de Java.

Todo ese proceso que haces en Batch se resume en crear una clave de referencia en la clave de registro "HKCR\.jar" con el nombre que le diste (JARFile), y en esa clave referenciada (HKCR\JARFile) se crea el comando por defecto "Open" (HKCR\JARFile\Shell\Open\Command) con el valor que le diste.

En resumen, supuestamente ya has hecho la aplicación javaw.exe la predeterminada para archivos .jar.

Si no es eso lo que pretendes, intenta explicarlo con más detalles.

Saludos!
« Última modificación: 15 Junio 2015, 22:46 pm por Eleкtro » En línea

polski-levo

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: asociación de archivos
« Respuesta #4 en: 17 Junio 2015, 14:17 pm »

Lo primero muchas gracias por la ayuda. Aunque pensaba que resultaría más sencillo veo que voy aprender tela y creo que el tema resulta muy útil e interesante para el foro.
Sigo sin conseguirlo  :-(
OK, me explico, mi objetivo último es abrir con un doble click los programas que voy practicando de java (esta tarea la quiero automatizar ya que también hacemos prácticas con el formato de compresión y se "desvincula" jar de java).

En relación a lo que ya hemos visto creo que no hay problema, lo que es la asociación queda bien establecida, lo compruebo con esto:
Código:
ftype 2>&1 >tmp.txt
Pero al hacer doble click nada, no se abren los programas  :huh:

He observado que al tener también un javaw en el directorio jdk (que es al que recurre por defecto el pseudo path de java C:\ProgramData\Oracle\Java\javapath), esto por raro que parezca me ha dado algún error, creo  :P
He probado a llamar al javaw del jdk pero tampoco funciona.

También puedo estar teniendo problemas al inicio:
Código:
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )
:getPrivileges
if '%1'=='ELEV' (shift & goto gotPrivileges)
setlocal DisableDelayedExpansion
set "batchPath=%~0"
setlocal EnableDelayedExpansion
ECHO Set UAC = CreateObject^("Shell.Application"^) > "%temp%\OEgetPrivileges.vbs"
ECHO UAC.ShellExecute "!batchPath!", "ELEV", "", "runas", 1 >> "%temp%\OEgetPrivileges.vbs"
"%temp%\OEgetPrivileges.vbs"
exit /B
:gotPrivileges
setlocal & pushd .
goto inicio
::cmd /k

Y en :inicio lo que ya habíamos comentado

al final incluyo un:
Código:
del "%temp%\OEgetPrivileges.vbs"

Si hay problemas con esto ¿cómo puedo obtener los "permisos"?

Ya ando muy liado :P
En línea

asdexiva

Desconectado Desconectado

Mensajes: 217



Ver Perfil
Re: asociación de archivos
« Respuesta #5 en: 17 Junio 2015, 20:40 pm »

creo que tienes que ejecutar como administrador el bat los operadores estos
Código:
>,>>
en windows 7 necesita que los ejecutes como administrador
En línea

polski-levo

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: asociación de archivos
« Respuesta #6 en: 18 Junio 2015, 12:02 pm »

creo que tienes que ejecutar como administrador el bat los operadores estos
Código:
>,>>
en windows 7 necesita que los ejecutes como administrador

Lo de los "permisos" creo que va más en función de comandos, no operadores, de todas formas en el sentido de obtener los permisos no estoy teniendo problemas, más bien puedo estar teniendo problemas con cómo se obtienen los permisos, pero obtenerse se obtienen, comprueba:

Código:
@echo off
net file 1>nul 2>nul
if '%errorlevel%' == '0' ( goto gotprivileges ) else ( goto getprivileges )
:getprivileges
echo getprivileges
echo presiona espacio
pause>nul
if '%1'=='ELEV' (shift & goto gotprivileges)
setlocal DisableDelayedExpansion
set "batchPath=%~0"
setlocal EnableDelayedExpansion
ECHO Set UAC = CreateObject^("Shell.Application"^) > "%temp%\OEgetPrivileges.vbs"
ECHO UAC.ShellExecute "!batchPath!", "ELEV", "", "runas", 1 >> "%temp%\OEgetPrivileges.vbs"
"%temp%\OEgetPrivileges.vbs"
exit /b
:gotprivileges
echo gotprivileges
echo presiona espacio
pause>nul
setlocal & pushd .
goto inicio
cmd /k

:inicio
set "direccionJava=C:\Program Files\Java\jre1.8.0_45\bin\javaw.exe"
set "direccionJava86=C:\Program Files(x86)\Java\jre1.8.0_45\bin\javaw.exe"
echo direccionJava: %direccionJava%
echo direccionJava86: %direccionJava86%
assoc .jar=JARFile
if "%ProgramFiles(x86)%" == "" (
ftype JARFile="%direccionJava%" -jar "%%1" "%%*"
echo utilizando sin86
) else (
ftype JARFile="%direccionJava86%" -jar "%%1" "%%*"
echo utilizando 86
)
echo presiona espacio para salir
pause>nul
exit
En línea

polski-levo

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: asociación de archivos
« Respuesta #7 en: 18 Junio 2015, 16:27 pm »

Me comentan que para vista, win7 etc en realidad se hace modificando directamente el registro:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jar

Todo lo que habia progresado para nada  :o
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
asociacion de archivos
Programación Visual Basic
Zeroql 0 957 Último mensaje 20 Diciembre 2007, 23:58 pm
por Zeroql
asociacion en wep
Wireless en Linux
josito12 6 2,839 Último mensaje 29 Septiembre 2010, 22:03 pm
por lilo.
Asociacion en c++
Programación C/C++
gibranini 8 3,988 Último mensaje 28 Mayo 2014, 02:37 am
por gibranini
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines