Copier-coller par des Variables dans un Wscript.shell.run ne marche pa - VB/VBA/VBS - Programmation
Marsh Posté le 17-02-2011 à 23:27:22
Essayer en remplaçant
Monshell.Run "xcopy RepSrc\*.* RepDest" |
par
Monshell.Run "xcopy " & RepSrc & "\*.* " & RepDest |
Marsh Posté le 18-02-2011 à 11:20:02
Merci bcp ca a marché. En revanche dans dans mon if :
If Repdest <> " " Then
'Message affichant la réussite'
msgbox "Réussite de la copie",0,"Copie effectuée avec succès"
Else
'Message affichant l'échec'
msgbox "Echec de la copie",0,"Copie non effectuée"
End if
Si je lui mets un répertoire bidon, il me dit que la copie à fonctionner hors c'est faux.
Merci d'avance
Marsh Posté le 18-02-2011 à 14:20:24
J'ai modifié mon script par ceci :
'Permet de verrouiller les variables pour éviter les erreurs de saisie'
Option Explicit
'Je définit les variables pour mon script'
Dim MonShell,RepSrc,RepDest,objFSO,Vide
'Monshell est instancier par la méthode shell
Set MonShell= Wscript.CreateObject("Wscript.shell" )
'Message demandant le répertoire à copier
RepSrc = inputbox ("Nom du répertoire à copier :","Nom répertoire" )
'Message demandant le répertoire de destination
RepDest = Inputbox ("Nom du répertoire de destination :","Nom répertoire" )
'Je créé l'instance de l'objet objFSO pour lui affecter comme rôle la modification des fichiers
Set ObjFSO = CreateObject("Scripting.FileSystemObject" )
If ObjFso.FolderExists(RepDest) Then
'Exécution de l'action
Monshell.Run "xcopy " & RepSrc & "\*.* " & RepDest
'Message affichant la réussite'
msgbox "Réussite de la copie",0,"Copie effectuée avec succès"
wscript.quit
Else
'Message affichant l'échec'
msgbox "Le répertoire n'existe pas! Merci de taper un chemin existant",0,"répertoire inexistant"
RepDest = Inputbox ("Nom du répertoire de destination :","Nom répertoire" )
Do
'Message affichant l'échec'
msgbox "Le répertoire n'existe pas! Merci de taper un chemin existant",0,"répertoire inexistant"
RepDest = Inputbox ("Nom du répertoire de destination :","Nom répertoire" )
Loop while not ObjFso.FolderExists(RepDest)
'Exécution de l'action
Monshell.Run "xcopy " & RepSrc & "\*.* " & RepDest
'Message affichant la réussite'
msgbox "Réussite de la copie",0,"Copie effectuée avec succès"
End if
Mais je souhaite pour la boucle Do Loop While, que si le répertoire saisie n'est pas le bon. Qu'il retourne le message d'erreur "Le répertoire n'existe pas! Merci de taper un chemin existant",0,"répertoire inexistant" tant que le répertoire n'existe pas.
Marsh Posté le 18-02-2011 à 14:33:16
C'est bon j'ai trouvé :
Voici le script qui marche :
'Permet de verrouiller les variables pour éviter les erreurs de saisie'
Option Explicit
'Je définit les variables pour mon script'
Dim MonShell,RepSrc,RepDest,objFSO,Vide
'Monshell est instancier par la méthode shell
Set MonShell= Wscript.CreateObject("Wscript.shell" )
'Message demandant le répertoire à copier
RepSrc = inputbox ("Nom du répertoire à copier :","Nom répertoire" )
'Message demandant le répertoire de destination
RepDest = Inputbox ("Nom du répertoire de destination :","Nom répertoire" )
'Je créé l'instance de l'objet objFSO pour lui affecter comme rôle la modification des fichiers
Set ObjFSO = CreateObject("Scripting.FileSystemObject" )
If ObjFso.FolderExists(RepDest) Then
'Exécution de l'action
Monshell.Run "xcopy " & RepSrc & "\*.* " & RepDest
'Message affichant la réussite'
msgbox "Réussite de la copie",0,"Copie effectuée avec succès"
wscript.quit
Else
'Message affichant l'échec'
msgbox "Le répertoire n'existe pas! Merci de taper un chemin existant",0,"répertoire inexistant"
RepDest = Inputbox ("Nom du répertoire de destination :","Nom répertoire" )
Do
'Message affichant l'échec'
msgbox "Le répertoire n'existe pas! Merci de taper un chemin existant",0,"répertoire inexistant"
RepDest = Inputbox ("Nom du répertoire de destination :","Nom répertoire" )
Loop while not ObjFso.FolderExists(RepDest)
'Exécution de l'action
Monshell.Run "xcopy " & RepSrc & "\*.* " & RepDest
'Message affichant la réussite'
msgbox "Réussite de la copie",0,"Copie effectuée avec succès"
wscript.quit
End if
Marsh Posté le 17-02-2011 à 22:02:09
Bonjour,
Je me lance dans la création de script et j'ai tenté l'expérience suivante au lieu d'écrire le chemin des dossiers en dur j'ai voulu les mettre par des variables.
L'action de ce script est un copier coller de fichiers d'un répertoire vers un autre.
Et si le répertoire de destination est vide un message survient.
Le problème est qu'avec mes variables la copie ne se fait pas mais en revanche en dur ca marche.
Voici mon script qui marche :
'Permet de verrouiller les variables pour éviter les erreurs de saisie'
Option explicit
'Je définit les variables pour mon script'
Dim MonShell
'Monshell est instancier par la méthode shell
Set MonShell= Wscript.CreateObject("Wscript.shell" )
'Exécution de l'action
Monshell.Run "xcopy c:\te\*.* c:\ta"
If "c:\ta" <> " " Then
'Message affichant l'échec'
msgbox "Echec de la copie",0,"Copie non effectuée"
Else
'Message affichant la réussite'
msgbox "Réussite de la copie",0,"Copie effectuée avec succès"
End if
Script qui ne marche pas:
'Permet de verrouiller les variables pour éviter les erreurs de saisie'
Option explicit
'Je définit les variables pour mon script'
Dim MonShell,RepSrc,RepDest
'Monshell est instancier par la méthode shell
Set MonShell= Wscript.CreateObject("Wscript.shell" )
'Message demandant le répertoire à copier
RepSrc = inputbox ("Nom du répertoire à copier :","Nom répertoire" )
'Message demandant le répertoire de destination
RepDest = inputbox ("Nom du répertoire de destination :","Nom répertoire" )
'Exécution de l'action
Monshell.Run "xcopy RepSrc\*.* RepDest"
If Repdest <> " " Then
'Message affichant l'échec'
msgbox "Echec de la copie",0,"Copie non effectuée"
Else
'Message affichant la réussite'
msgbox "Réussite de la copie",0,"Copie effectuée avec succès"
End if
Repsrc = c:\te
RepDest = c:\ta
Merci par avance de votre aide