Problème exécution ligne de commande avec fonction shell ...
1 réponse
Laurent
Bonjour à tous,
J'ai le problème suivant : je génère une ligne de commande qui est chargée
d'exécuter un petit outil (exe pour lecture de la date d'une image via son
exif), j'exécute cette ligne de commande via la fonction shell et rien ne se
passe. Le message renvoyé par la fonction shell est le 2960, je ne trouve
pas à quoi cecode correspond ...
Je tape cette même ligne de commande via un logiciel windows
(wincommander), ca passe. Je fais de même via le promt dos, ca passe
également. Strange !
Voici le code ;
Dim stAppName As String
Dim Ret As Long
stAppName = "C:\Aviation\Data\exiflist.exe /o l /f date-taken
C:\aviatemp\" & Me!OldFilename & " > C:\aviation\data\exif.txt"
Ret = Shell(stAppName, 0)
MsgBox Ret
Et la chaine générée vaut ;
C:\Aviation\Data\exiflist.exe /o l /f date-taken C:\aviatemp\IMG_9446.JPG >
C:\aviation\data\exif.txt
Qu'est ce qui peut faire que cette ligne de commande passe sous windows et
ne passe pas lorsqu'elle est exécutée depuis access 2003 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Rv
Salut,
Peut-être que la chaine générée doit être encadrée par des guillemets. Donc quelque chose comme : stAppName = """C:AviationDataexiflist.exe /o l /f date-taken... """. J'ai un peu lutté sur ce change de pb avec ce genre de syntaxe alors un petit conseil : Tester en décomposant la chaîne générée en élément le plus simple possibles. Ex: stAppName = "C:AviationDataexiflist.exe" puis stAppName = "C:AviationDataexiflist.exe /o" puis stAppName = """C:AviationDataexiflist.exe /o""" ....
A+
Rv
"Laurent" a écrit dans le message de news:43887258$0$10950$
Bonjour à tous,
J'ai le problème suivant : je génère une ligne de commande qui est chargée
d'exécuter un petit outil (exe pour lecture de la date d'une image via son exif), j'exécute cette ligne de commande via la fonction shell et rien ne se
passe. Le message renvoyé par la fonction shell est le 2960, je ne trouve pas à quoi cecode correspond ... Je tape cette même ligne de commande via un logiciel windows (wincommander), ca passe. Je fais de même via le promt dos, ca passe également. Strange !
Voici le code ;
Dim stAppName As String Dim Ret As Long
stAppName = "C:AviationDataexiflist.exe /o l /f date-taken C:aviatemp" & Me!OldFilename & " > C:aviationdataexif.txt" Ret = Shell(stAppName, 0) MsgBox Ret
Et la chaine générée vaut ;
C:AviationDataexiflist.exe /o l /f date-taken C:aviatempIMG_9446.JPG
C:aviationdataexif.txt
Qu'est ce qui peut faire que cette ligne de commande passe sous windows et
ne passe pas lorsqu'elle est exécutée depuis access 2003 ?
Toute aide est bienvenue ! Merci d'avance ! ;-)
Salut,
Peut-être que la chaine générée doit être encadrée par des guillemets.
Donc quelque chose comme :
stAppName = """C:AviationDataexiflist.exe /o l /f date-taken... """.
J'ai un peu lutté sur ce change de pb avec ce genre de syntaxe alors un
petit conseil :
Tester en décomposant la chaîne générée en élément le plus simple possibles.
Ex:
stAppName = "C:AviationDataexiflist.exe"
puis
stAppName = "C:AviationDataexiflist.exe /o"
puis
stAppName = """C:AviationDataexiflist.exe /o"""
....
A+
Rv
"Laurent" <sunion@skynet.be> a écrit dans le message de
news:43887258$0$10950$ba620e4c@news.skynet.be...
Bonjour à tous,
J'ai le problème suivant : je génère une ligne de commande qui est
chargée
d'exécuter un petit outil (exe pour lecture de la date d'une image via son
exif), j'exécute cette ligne de commande via la fonction shell et rien ne
se
passe. Le message renvoyé par la fonction shell est le 2960, je ne trouve
pas à quoi cecode correspond ...
Je tape cette même ligne de commande via un logiciel windows
(wincommander), ca passe. Je fais de même via le promt dos, ca passe
également. Strange !
Voici le code ;
Dim stAppName As String
Dim Ret As Long
stAppName = "C:AviationDataexiflist.exe /o l /f date-taken
C:aviatemp" & Me!OldFilename & " > C:aviationdataexif.txt"
Ret = Shell(stAppName, 0)
MsgBox Ret
Et la chaine générée vaut ;
C:AviationDataexiflist.exe /o l /f date-taken C:aviatempIMG_9446.JPG
C:aviationdataexif.txt
Qu'est ce qui peut faire que cette ligne de commande passe sous windows
et
ne passe pas lorsqu'elle est exécutée depuis access 2003 ?
Peut-être que la chaine générée doit être encadrée par des guillemets. Donc quelque chose comme : stAppName = """C:AviationDataexiflist.exe /o l /f date-taken... """. J'ai un peu lutté sur ce change de pb avec ce genre de syntaxe alors un petit conseil : Tester en décomposant la chaîne générée en élément le plus simple possibles. Ex: stAppName = "C:AviationDataexiflist.exe" puis stAppName = "C:AviationDataexiflist.exe /o" puis stAppName = """C:AviationDataexiflist.exe /o""" ....
A+
Rv
"Laurent" a écrit dans le message de news:43887258$0$10950$
Bonjour à tous,
J'ai le problème suivant : je génère une ligne de commande qui est chargée
d'exécuter un petit outil (exe pour lecture de la date d'une image via son exif), j'exécute cette ligne de commande via la fonction shell et rien ne se
passe. Le message renvoyé par la fonction shell est le 2960, je ne trouve pas à quoi cecode correspond ... Je tape cette même ligne de commande via un logiciel windows (wincommander), ca passe. Je fais de même via le promt dos, ca passe également. Strange !
Voici le code ;
Dim stAppName As String Dim Ret As Long
stAppName = "C:AviationDataexiflist.exe /o l /f date-taken C:aviatemp" & Me!OldFilename & " > C:aviationdataexif.txt" Ret = Shell(stAppName, 0) MsgBox Ret
Et la chaine générée vaut ;
C:AviationDataexiflist.exe /o l /f date-taken C:aviatempIMG_9446.JPG
C:aviationdataexif.txt
Qu'est ce qui peut faire que cette ligne de commande passe sous windows et
ne passe pas lorsqu'elle est exécutée depuis access 2003 ?