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 :

lancement de plusieurs commandes DOS à la suite


Sujet :

VBScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 78
    Points : 45
    Points
    45
    Par défaut lancement de plusieurs commandes DOS à la suite
    Bonjour,

    Je souhaiterais faire un script VBS me permettant de copier un fichier (en changeant son nom pour y inclure la date et l'heure) et de mettre ce fichier dans une archive auto-extractible 7Zip.
    J'ai pratiquement réussi, mais je bloque sur un point :
    - Soit je fais afficher les fenêtres de commandes DOS (avec le deuxième paramètre a 1 de la méthode .run de l'objet shell). Dans ce cas mon script fonctionne, mais je suis obligé d'intervenir manuellement en pressant une touche pour fermer cette fenêtre.
    - Soit je ne fais pas afficher les fenêtres DOS (paramètre a 0) et dans ce cas il n'y a uniquement que la première commande DOS qui est effectuée (copie du fichier source) et pas la suite (renommage et création du Zip).

    quelqu'un peut-il m'aider ?

    merci

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Call CopieFichier_7Zip ("D:\Documents\Dev\Access\T21\10T211\","G:\GRP_CNQ\Trisomie\10T211\BackUpSaisie\","10T211_Ttment",".mdb","C:\ProgramFiles\7-Zip\7z.exe")
     
    Public Sub CopieFichier_7Zip(RepSource, RepCible, NomFic, ExtFic, Path7Zip)
    Dim sDate, sMois, sJour, sHeure, sMin, sSec
     
    'Récupération de la date et de l'heure pour le nom du fichier
    If Len(Month(Now)) = 1 Then sMois = "0" & Month(Now) Else sMois = Month(Now)
    If Len(Day(Now)) = 1 Then sJour = "0" & Day(Now) Else sJour = Day(Now)
    If Len(Hour(Now)) = 1 Then sHeure = "0" & Hour(Now) Else sHeure = Hour(Now)
    If Len(Minute(Now)) = 1 Then sMin = "0" & Minute(Now) Else sMin = Minute(Now)
    If Len(Second(Now)) = 1 Then sSec = "0" & Second(Now) Else sSec = Second(Now)
    sDate = Year(Now) & "_" & sMois & "_" & sJour & "_"  & sHeure & "_"  & sMin & "_" & sSec
     
    Call CopieFichier_7Zip_CopyDos(RepSource, RepCible, NomFic, ExtFic, Path7Zip, sDate)
    Call CopieFichier_7Zip_RenameDos(RepSource, RepCible, NomFic, ExtFic, Path7Zip, sDate)
    Call CopieFichier_7Zip_CreeArchive(RepSource, RepCible, NomFic, ExtFic, Path7Zip, sDate)
    End Sub
     
    Public Sub CopieFichier_7Zip_CopyDos(RepSource, RepCible, NomFic, ExtFic, Path7Zip, sDate)
    'Copie du fichier source sous un nom temporaire
    Dim oShell
    Set oShell = WScript.CreateObject ("WSCript.shell")
    oShell.run "CMD /K COPY " & RepSource & NomFic & ExtFic & " " & RepSource & "Tempo_" & sDate & ExtFic,1,true
    End Sub
     
    Public Sub CopieFichier_7Zip_RenameDos(RepSource, RepCible, NomFic, ExtFic, Path7Zip, sDate)
    'Renommage du fichier temporaire
    Dim oShell
    Set oShell = WScript.CreateObject ("WSCript.shell")
    oShell.run "CMD /K REN " & RepSource & "Tempo_" & sDate & ExtFic & " " & NomFic & "_" & sDate & ExtFic,1,true
    End Sub
     
    Public Sub CopieFichier_7Zip_CreeArchive(RepSource, RepCible, NomFic, ExtFic, Path7Zip, sDate)
    'Création de l'archive
    Dim oShell
    Set oShell = WScript.CreateObject ("WSCript.shell")
    oShell.run "CMD /K " & Path7Zip & " a -sfx " & RepCible & NomFic & "_" & sDate & ".exe"& " -ssw " & RepSource & NomFic & "_" & sDate & ExtFic ,1,true 
    End Sub

  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 040
    Points
    20 040
    Par défaut
    Et pourquoi ne pas copier/renommer ton fichier directement en VBS ?
    Comment copier un fichier ?
    Comment déplacer/renommer un fichier ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 78
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par bbil Voir le message
    Et pourquoi ne pas copier/renommer ton fichier directement en VBS ?
    Comment copier un fichier ?
    Comment déplacer/renommer un fichier ?

    mais oui c'est une bonne idée, merci.

    Je me demande si mes soucis ne viennent pas du fait que je n'ai pas tous les droits sur mon ordi (je suis à mon travail)

    Voila mon 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Call CopieFichier_7Zip ("D:\Documents\Dev\Access\T21\10T211\","G:\GRP_CNQ\Trisomie\10T211\BackUpSaisie\","10T211_Ttment",".mdb","C:\ProgramFiles\7-Zip\7z.exe")
     
    Public Sub CopieFichier_7Zip(RepSource, RepCible, NomFic, ExtFic, Path7Zip)
    Dim sDate, sMois, sJour, sHeure, sMin, sSec
    Dim iPause
    If Len(Month(Now)) = 1 Then sMois = "0" & Month(Now) Else sMois = Month(Now)
    If Len(Day(Now)) = 1 Then sJour = "0" & Day(Now) Else sJour = Day(Now)
    If Len(Hour(Now)) = 1 Then sHeure = "0" & Hour(Now) Else sHeure = Hour(Now)
    If Len(Minute(Now)) = 1 Then sMin = "0" & Minute(Now) Else sMin = Minute(Now)
    If Len(Second(Now)) = 1 Then sSec = "0" & Second(Now) Else sSec = Second(Now)
    sDate = Year(Now) & "_" & sMois & "_" & sJour & "_"  & sHeure & "_"  & sMin & "_" & sSec
     
    Call CopieFichier_7Zip_CopieVBS(RepSource, RepCible, NomFic, ExtFic, Path7Zip, sDate)
    Call CopieFichier_7Zip_CreeArchive(RepSource, RepCible, NomFic, ExtFic, Path7Zip, sDate)
    End Sub
     
    Public Sub CopieFichier_7Zip_CopieVBS(RepSource, RepCible, NomFic, ExtFic, Path7Zip, sDate)
    Dim fso
    Set fso = CreateObject("Scripting.FileSystemObject")
    fso.copyfile RepSource & NomFic & ExtFic, RepSource & NomFic & "_" & sDate & ExtFic
    End Sub
     
    Public Sub CopieFichier_7Zip_CreeArchive(RepSource, RepCible, NomFic, ExtFic, Path7Zip, sDate)
    Dim oShell
    Set oShell = WScript.CreateObject ("WSCript.shell")
    oShell.run "CMD /K " & Path7Zip & " a -sfx " & RepCible & NomFic & "_" & sDate & ".exe"& " -ssw " & RepSource & NomFic & "_" & sDate & ExtFic ,0,true
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Exécution de plusieurs commandes DOS en java
    Par tomzdi dans le forum Général Java
    Réponses: 3
    Dernier message: 03/07/2013, 19h27
  2. Réponses: 12
    Dernier message: 14/07/2009, 17h34
  3. Réponses: 5
    Dernier message: 24/03/2009, 10h20
  4. script qui lance plusieurs commandes dos ?
    Par casier dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 13/08/2007, 07h47
  5. [.bat][FOR][IF]executer plusieurs commandes a la suite
    Par ¤FRIX¤ dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 23/03/2004, 09h24

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