Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1770 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Copier-coller par des Variables dans un Wscript.shell.run ne marche pa

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Copier-coller par des Variables dans un Wscript.shell.run ne marche pa

n°2057629
roloulou63
L'art d'être autodidacte...
Posté le 17-02-2011 à 22:02:09  profilanswer
 

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 :D  :D  

mood
Publicité
Posté le 17-02-2011 à 22:02:09  profilanswer
 

n°2057637
billgatesa​nonym
Posté le 17-02-2011 à 23:27:22  profilanswer
 

Essayer en remplaçant

Monshell.Run "xcopy RepSrc\*.* RepDest"

par

Monshell.Run "xcopy " & RepSrc & "\*.* " & RepDest

n°2057718
roloulou63
L'art d'être autodidacte...
Posté le 18-02-2011 à 11:20:02  profilanswer
 

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

n°2057795
roloulou63
L'art d'être autodidacte...
Posté le 18-02-2011 à 14:20:24  profilanswer
 

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.

n°2057800
roloulou63
L'art d'être autodidacte...
Posté le 18-02-2011 à 14:33:16  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Copier-coller par des Variables dans un Wscript.shell.run ne marche pa

 

Sujets relatifs
Copier tables MySQL vers un autre serveurEmuler un SGBD avec un script shell! (Résolu)
[PHP] Méthode(s) pour mémoriser des variables[sh] stocker le résultat d'un script shell interactif
macro copier une cellule dans toutes feuillesExcel 07 / Copier coller dans des sheets
Shell/Batch grep + sed[Résolu] [Shell] mysqldump et envoi mail si erreur
problème signaux en shell 
Plus de sujets relatifs à : Copier-coller par des Variables dans un Wscript.shell.run ne marche pa


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR