Access - Problema ejecutando programa externo con Shell

   
Vista:

Problema ejecutando programa externo con Shell

Publicado por Martika mespinaltb@hotmail.com (1 intervención) el 21/03/2015 09:13:55
Hola,

Estoy haciendo una pequeña aplicación en Access para almacenar en una base de datos los detalles delos archivos almacenados en una determinada localización. Me interesa en particular obtener los metadatos EXIF de los archivos.

Para obtener los datos EXIF uso un programa externo que llamo desde el formulario mediante la instrucción shell, y la línea a ejecutar debe incluir una serie de parametros para que los datos EXIF obtenidos se guarden en un fichero csv que luego importo desde Access.

La línea de comando a ejecutar es:

C:\Users\Marta\Desktop>exiftool.exe -csv "c:\users\Marta\Desktop\fotos peru\DCIM\101EOS5d" > out.csv

Donde el directorio donde reside el ejecutable es el mismo de la base de datos y la carpeta explorar la escoge el usuario en un formulario.

El código es el siguiente:

Public Function GetExif()

'Ejecutar programa exiftool para leer los datos exif de los
'archivos que acabamos de importar y guardar los datos en un fichero
'csv para poderlos importar a la base de datos

Dim RetVal
Dim DirPath As String
Dim FileDir As String
Dim Aplic As String

FileDir = Forms!Explorar!Carpeta
DirPath = CurrentProject.Path
Aplic = DirPath & "\exiftool.exe -csv -k """ & FileDir & """ > out.csv"

RetVal = Shell(Aplic, 1)

End Function

El problema es que la instrucción ejecutada directamente en la ventana del cmd funciona perfectamente redirigiendo los datos de salida al archivo csv mientras que si la llamada la hago desde Access el programa se ejecuta correctamente pero se muestran los datos en pantalla sin crearse el csv.

¿Alguien tiene idea de que estoy haciendo mal?

Al analizar la salida en pantalla de esta ejecución es como si el símbolo > no apareciese en la instrucción que finalmente se ejecuta. ¿El símbolo > tiene que especificarse de alguna forma especial para que se envíe a través de Shell?

Gracias,

Marta
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
Imágen de perfil de Enrique Ramírez

Problema ejecutando programa externo con Shell

Publicado por Enrique Ramírez (617 intervenciones) el 25/03/2015 03:54:57
en lugar de -k prueba con /K
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

Problema ejecutando programa externo con Shell

Publicado por Martika (1 intervención) el 29/03/2015 19:10:36
Gracias pero no es el problema. En realidad el -k es un parámetro cuyo único fin es evitar que se cierre la pantalla al finalizar la ejecución del programa y poder ver los mensajes que ha generado.
Sucede lo mismo si no se incluye el -k y si le pongo /k me sale el mensaje de ayuda con los parámetros permitidos.
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