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 :

Transformer un .bat en vbs


Sujet :

VBScript

  1. #1
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 102
    Par défaut Transformer un .bat en vbs
    Bonjour à tous,

    je dois transformer un .bat en vbs.
    le script déplace les fichiers.csv (001,002,003,004,005) de "E:\CT-Rapport" en fonction du nom du serveur et du site Paris ou Province.

    001,002,004 = Paris
    003,005 = Province


    Le .bat


    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
    E:
     
    cd E:\CT-Rapport
     
    If %computername% == Mach1 goto Paris
     
    If %computername% == Mach2 goto Province
     
    :Paris
    move 001.*.csv E:\CT-Rapport\CSV_Paris
    move 002.*.csv E:\CT-Rapport\CSV_Paris
    move 004.*.csv E:\CT-Rapport\CSV_Paris
    goto END
     
    :Province
    move 003.*.csv E:\CT-Rapport\CSV_Province
    move 005.*.csv E:\CT-Rapport\CSV_Province
    goto END
     
    :END

    Le .vbs que j'ai commencé, mais je voudrais faire simple et ça passe pas ?



    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
    39
    40
    41
    Dim oFSO, fso
    Dim serveur1,serveur2,NomMachine
    Dim oShell, objShell 
    Set objFSO = CreateObject("Scripting.FileSystemObject")
     
    Set fso = Wscript.CreateObject("Scripting.FileSystemObject")
     
    serveur1 = "Mach1"
    serveur2 = "Mach2"
     
    Set Ws = CreateObject("WScript.Shell")
    Set ProcessEnv = Ws.Environment("Process")
    NomMachine = ProcessEnv("COMPUTERNAME")
     
    'MsgBox NomMachine ,64,"NomMachine"
     
    If NomMachine = serveur1 then call Deplacement1
    If NomMachine = serveur2 then call Deplacement2
     
    sub Deplacement1
     
    Set fso = Wscript.CreateObject("Scripting.FileSystemObject")
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    oFSO.MoveFile "E:\CT-Rapport\001.*.csv","E:\CT-Rapport\CSV_Paris"
     
    end sub
     
    sub Deplacement2
     
    Set fso = Wscript.CreateObject("Scripting.FileSystemObject")
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    oFSO.MoveFile "E:\CT-Rapport\003.*.csv","E:\CT-Rapport\CSV_Province"
     
    end sub
     
     
    '-------------------
    ' Corps su script
    '-------------------
    Deplacement1
    Deplacement2

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

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut
    Salut;

    Ton code comporte pas mal de variables Objet déclarées et non utilisées, cela ne fait que charger la mémoire pour rien.
    Prends alors l'habitude d'utiliser la clause Option Explicit qui permet, entre autres, d'avertir si une variable utilisée n'est pas déclarée.
    Puis tu fais 2 fois appel à chacune des procédures (Sub) de déplacement. Si la première fois elle a fait correctement le boulot demandé, la seconde fois elle te renvoie une erreur (fichier introuvable).
    Voici une autre version de ton
    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
    Option Explicit
     
    Const Serveur1 = "Mach1"
    Const Serveur2 = "Mach2"
    Dim objWMIService, strComputer, colItems, objItem, WS, oFSO
     
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    strComputer="."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
    Set colItems = objWMIService.ExecQuery( _
        "SELECT * FROM Win32_ComputerSystem",,48) 
    For Each objItem in colItems 
        If LCase(objItem.Caption) = LCase(Serveur1) Then
    	 Call Deplacement1
        ElseIf LCase(objItem.Caption) = LCase(Serveur2) Then
    	 Call Deplacement2
        End If	 
    Next
     
    '============================= 
    Sub Deplacement1
    On Error Resume Next
    oFSO.MoveFile "E:\CT-Rapport\001.*.csv","E:\CT-Rapport\CSV_Paris\"
    End Sub
    '============================= 
    Sub Deplacement2
    	On Error Resume Next
    	oFSO.MoveFile "E:\CT-Rapport\003.*.csv","E:\CT-Rapport\CSV_Province\"
    End Sub
    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

  3. #3
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 102
    Par défaut Transformer un .bat en vbs
    Merci l'autodicate,

    je prends note de tes remarques. J'ai utilisé ton code, c'est parfait.

    Encore merci

    PAB/31/SAB

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

Discussions similaires

  1. Transformer un .bat en .vbs
    Par PAB/31/SAB dans le forum VBScript
    Réponses: 0
    Dernier message: 30/07/2012, 18h05
  2. Batch .bat ou .vbs de full restoration (.bkp) d'une bdd
    Par Moostiq dans le forum Administration
    Réponses: 23
    Dernier message: 15/11/2010, 17h57
  3. [WS 2003] executer un script "bat" ou "vbs" sur tous les pc d'une UO
    Par devlopassion dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 23/03/2010, 14h39
  4. [conversion bat en vbs]
    Par duchmul dans le forum VBScript
    Réponses: 2
    Dernier message: 20/01/2010, 10h43
  5. fichier bat ou vbs
    Par PhilippeIEP dans le forum VBScript
    Réponses: 16
    Dernier message: 31/10/2008, 13h29

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