Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème exécution ligne de commande avec fonction shell ...

1 réponse
Avatar
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 ?

Toute aide est bienvenue ! Merci d'avance ! ;-)

L@urent

1 réponse

Avatar
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 ! ;-)