IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Sript vbs pour copier un dossier


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 19
    Points : 11
    Points
    11
    Par défaut Sript vbs pour copier un dossier
    Bonjours,

    Je sollicite encore une fois votre aide pour la création d'un programme en vbs.

    Voila je m'explique, il faut que je crée un script qui lors de la connexion d'un utilisateur copie un fichier présent sur le serveur vers son dossier programmes. Et qu'il puisse vérifier si le fichier existe il ne le copie pas sinon il le copie.

    merci

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    je suis arrive a cela, c'est satisfaisant mais j'aimerai mettre une condition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim oFSO
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    oFSO.CopyFolder "C:\Users\mahon\Pictures","C:\Users\mahon\Videos"
    il me manque une condition si le dossier existe ne rien faire,si il n'existe pas le copier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim oFSO
    Set oFSO = CreateObject("Scripting.FileSystemObject")
     " & oFSO.FolderExists("Z:\synchro")
     
     
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    oFSO.CopyFolder "C:\local D\AntiWPA","Z:\"
     
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFld=oFSO.CreateFolder ("Z:\synchro")

  4. #4
    Membre confirmé Avatar de pitchalov
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 340
    Points : 582
    Points
    582
    Par défaut
    ouais un If en VBS quoi. Pour exemple donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    objFso = CreateObject("Scripting.FileSystemObject")
    If objFso.FolderExists("dossier source") Then
      objFso .CopyFolder "dossier source","dossier destination"
    Else
      MsgBox "source introuvable"
    End If

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 19
    Points : 11
    Points
    11
    Par défaut condition de ccréation de dossier
    j'ai essayé sa mais cela ne fonctionne pas, l'instruction doit être transparente donc j'ai enlever msgbox



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Dim oFSO
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    if " & oFSO.FolderExists("Z:\synchro")then
     
    else 
     
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    if " & oFSO.FolderExists("Z:\AntiWPA")then
     
    else 
     
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    oFSO.CopyFolder "C:\local D\AntiWPA","Z:\"
     
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFld=oFSO.CreateFolder ("Z:\synchro")

  6. #6
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 067
    Points : 17 152
    Points
    17 152
    Par défaut
    Citation Envoyé par mcmahon Voir le message
    j'ai essayé sa mais cela ne fonctionne pas, l'instruction doit être transparente donc j'ai enlever msgbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Dim oFSO
    Set oFSO = CreateObject("Scripting.FileSystemObject")
     
    if " & oFSO.FolderExists("Z:\synchro")then
    else 
     
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    if " & oFSO.FolderExists("Z:\AntiWPA")then
     
    else 
     
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    oFSO.CopyFolder "C:\local D\AntiWPA","Z:\"
     
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFld=oFSO.CreateFolder ("Z:\synchro")
    Sans relire toute la discussion cela doit ressembler a çà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim oFSO
    Dim oFld '<= à moins que cela soit déclaré ailleurs
     
    Set oFSO = CreateObject("Scripting.FileSystemObject") '< 1 seul fois suffit
     
    If oFSO.FolderExists("Z:\synchro") = False Then
        Set oFld = oFSO.CreateFolder("Z:\synchro")
    End If
     
    If oFSO.FolderExists("Z:\AntiWPA") = True Then
        oFSO.CopyFolder "C:\local D\AntiWPA", "Z:\"
    End If
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 19
    Points : 11
    Points
    11
    Par défaut vbs copier
    voila mon code final j'ai juste un dernier problème c'est qui ne me copie pas le dernier dossier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Set WshNetwork = WScript.CreateObject("WScript.Network")
    wshNetwork.MapNetworkDrive "Z:", "\\2008serv\" & wshNetwork.UserName
     
     
    wshNetwork.MapNetworkDrive "Y:", "\\2008serv\public"
     
     
     
    Dim oFSO
    Dim oFld '<= à moins que cela soit déclaré ailleurs
     
    Set oFSO = CreateObject("Scripting.FileSystemObject") '< 1 seul fois suffit
     
    If oFSO.FolderExists("Z:\synchro") = False Then
        Set oFld = oFSO.CreateFolder("Z:\synchro")
    End If
     
    If oFSO.FolderExists("C:\SyncBack") = False Then
        oFSO.CopyFolder "\\2008SERV\SyncBack","c:\syncback"
    End If

  8. #8
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 067
    Points : 17 152
    Points
    17 152
    Par défaut
    Où trouver l'aide en ligne pour VBScript ?
    Une fois installé sur ton ordinateur, lancer Script56.CHM, dans l'onglet Index, mettre le mot CopyFolder , preter attention a la partie suivant:
    Sinon, destination est considéré comme le nom d'un dossier à créer. Dans tous les cas, quatre événements peuvent se produire lors de la copie d'un dossier individuel.
    Bonne chance.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 19
    Points : 11
    Points
    11
    Par défaut copier vbs
    bonjour, je n'arrive toujours pas a copier mon dossier

    le dossier syncback et partagé est il se trouve sur un serveur, 2008SERV
    il doit le copier sur la partition c:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Set oFSO = CreateObject("Scripting.FileSystemObject")
     
    oFSO.FolderExists("C:\SyncBack") = False Then
    oFSO.CopyFolder "\\2008SERV\SyncBack","c:"
    je suis un peut perdu.

  10. #10
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    Essaie ce
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Option Explicit
     
    Dim oFSO,Fd,DestFold,SrcFold
    srcFold="\\2008SERV\SyncBack"
    DestFold="C:\"
    Set oFSO = CreateObject("Scripting.FileSystemObject")
     If oFSO.FolderExists(srcFold) Then
        set fd=oFSO.getfolder(srcFold)   
       If not oFSO.FolderExists(destFold & "SyncBack") Then 
        Fd.copy destFold
       Else 
         If  Msgbox("Le dossier existe déjà, L'écraser ?",VbYesNo,"Copie et remplacement")=VbYes then
             Fd.Copy destFold,true
         Else
             MsgBox "Le dossier " & destFold & "SyncBack n'a pas été remplacé"
         End If
       End If
     End if
    Je l'ai testé sur mon réseau domestique et cela marche impec.
    Il devrait marcher pour toi aussi.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    merci de ton aide j'ai supprimer la msg box car cela doit être invisible pour les utilisateur du domaine. quand je l exécute il n y a pas d'erreur mais le dossier n'est pas copier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Option Explicit
     
    Dim oFSO,Fd,DestFold,SrcFold
    srcFold="\\2008SERV\SyncBack"
    DestFold="C:\"
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    If oFSO.FolderExists(srcFold) Then
    set fd=oFSO.getfolder(srcFold)   
    If not oFSO.FolderExists(destFold & "SyncBack") then
    End If
    End If

  12. #12
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    mais le dossier n'est pas copier
    Mais avec ces modifications, il n'y aura jamais de copie car tu as supprimé l'instruction de copie(en rouge)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Option Explicit
     
    Dim oFSO,Fd,DestFold,SrcFold
    srcFold="\\2008SERV\SyncBack"
    DestFold="C:\"
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    If oFSO.FolderExists(srcFold) Then
          set fd=oFSO.getfolder(srcFold)   
          If not oFSO.FolderExists(destFold & "SyncBack") then
                Fd.Copy destFold
          End If
    End If
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 19
    Points : 11
    Points
    11
    Par défaut copier vbs
    voici mon code complet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    Set WshNetwork = WScript.CreateObject("WScript.Network")
    wshNetwork.MapNetworkDrive "Z:", "\\2008serv\" & wshNetwork.UserName
     
     
    wshNetwork.MapNetworkDrive "Y:", "\\2008serv\public"
     
    Option Explicit
     
    Dim oFSO,Fd,DestFold,SrcFold
    srcFold="\\2008serv\SyncBack\syncback"
    DestFold="C:\local D"
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    If oFSO.FolderExists(srcFold) Then
    set fd=oFSO.getfolder(srcFold)   
    If not oFSO.FolderExists(destFold & "SyncBack") then
    Fd.Copy destFold
     
    end if
    end if
    le problème c 'est que la copie ne ce lance pas

    mais quand je lance juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Option Explicit
     
    Dim oFSO,Fd,DestFold,SrcFold
    srcFold="\\2008serv\SyncBack\syncback"
    DestFold="C:\local D"
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    If oFSO.FolderExists(srcFold) Then
    set fd=oFSO.getfolder(srcFold)   
    If not oFSO.FolderExists(destFold & "SyncBack") then
    Fd.Copy destFold
     
    end if
    end if
    [/CODE] cela fonctionne

    voici l'erreur


  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 19
    Points : 11
    Points
    11
    Par défaut j'ai réussi
    bonjour, j'ai enfin réussi voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Set WshNetwork = WScript.CreateObject("WScript.Network")
    wshNetwork.MapNetworkDrive "Z:", "\\2008serv\" & wshNetwork.UserName
    wshNetwork.MapNetworkDrive "Y:", "\\2008serv\public"
     
    Dim oFSO,Fd,DestFold,SrcFold
    srcFold="\\2008serv\SyncBack\syncback"
    DestFold="C:\"
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    If oFSO.FolderExists(srcFold) Then
    set fd=oFSO.getfolder(srcFold)   
    If not oFSO.FolderExists(destFold & "SyncBack") then
    Fd.Copy destFold
     
    end if
    end if
    je vous remercie de l'aide que vous m'avez apportés.

Discussions similaires

  1. Ligne de commande pour copier un dossier via SSH
    Par Daikyo dans le forum Administration système
    Réponses: 4
    Dernier message: 29/09/2009, 23h21
  2. Meilleur code pour copier un dossier
    Par ILP dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 21/07/2009, 12h00
  3. Fonction pour copier un dossier et son contenu
    Par wassimbik dans le forum Langage
    Réponses: 2
    Dernier message: 15/04/2009, 12h28
  4. macro pour copier un fichier excel dans un dossier
    Par mery13 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/03/2009, 14h36
  5. Script VBS pour copier "Mes documents"
    Par DiabloZizi dans le forum Windows
    Réponses: 1
    Dernier message: 06/03/2006, 23h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo