gestion erreur avec Err.Number

Le
---DGI972---
Bonjour à tous,

Je dois faire un transfert ftp d'une image iso.
NB: Pour info j'ai utilisé l'exellent exe mkisofs.exe
J'ai abandonné le transfert ftp classique car j'ai vu une erreur de
transfert sans remonter d'erreur. J'ai donc décidé de laisser faire
l'exe ncftpput.exe, mais je ne sais pas gérer les éventuelles erreurs:

ncftpput returns the following exit values:

0. Success.
1. Could not connect to remote host.
2. Could not connect to remote host - timed out.
3. Transfer failed.
4. Transfer failed - timed out.
5. Directory change failed.
6. Directory change failed - timed out.
7. Malformed URL.
8. Usage error.
9. Error in login configuration file.
10. Library initialization failed.
11. Session initialization failed.

J'ai plus ou moins compris qu'il faut mettre en debut de Vbscript:

On Error Resume Next

puis dans le code:

--
STRCMD="%COMSPEC% /c C:Progcftpput -u gilles -p toto 192.168.5.136 /
C:Prog"&ISO&".iso"
CreateObject ("WScript.Shell").run STRCMD, 0, True 'lancement du
transfert FTP de l'image ISO avec ncftpput.exe'

If Err.Number <> 0 Then
WScript.Echo "Erreur de transfert FTP: " & Err.Number
Err.Clear
End If

Msgbox "Image ISO envoyée sur le site FTP via le VPN"_
&VbCrLf&VbCrLf&"Cliquez sur Ok pour envoyer l'Email de confirmation.",
VbOKOnly + vbInformation, ".:::. Email .:::."
-

Mais je me pose des questions:

1/ La variable err.number s'occuppe de toutes les erreurs dans le VBS
non ? Comment elle s'occupe aussi d'un exe extérieur au VBSript ?

moi je ne veux surveiller que le transfert FTP.

2/ Pour que le VBScript s'arrête (pour ne pas envoyer l'Email de
confirmation) il faut faire un WScript.Quit dans la boucle if
Err.Number <> 0 ?

3/ Faut il "clearer" l'erreur si je quitte le VBSCript ?

Merci d'avance pour vos réponses.

dgi972
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michel__D
Le #19510501
Bonjour,

---DGI972--- a écrit :
Bonjour à tous,

Je dois faire un transfert ftp d'une image iso.
NB: Pour info j'ai utilisé l'exellent exe mkisofs.exe
J'ai abandonné le transfert ftp classique car j'ai vu une erreur de
transfert sans remonter d'erreur. J'ai donc décidé de laisser faire
l'exe ncftpput.exe, mais je ne sais pas gérer les éventuelles erreurs:

ncftpput returns the following exit values:

0. Success.
1. Could not connect to remote host.
2. Could not connect to remote host - timed out.
3. Transfer failed.
4. Transfer failed - timed out.
5. Directory change failed.
6. Directory change failed - timed out.
7. Malformed URL.
8. Usage error.
9. Error in login configuration file.
10. Library initialization failed.
11. Session initialization failed.

J'ai plus ou moins compris qu'il faut mettre en debut de Vbscript:

On Error Resume Next

puis dans le code:

-----------------------------------------
STRCMD="%COMSPEC% /c C:Progncftpput -u gilles -p toto 192.168.5.136 /
C:Prog"&ISO&".iso"
CreateObject ("WScript.Shell").run STRCMD, 0, True 'lancement du
transfert FTP de l'image ISO avec ncftpput.exe'

If Err.Number <> 0 Then
WScript.Echo "Erreur de transfert FTP: " & Err.Number
Err.Clear
End If

Msgbox "Image ISO envoyée sur le site FTP via le VPN"_
&VbCrLf&VbCrLf&"Cliquez sur Ok pour envoyer l'Email de confirmation.",
VbOKOnly + vbInformation, ".:::. Email .:::."
----------------------------------------

Mais je me pose des questions:

1/ La variable err.number s'occuppe de toutes les erreurs dans le VBS
non ? Comment elle s'occupe aussi d'un exe extérieur au VBSript ?

moi je ne veux surveiller que le transfert FTP.

2/ Pour que le VBScript s'arrête (pour ne pas envoyer l'Email de
confirmation) il faut faire un WScript.Quit dans la boucle if Err.Number
<> 0 ?

3/ Faut il "clearer" l'erreur si je quitte le VBSCript ?

Merci d'avance pour vos réponses.

dgi972



[...]
STRCMD="%COMSPEC% /c C:Progncftpput -u gilles -p toto 192.168.5.136 / C:Prog"&ISO&".iso"
CreateObject ("WScript.Shell").run STRCMD, 0, True 'lancement du transfert FTP de l'image ISO avec ncftpput.exe'
[...]

' Essaye plutot comme ceci :
STRCMD="C:Progncftpput.exe -u gilles -p toto 192.168.5.136 / C:Prog"&ISO&".iso"
Set oSh=CreateObject("WScript.Shell")
Errorlevel=oSh.run STRCMD, 0, True 'lancement du transfert FTP de l'image ISO avec ncftpput.exe'
' Tu teste ensuite la valeur de Errorlevel

PS:L'éventuelle erreur généré par ncftpput n'a rien à voir avec la gestion
d'erreur du script vbs (à moins de provoquer toi-même l'erreur avec raise).
Michel__D
Le #19510871
Michel__D a écrit :
Bonjour,

---DGI972--- a écrit :
Bonjour à tous,

Je dois faire un transfert ftp d'une image iso.
NB: Pour info j'ai utilisé l'exellent exe mkisofs.exe
J'ai abandonné le transfert ftp classique car j'ai vu une erreur de
transfert sans remonter d'erreur. J'ai donc décidé de laisser faire
l'exe ncftpput.exe, mais je ne sais pas gérer les éventuelles erreurs:

ncftpput returns the following exit values:

0. Success.
1. Could not connect to remote host.
2. Could not connect to remote host - timed out.
3. Transfer failed.
4. Transfer failed - timed out.
5. Directory change failed.
6. Directory change failed - timed out.
7. Malformed URL.
8. Usage error.
9. Error in login configuration file.
10. Library initialization failed.
11. Session initialization failed.

J'ai plus ou moins compris qu'il faut mettre en debut de Vbscript:

On Error Resume Next

puis dans le code:

-----------------------------------------
STRCMD="%COMSPEC% /c C:Progncftpput -u gilles -p toto 192.168.5.136
/ C:Prog"&ISO&".iso"
CreateObject ("WScript.Shell").run STRCMD, 0, True 'lancement du
transfert FTP de l'image ISO avec ncftpput.exe'

If Err.Number <> 0 Then
WScript.Echo "Erreur de transfert FTP: " & Err.Number
Err.Clear
End If

Msgbox "Image ISO envoyée sur le site FTP via le VPN"_
&VbCrLf&VbCrLf&"Cliquez sur Ok pour envoyer l'Email de confirmation.",
VbOKOnly + vbInformation, ".:::. Email .:::."
----------------------------------------

Mais je me pose des questions:

1/ La variable err.number s'occuppe de toutes les erreurs dans le VBS
non ? Comment elle s'occupe aussi d'un exe extérieur au VBSript ?

moi je ne veux surveiller que le transfert FTP.

2/ Pour que le VBScript s'arrête (pour ne pas envoyer l'Email de
confirmation) il faut faire un WScript.Quit dans la boucle if
Err.Number <> 0 ?

3/ Faut il "clearer" l'erreur si je quitte le VBSCript ?

Merci d'avance pour vos réponses.

dgi972



[...]
STRCMD="%COMSPEC% /c C:Progncftpput -u gilles -p toto 192.168.5.136 /
C:Prog"&ISO&".iso"
CreateObject ("WScript.Shell").run STRCMD, 0, True 'lancement du
transfert FTP de l'image ISO avec ncftpput.exe'
[...]

' Essaye plutot comme ceci :
STRCMD="C:Progncftpput.exe -u gilles -p toto 192.168.5.136 /
C:Prog"&ISO&".iso"
Set oSh=CreateObject("WScript.Shell")
Errorlevel=oSh.run STRCMD, 0, True 'lancement du transfert FTP de
l'image ISO avec ncftpput.exe'
' Tu teste ensuite la valeur de Errorlevel

PS:L'éventuelle erreur généré par ncftpput n'a rien à voir avec la gestion
d'erreur du script vbs (à moins de provoquer toi-même l'erreur avec
raise).



Oups correction

' Essaye plutot comme ceci :
STRCMD="C:Progncftpput.exe -u gilles -p toto 192.168.5.136 / C:Prog"&ISO&".iso"
Set oSh=CreateObject("WScript.Shell")
Errorlevel=oSh.run(STRCMD, 0, True) 'lancement du transfert FTP de l'image ISO avec ncftpput.exe'
' Tu teste ensuite la valeur de Errorlevel
Gilles LAURENT [MVP]
Le #19518191
"---DGI972---" message de
news:
| Bonjour à tous,

Bonjour,

| Je dois faire un transfert ftp d'une image iso.
| NB: Pour info j'ai utilisé l'exellent exe mkisofs.exe
| J'ai abandonné le transfert ftp classique car j'ai vu une erreur de
| transfert sans remonter d'erreur. J'ai donc décidé de laisser faire
| l'exe ncftpput.exe, mais je ne sais pas gérer les éventuelles erreurs:
[...]

Une autre possibilité consiste à utiliser le composant Chilkat FTP :
http://www.chilkatsoft.com/chilkatftp.asp

Voici la liste des méthodes et propriétés disponibles :

Category Name
-------- ----
Function ChangeRemoteDir (relativeDirPath)
Function Connect ()
Function CreateRemoteDir (dir)
Function DeleteMatching (remotePattern)
Function DeleteRemoteFile (filename)
Sub Disconnect ()
Function GetCreateTime (index)
Function GetCurrentDirListing (pattern)
Function GetCurrentRemoteDir ()
Function GetFile (remoteFilename, localFilename)
Function GetFilename (index)
Function GetIsDirectory (index)
Function GetLastAccessTime (index)
Function GetLastModifiedTime (index)
Function GetRemoteFileBinaryData (remoteFilename)
Function GetRemoteFileTextData (remoteFilename)
Function GetSize (index)
Function MGetFiles (remotePattern, localDir)
Function MPutFiles (pattern)
Function PutFile (localFilename, remoteFilename)
Function PutFileFromBinaryData (remoteFilename, binaryData)
Function PutFileFromTextData (remoteFilename, textData)
Function RemoveRemoteDir (dir)
Function RenameRemoteFile (existingFilename, newFilename)
Sub SaveLastError (filename)
Property Hostname
Property IsConnected
Property LastErrorHtml
Property LastErrorText
Property LastErrorXml
Property ListPattern
Property NumFilesAndDirs
Property Passive
Property Password
Property Port
Property Proxy
Property UseIEProxy
Property Username
Property Version

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
---DGI972---
Le #19536771
Michel__D a écrit :
Michel__D a écrit :
Bonjour,

---DGI972--- a écrit :
Bonjour à tous,

Je dois faire un transfert ftp d'une image iso.
NB: Pour info j'ai utilisé l'exellent exe mkisofs.exe
J'ai abandonné le transfert ftp classique car j'ai vu une erreur de
transfert sans remonter d'erreur. J'ai donc décidé de laisser faire l'exe
ncftpput.exe, mais je ne sais pas gérer les éventuelles erreurs:

ncftpput returns the following exit values:

0. Success.
1. Could not connect to remote host.
2. Could not connect to remote host - timed out.
3. Transfer failed.
4. Transfer failed - timed out.
5. Directory change failed.
6. Directory change failed - timed out.
7. Malformed URL.
8. Usage error.
9. Error in login configuration file.
10. Library initialization failed.
11. Session initialization failed.

J'ai plus ou moins compris qu'il faut mettre en debut de Vbscript:

On Error Resume Next

puis dans le code:

-----------------------------------------
STRCMD="%COMSPEC% /c C:Progncftpput -u gilles -p toto 192.168.5.136 /
C:Prog"&ISO&".iso"
CreateObject ("WScript.Shell").run STRCMD, 0, True 'lancement du transfert
FTP de l'image ISO avec ncftpput.exe'

If Err.Number <> 0 Then
WScript.Echo "Erreur de transfert FTP: " & Err.Number
Err.Clear
End If

Msgbox "Image ISO envoyée sur le site FTP via le VPN"_
&VbCrLf&VbCrLf&"Cliquez sur Ok pour envoyer l'Email de confirmation.",
VbOKOnly + vbInformation, ".:::. Email .:::."
----------------------------------------

Mais je me pose des questions:

1/ La variable err.number s'occuppe de toutes les erreurs dans le VBS non
? Comment elle s'occupe aussi d'un exe extérieur au VBSript ?

moi je ne veux surveiller que le transfert FTP.

2/ Pour que le VBScript s'arrête (pour ne pas envoyer l'Email de
confirmation) il faut faire un WScript.Quit dans la boucle if Err.Number
<> 0 ?

3/ Faut il "clearer" l'erreur si je quitte le VBSCript ?

Merci d'avance pour vos réponses.

dgi972



[...]
STRCMD="%COMSPEC% /c C:Progncftpput -u gilles -p toto 192.168.5.136 /
C:Prog"&ISO&".iso"
CreateObject ("WScript.Shell").run STRCMD, 0, True 'lancement du transfert
FTP de l'image ISO avec ncftpput.exe'
[...]

