WinBatch - Obtener path de oracle y enviar a java

 
Vista:

Obtener path de oracle y enviar a java

Publicado por webness (1 intervención) el 05/01/2009 15:15:53
BUeno dias, necesito saber como obtner la ruta donde se encuentra instalado oracle en una maquina cualquiera utilizando un bat y despues retornar este valor a java

Tengo un ejemplo pero esta escrito en NSIS, aqui lo mando, porque no entiendo mayor cosa de ese codigo, muchas gracias.

Supongo que desde java toca llamar un archivo *.bat, y eso lo se hacer pero no se como seria el codigo del bat y mucho menos como devolver el valor del bat a java.

Function GetOracleDefaultHomePath
Push $R1
Push $R2
Push $R3
Push $R4

; Get the name of the default home
ReadRegStr $R1 HKLM "SOFTWAREORACLEALL_HOMES" "DEFAULT_HOME"
StrCmp $R1 "" done

; Get the number of homes
ReadRegStr $R4 HKLM "SOFTWAREORACLEALL_HOMES" "HOME_COUNTER"

; Loop through all homes
; StrCpy $R3 0
;loop:
; IntCmp $R3 $R4 not_found 0 not_found

; Compare the home name to the default home name
; ReadRegStr $R2 HKLM "SOFTWAREORACLEALL_HOMESID$R3" "NAME"
; StrCmp $R2 $R1 0 next

; Verify the path of the home
; ReadRegStr $R2 HKLM "SOFTWAREORACLEALL_HOMESID$R3" "PATH"
; IfFileExists $R2 0 bad_home
; StrCpy $R1 $R2
; GoTo done
;bad_home:
; StrCpy $R1 ""
; GoTo done
;next:
; IntOp $R3 $R3 + 1
; GoTo loop
;not_found:
; StrCpy $R1 ""

;done:
; Pop $R4
; Pop $R3
; Pop $R2
; Exch $R1
;FunctionEnd
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Obtener path de oracle y enviar a java

Publicado por Armando Nava Linares (2 intervenciones) el 03/03/2009 09:21:48
Saludos

Es un poco engorroso y pudiera fallar en ciertas ocaciones.

Primero buscamos un archivo unico y que siempre exista en la instalación de oracle. Yo busque el archivo SQLPLUS.EXE

No se de alguno comando en MS-dos que me de la lista de drives validos así que aqui empieza lo engorroso.

drive.bat
---------------------------
@echo off

if exist C: (c:)
if exist C: (cd )
if exist C: (dir /S SQLPLUS.EXE |findstr "oracle")

if exist D: (d:)
if exist D: (cd )
if exist D: (dir /S SQLPLUS.EXE |findstr "oracle")

if exist E: (g:)
if exist E: (cd )
if exist E: (dir /S SQLPLUS.EXE |findstr "oracle")

REM completar hasta llegar a Z:
-----------------------------

Como resultado obtuve Directorio de D:oracleora81BIN

Bien ahora separemos la información que requerimos, vaamos a tener que direccionar la salida de nuestro bat a un archivo drive.bat > lista.txt

comando.bat
-----------------------
@echo off
for /F "tokens=1,2,3 delims= " %%i in (lista.txt) do echo %%k
------------------------

Y de nuevo direccionamos la salida a otro archivo.
comando.bat > ruta.txt

Finalmente tenemos D:oracleora81BIN el cual uedes leer directamente desde el archivo.

Nos se si Java pueda lees variables de ambiente como C, en caso de que si solo abria que establecer la una variable de ambiente con el de la ruta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar