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 :

automatiser une récupération de fichier


Sujet :

VBScript

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut automatiser une récupération de fichier
    bonjour a tous
    bon moi je suis ici car je me suis mi a VBS cet aprem vers 14h+/- et j'ai toujours pas décrocher, je suis en train de m'arracher les cheveux et de me retourner le cerveau (du moins ce qu'il en reste...)

    mon souci c'est que je voudrai automatiser une procédure pour récupéré des fichiers sur un réseau ( jusque là sa va..), il me faut les copier sur une clé, les suprimé du reseau (la c'est toujours bon), et il me faut en refaire une autre copie dans un autre endroit du reseau, le souci pour la dernière manip c'est que c'est une sauvegarde "longue durée" sur le DD du serveur et que pour l'instan,t avec la méthode manuelle les dossiers été classé en fonction de la date et de l'heure de récupération... et ça je sais pas le faire autre que manuellement...
    help !!

    bon je sais que mes explication sont pas très claire alor je vais tenté un shema d'arboréscence pour me faire comprendre:
    (z:\) => mon lecteur réseau
    (f:\) => ma clé usb

    shema avant la manip:

    z:\ |emis\|054XXX415(dans chacun de ces fichiers il y a des commandes.xml)
    .....|recu
    .....|svg\ |054XXX415\08-01-08-08h30\commande.xml

    le dossier svg est un dossi de sauvegarde, le dossier emis c les commandes qu'on doi transféré, et 552XXX320 correspond a une désignation de fournisseur.
    la dernière ligne est un exemple d'une sauvegarde de commande pour le fournisseur 054XXX415 qu'on a envoyé le 08 janvier 2008 a 8h30...

    Et c'est ICI mon problème car avec VBS quand on fait: Name = Now
    parce que les séparateur de la date sont des / et que ce symbole n'est pas utilisable pour des nom de dossiers....
    ensuite quand je fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim un,deu
    Set un = CreateObject("Scripting.FileSystemObject")
    Set deu=un.CreateFolder ("z:\svg\054XXX415\newfolder")
    je voudrai savoir se que je doi taper comme commande pour appeller mon dossier yy-mm-dd-HHhmm

    dd= day
    mm= month
    yy= year
    HH= heure (le h minuscule je le ve comme séparatif)
    mm= minutes

    si quelqu'un a une réponse ou meme un début de ligne de code je le remerci d'avance, car moi la j'avance plus....


    P.S: après vendredi midi je risque de plus avoir le net, donc de pa pouvoir répondre d'un petit momen, c pas que je vous ai oublier, je pourrai juste pas venir, merci de votre compréhention....

  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
    Par défaut
    utilise ces fonctions que tu cite ..:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Wscript.echo day(now) & "-" & month(now) & "-" & Year(now) & "-" &  hour(now) & "h" & minute(now)

  3. #3
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    Salut,

    tu as la commande replace qui remplace un caractere par un autre. Exemple :

    si tu veux conserver l'espace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    K = Replace(Left(Replace(Now, "/", "-"), 16), ":", "h")
    Msgbox K
    ou la même chose sans espace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    K = Replace(Replace(Left(Replace(Now, "/", "-"), 16), ":", "h"), " ","")
    Msgbox K
    ou la même chose avec un tiret à la place de l'espace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    K = Replace(Replace(Left(Replace(Now, "/", "-"), 16), ":", "h"), " ","-")
    Msgbox K
    A++
    Plus tu pédales moins vite, moins t'avances plus vite.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    merci de vos réponses vous m'avez deja bien filé un coups de main...
    mais il me reste un souci, c'est pour utilisé la variable K (ce qu'elle représente en fait) comme nom de dossier...
    pour l'instant j'ai sa mais sa marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    K = Replace(Replace(Left(Replace(Now, "/", "-"), 16), ":", "h"), " ","-")
    Dim oFSO,oFld 
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFld=oFSO.CreateFolder ("f:\K")
    Msgbox K
    sa non plus sa marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    K = Replace(Replace(Left(Replace(Now, "/", "-"), 16), ":", "h"), " ","-")
    Dim oFSO,oFld 
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFld=oFSO.CreateFolder ("f:\& K")
    Msgbox K
    mais c'est pour vous donnez un aperçu de ce que j'aimerai comme résultat...
    merci encore...

    P.S: j'ai mis le Msgbox en fin de code meme si sa sert a rien car au moins je sais que l'execution du script est terminé

    édit: j'ai parler avec un collègue qui fait du php et il me dit que se que je ve faire c'est de la concaténnation, je sais pas si sa pourra vous aider...

  5. #5
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    Attention,

    K est une variable qui réécrit "Now" en prennant les 16 caractères de gauche de Now, puis remplace les "/" par des "-", puis premplace ":" par "h". K pourrait aussi bien s'appeler toto par exemple.
    Donc au lieu de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oFld=oFSO.CreateFolder ("f:\& K")
    essaie ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oFld=oFSO.CreateFolder ("f:\" & K & )
    le caractère & sert à concatener.

    A++
    Plus tu pédales moins vite, moins t'avances plus vite.

  6. #6
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    essaie ceci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oFld=oFSO.CreateFolder ("f:\" & K & )
    le caractère & sert à concatener.
    Je pense qu'il devrait plutot essayer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oFld=oFSO.CreateFolder ("f:\" & K)
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    MERCI !!
    avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oFld=oFSO.CreateFolder ("f:\" & K)
    sa marche nikel

    parcontre sa marque: 10-01-2008-16h41
    au lieu de 08-01-10-16h41
    il faut que j'utilise les commande day, month... séparément pour changer le format? ou ya une commande qui permet de le faire d'un coup?
    comment je peu avoir l'année uniquement sur 2 chiffre au lieu de 4 ???

    merci encore vous m'avez deja super aider...

  8. #8
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Un peu de lecture http://www.w3schools.com/vbscript/vb..._functions.asp
    Regarde FormatDateTime.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    ced600 mais j'étais deja aller faire un tour laba, ya pas le format qui m'intérresse, m'enfin c'est pas grave.... a force de trifouillé j'ai trouver une solution pour avoir la date dans l'ordre que je ve...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    d1 = Replace(Replace(left(Replace(Now, "/", "-"), 2), ":", "h"), " ","-")
    d = Replace(Replace(right(Replace(d1, "/", "-"), 2), ":", "h"), " ","-")
    m1 = Replace(Replace(left(Replace(Now, "/", "-"), 5), ":", "h"), " ","-")
    m = Replace(Replace(right(Replace(m1, "/", "-"), 2), ":", "h"), " ","-")
    y1 = Replace(Replace(left(Replace(Now, "/", "-"), 10), ":", "h"), " ","-")
    y = Replace(Replace(right(Replace(y1, "/", "-"), 2), ":", "h"), " ","-")
    K = "" & y & "-" & m & "-" & d
    T1 = Replace(Replace(left(Replace(Now, "/", "-"), 16), ":", "h"), " ","-")
    T = Replace(Replace(right(Replace(T1, "/", "-"), 5), ":", "h"), " ","-")
    W = "" & K & "-" & T 
    Msgbox W
    ya surement plus simple mais pourquoi s'embété a faire simple quand on peu tout compliquer

    bon, parcontre vu que c'est pas en moins de 48h qu'on aprend le VBS j'ai encore un souci.... j'ai plus ou moins trouver comment marche les if et les then
    mais je trouve pas les Goto et les Lbl... oui je sais sa c'est en Qbasic... mais le langage calculette casio c'est le seul que je connai
    donc pour ce qui connaitré pas le Qbasic le Goto est une commande qui permet d'aller directement au Lbl qui s'y raporte sans exectuter les ligne de commande qu'il ya a sur le chemin...
    ex: Goto 1 va se rapporter au Lbl 1
    sa permet de constituer une boucle si goto 1 est en fin de programe et lbl 1 en debut... ou en fonction d'une condition de passer a une parti ou une autre du programme si celle si est rempli ou pas
    ex: if a=0 => goto 0
    .....if a>0 => goto 1

    je sais pas si je suis très clair... m'enfin pour ceux qui ont réussi a me suivre je cherche cette fonction en VBS, elle doit bien exister non?

    P.S: j'ai trouver des fonction boucles type "do...loop" ou "for(each)...next" ou même "while...wend" mais se sont des fonction uniquement boucle, elle ne me permette pas de passer a une étape suivant sans éffectuer les commande entre... du moins c'est se que j'ai compris, après est ce que je me trompe???


    P.S.2: quand on créer une Msgbox comment fait pour mette un titre dans la barre de titre??

    merci, et dsl de continué a vous embéter malgré toutes les réponses que vous avez pu m'apporter, vous m'avez bien sorti de la merde soit dit en passant

  10. #10
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    goto = BAN

    C'est inutile. Tout ce que tu veux faire avec des goto tu peux le gérer autrement.
    Par exemple en mettant le code dans une fonction et en l'applelant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function essais (parametre)
    essais = parametre + 1
    End Function
    C'est une fonction qui prend un parametre, fait une incrementation et renvois la valeur incrémenté.

    Tu peux faire du pseudo objet (il n'y a pas d'heritage). Des structures aussi.

    Si tu n'as pas trouvé le format qu'il te convient, c'est soit qu'il n'existe pas, soit il existe mais W3School ne liste pas tout.

    P.S.2: quand on créer une Msgbox comment fait pour mette un titre dans la barre de titre??
    Je t'invite à taper msgbox vbs dans google.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  11. #11
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    Salut,

    tu peux utiliser DatePart pour découper une date exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    DateX = Now
    z = Right(DatePart("yyyy", DateX), 2) & "-" & DatePart("m", DateX) & "-" & DatePart("d", DateX) & "-" & DatePart("h", DateX) & "h" & DatePart("n", DateX)
    MsgBox Z
    Pour créer les Msgbox, tu peux utiliser l'éditeur VBS Factory en plus c'est gratuit :

    http://www.toocharger.com/telecharge...ctory/7692.htm

    Edite ton script avec VBS Factory et fait un CTRL+D, tout ce dont tu as besoin s'y trouve.

    A++
    Plus tu pédales moins vite, moins t'avances plus vite.

  12. #12
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Edite ton script avec VBS Factory et fait un CTRL+D, tout ce dont tu as besoin s'y trouve.
    Magnifique !!!!!
    Je ne connaissais pas, je ne pensais pas que cela existait.
    Je chercher justement de koi débuguer avec un vrais débugguer en pas à pas !!!!!!
    En plus il a l'air d'avoir pas mal de fonctionnalité intéressante.
    You're a
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  13. #13
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    [QUOTE=ced600;2838192]
    Je chercher justement de koi débuguer avec un vrais débugguer en pas à pas !!!!!!
    QUOTE]

    Pour débugger pas à pas je préfère utiliser VBSEdit, je n'ai pas trouvé mieux :

    http://www.toocharger.com/telecharge...edit/14511.htm

    en plus il existe des exemples de VBS tout fait. Seul problème c'est payant et contrairement à VBS Factory, tu ne peux pas éditer de HTA...donc je jongle avec les 2 suivant les besoins.

    A++
    Plus tu pédales moins vite, moins t'avances plus vite.

  14. #14
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Merci mais je ne compte pas acheter un debuger
    C'est pas moi qui es maitre du budget.
    Je ne suis qu'un simple prestataire
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  15. #15
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    CED600, va voir tes MP.

    A++
    Plus tu pédales moins vite, moins t'avances plus vite.

Discussions similaires

  1. Automatiser une importation de fichier Excel
    Par pascalb41 dans le forum SSIS
    Réponses: 2
    Dernier message: 25/09/2014, 17h03
  2. [XL-2003] Automatiser la récupération de fichiers .txt
    Par Maxime082 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/05/2011, 09h35
  3. [CFT] Initialiser une récupération de fichier
    Par florentB dans le forum Protocoles
    Réponses: 1
    Dernier message: 16/02/2011, 14h15
  4. Réponses: 1
    Dernier message: 05/03/2007, 20h51
  5. Réponses: 8
    Dernier message: 21/04/2006, 11h02

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