' Essaye plutot comme ceci :
STRCMD="C:Progncftpput.exe -u gilles -p toto 192.168.5.136 /
C:Prog"&ISO&".iso"
Set oSh=CreateObject("WScript.Shell")
Errorlevel=oSh.run STRCMD, 0, True 'lancement du transfert FTP de l'image
ISO avec ncftpput.exe'
' Tu teste ensuite la valeur de Errorlevel

PS:L'éventuelle erreur généré par ncftpput n'a rien à voir avec la gestion
d'erreur du script vbs (à moins de provoquer toi-même l'erreur avec
raise).



Oups correction

' Essaye plutot comme ceci :
STRCMD="C:Progncftpput.exe -u gilles -p toto 192.168.5.136 /
C:Prog"&ISO&".iso"
Set oSh=CreateObject("WScript.Shell")
Errorlevel=oSh.run(STRCMD, 0, True) 'lancement du transfert FTP de l'image
ISO avec ncftpput.exe'
' Tu teste ensuite la valeur de Errorlevel



Super j'ai testé et j'affiche le numéro d'erreur.

merci
---DGI972---
Le #19536761
Gilles LAURENT [MVP] a écrit :
"---DGI972---" message de
news:
Bonjour à tous,



Bonjour,

Je dois faire un transfert ftp d'une image iso.
NB: Pour info j'ai utilisé l'exellent exe mkisofs.exe
J'ai abandonné le transfert ftp classique car j'ai vu une erreur de
transfert sans remonter d'erreur. J'ai donc décidé de laisser faire
l'exe ncftpput.exe, mais je ne sais pas gérer les éventuelles erreurs:


[...]

Une autre possibilité consiste à utiliser le composant Chilkat FTP :
http://www.chilkatsoft.com/chilkatftp.asp

Voici la liste des méthodes et propriétés disponibles :

Category Name
-------- ----
Function ChangeRemoteDir (relativeDirPath)
Function Connect ()
Function CreateRemoteDir (dir)
Function DeleteMatching (remotePattern)
Function DeleteRemoteFile (filename)
Sub Disconnect ()
Function GetCreateTime (index)
Function GetCurrentDirListing (pattern)
Function GetCurrentRemoteDir ()
Function GetFile (remoteFilename, localFilename)
Function GetFilename (index)
Function GetIsDirectory (index)
Function GetLastAccessTime (index)
Function GetLastModifiedTime (index)
Function GetRemoteFileBinaryData (remoteFilename)
Function GetRemoteFileTextData (remoteFilename)
Function GetSize (index)
Function MGetFiles (remotePattern, localDir)
Function MPutFiles (pattern)
Function PutFile (localFilename, remoteFilename)
Function PutFileFromBinaryData (remoteFilename, binaryData)
Function PutFileFromTextData (remoteFilename, textData)
Function RemoveRemoteDir (dir)
Function RenameRemoteFile (existingFilename, newFilename)
Sub SaveLastError (filename)
Property Hostname
Property IsConnected
Property LastErrorHtml
Property LastErrorText
Property LastErrorXml
Property ListPattern
Property NumFilesAndDirs
Property Passive
Property Password
Property Port
Property Proxy
Property UseIEProxy
Property Username
Property Version



Je ne suis pas a l'aise et je n'ai pas tout compris comment le mettre
en oeuvre.
Par contre cela fonctionne avec ncftpput et j'ai trouvé des examples
transposable rapidement en vbs.
Par curiosité un jour je me replongerai sur le site
http://www.chilkatsoft.com

merci encore gilles

gilles
Gilles LAURENT [MVP]
Le #19550491
"---DGI972---" message de
news:

Bonjour,

[...]
| Je ne suis pas a l'aise et je n'ai pas tout compris comment le mettre
| en oeuvre.
| Par contre cela fonctionne avec ncftpput et j'ai trouvé des examples
| transposable rapidement en vbs.
| Par curiosité un jour je me replongerai sur le site
| http://www.chilkatsoft.com

L'avantage d'utiliser un composant COM en scripting réside dans la
maitrise du traitement à réaliser. Dans le cas présent vous serez en
mesure de piloter le transfert FTP ainsi que déterminer le résultat du
traitement via les propriétés exposées. J'utilise personnellement ce
composant pour des besoins de transferts inter-sites et les résultats
des transferts sont tous consignés dans un fichier log permettant ainsi
aux opérateurs d'agir en conséquence. A mon avis, invoquer le Shell ou
un binaire en scripting doit rester une exception. Pour les traitements
complexes, j'utilise les API Win32 via le wrapper Dynawrap :
http://glsft.free.fr/index.php?option=com_content&task=view&idG&Itemid3

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Publicité
Poster une réponse
Anonyme