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

Scripts/Batch Discussion :

creation service windows - quel language [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut creation service windows - quel language
    Bonjour à tous,

    Je dois créer un service windows très simple (transfert de fichier d'un dossier vers un autre), mais avec quelques impératifs:
    - dois fonctionner sur tous les windows depuis XP jusqu'à windows 10 (sur 32 ou 64 bits)
    - ne pas à avoir à installer autre chose type MAJ .net ect (car installé sur des PC isolés du reseau et aussi par souci de facilité de déploiement).

    Quel est le meilleur langage pour développer cela? j'ai des connaissances en C# et vb.

    Pour info mon petit service devra donc déplacer des fichiers de type .txt d'un dossier A vers un dossier B, à intervalle de temps régulier ou à heure fixe.

    Pour definir les chemins d'accès des dossiers A et B et le délai de synchro, je pense passer par un fichier .INI

    Merci pour vos lumières,

    @+

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 255
    Par défaut
    Tu devrais pouvoir le faire en vba, il te faudra joindre les dlls. Ou peut-être en python, je ne sais pas si on peut utiliser python sans l'avoir installé (juste en prenant l'exe et les dépendances dll) à voir.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut
    Salut

    merci pour tes lumières.

    Sinon, vue la "simplicité" de ce que je veux faire, j'ai essayé de le faire avec un batch lancé avec le plannificateur de tache. Mais je n'arrive pas à faire ce que je veux.

    Code bat : 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
     
    @ECHO 
     
    :: Détermine si Win32 ou Win64
    SET ProgFil=%ProgramFiles(x86)%
    IF NOT "%ProgFil%"=="" GOTO Start
    SET ProgFil=%ProgramFiles%
     
     
    :Start
     
    :: Verifie la présence du logfile, sinon le créer
    :: A faire (je bloque la dessus)
     
     
    :: Indiquer le type de fichier .txt ou .csv
    SET Type=".txt"
    :: Indiquer le`chemin du dossier source où les fichiers QC sont exportés depuis MPL
    SET Source="C:\Test"
    :: Chemin où se trouve le WatchedFolder du communicatorClient (à ne pas modifier)
    SET Dest="%ProgFil%\Microgenics\CommunicatorClient\WatchedFolder"
     
    :: A MODIFIER mettre plutot en place une copie puis un effacement du dossier d'origine si copie OK
    robocopy %Source% %Dest% "*%Type%" /S /MOV

    En l'etat ça déplace bien mes fichiers mais je souhaiterai faire quelque chose de plus secure:
    - Tester si le fichier Source est vide
    - s'il n'est pas vide, copier les fichiers du type selectionné, puis les coller vers la destination
    - une fois que la copie est ok, j'efface les fichiers du dossier source
    - Une fois la copie effectuer, avoir une trace de la copie dans le fichier logfile qui est à la racine du batch
    - idem si la copie ne s'effectue pas (fichier source vide ou erreur de copie), le tracer vers le logfile.

    Faisable en batch?

    Merci

  4. #4
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 247
    Par défaut
    Je pense que c'est faisable en batch.

    Je te déplace la discussion dans le bon forum

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut
    merci

    j'espère que quelques pro du batch vont venir m'aiguiller car la je seche

  6. #6
    Membre émérite Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Par défaut
    Bonjour,

    Est-ce que ceci convient?
    Code bat : 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
    @echo off & cls
     
    :: Détermine si Win32 ou Win64
    SET ProgFil=%ProgramFiles(x86)%
    IF NOT "%ProgFil%"=="" GOTO Start
    SET ProgFil=%ProgramFiles%
     
    :Start
     
    :: Verifie la présence du logfile, sinon le créer
    :: A faire (je bloque la dessus)
     
     
    SET "Log_File=logs.txt"
    :: Indiquer le type de fichier .txt ou .csv
    SET Type=".txt"
    :: Indiquer le`chemin du dossier source où les fichiers QC sont exportés depuis MPL
    SET "Source=C:\Test"
    :: Chemin où se trouve le WatchedFolder du communicatorClient (à ne pas modifier)
    REM SET "Dest=%ProgFil%\Microgenics\CommunicatorClient\WatchedFolder"
    SET "Dest=%current_path_modified%\copie"
     
    SET current_path=%~dp0
    SET current_path_modified=%current_path:~0,-1%
     
    if exist "%current_path_modified%\%Log_File%" del /F /S /Q "%current_path_modified%\%Log_File%"
     
    for /f "delims=" %%a in ('dir /b "%Source%"') do SET Current_Directory=%%a
     
    IF "%Current_Directory%"=="" (
        echo %Source% est vide!
        echo %Source% est vide!>>%current_path_modified%\%Log_File%
    ) ELSE (
        :: A MODIFIER mettre plutot en place une copie puis un effacement du dossier d'origine si copie OK
        if not exist "%Dest%" md "%Dest%"
        robocopy "%Source%" "%Dest%" "*%Type%" /S /MOV /log:"%current_path_modified%\%Log_File%"
        if exist "%Source%" rd /S /Q "%Source%"
    )
     
    pause
    exit

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut
    Salut Devilsnake,

    Merci pour ton aide. Je teste cela dans la journée et je te tiens au courant.

    Par contre un point que je comprend pas trop dans ton code: tu tests si le logfile est présent et si c'est le cas tu l'effaces? Désolé je suis pas un expert du codage.

    Par exemple que fait ce code:

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if exist "%current_path_modified%\%Log_File%" del /F /S /Q "%current_path_modified%\%Log_File%"
     
    for /f "delims=" %%a in ('dir /b "%Source%"') do SET Current_Directory=%%a
     
    IF "%Current_Directory%"=="" (
        echo %Source% est vide!
        echo %Source% est vide!>>%current_path_modified%\%Log_File%

    Ce que je veux faire, c'est au lancement du batch, vérifier si le logfile est présent et si ce n'est pas le cas, le créer (premier lancement du batch par exemple).
    Par contre si le logfile est présent, je veux tracer ce qui a était fait avec par exemple:
    > le 22 mars 2016 à 22h: copie réussie
    > le 21 mars 2016 à 22h: erreur de copie (fichier source vide)
    ect...

    C'est faisable un truc dans ce genre? (je parle tu traçage des actions).

    En tout cas encore merci pour ton aide,

  8. #8
    Membre émérite Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Par défaut
    En gros si le fichier de log existe déjà quand on lance le .bat, ça veut dire que ce fichier contient les logs de la fois précédente ou tu as lancé le .bat.
    Du coup pour moi, je ne vois pas l'intérêt de garder les anciens logs et de se retrouver avec un fichier de XX Mo de logs mais si tu veux ajouter les lignes au fur et à mesure des exécutions tu n'as qu'à commenter cette ligne.

    Le code que tu as indiqué est la partie qui vérifie si le dossier %Source% est vide ou non via la boucle FOR.
    Pour simplifier le FOR dit: Ce que retourne la commande DIR, tu le mets dans la variable Current_Directory.
    Le DIR signifie: Fais moi le listing du contenu du dossier %Source%
    Et enfin le IF qui suis permet de vérifier si DIR a trouvé quelque chose dans %Source% en disant:
    Si %Current_Directory% est vide, alors le dossier est vide, sinon %Current_Directory% aura comme valeur les noms des fichiers présents dans %Source%.
    Le premier ECHO qui suis affiche le texte "%Source% est vide!" et le second écrit "%Source% est vide!" dans le fichier de logs.

    Pour les logs de copie j'ai utilisé le paramètre de ROBOCOPY, ce n'est pas un log "personnalisé" mais c'est possible d'en faire un comme tu le désires, c'est juste plus long à faire.

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut
    salut

    pour le log, etant donné que la copie se passe qu'une fois par jour, le fichier ne sera pas très lourd au final. C'est donc pour cela que je ne veux pas le purger.

    Dans ton code, que se passe t-il si robocopy n'arrive pas à copier les fichiers? c'est tracé dans le log? les fichiers a déplacer ne peuvent pas se prendre en route?

  10. #10
    Membre émérite Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Par défaut
    Essaye de copier un répertoire vide ou inexistant et tu verras xD

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut
    Hello

    Bon j'ai testé ton script et je l'ai adapté à mon cas. Ça donne cela:

    Code bat : 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
     
    @echo
     
    :: Détermine si Win32 ou Win64
    SET ProgFil=%ProgramFiles(x86)%
    IF NOT "%ProgFil%"=="" GOTO Start
    SET ProgFil=%ProgramFiles%
     
    :Start
     
    SET "Log_File=logs.txt"
    :: Indiquer le type de fichier .txt ou .csv
    SET Type=".txt"
    :: Indiquer le`chemin du dossier source où les fichiers QC sont exportés depuis MPL
    SET Source="C:\Test"
    :: Chemin où se trouve le WatchedFolder du communicatorClient (à ne pas modifier)
    SET Dest="%ProgFil%\Microgenics\CommunicatorClient\WatchedFolder"
     
    SET current_path=%~dp0
    SET current_path_modified=%current_path:~0,-1%
     
    :: Verifie la présence tu fichier de logfile, sinon il la crée
    IF NOT EXIST "%current_path_modified%\%Log_File%" COPY NUL "%current_path_modified%\%Log_File%"
     
    :: Teste si le fichier Source est vide.
    FOR /f "delims=" %%a in ('dir /b "%Source%"') DO SET Current_Directory=%%a
    :: Si OUI, on le liste dans le logfile (PAS FONCTIONNEL)
    IF "%Current_Directory%"=="" (
    	SET TraceSourceVide = %date% : %time:~0,5% : Le dossier %Source% est vide.
    	ECHO %TraceSourceVide% >> %current_path%\%Log_File%
    :: Si NON, on procéde au déplacement du fichier
    ) ELSE (
        robocopy "%Source%" "%Dest%" "*%Type%" /S /MOV 
    :: et on liste dans le LogFile, la date & l'heure + le nombre de fichier copié (A FINIR)
     
    )
     
    pause
    exit

    J'ai encore des soucis avec l'enregistrement des actions dans le logfile.

  12. #12
    Membre émérite Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Par défaut
    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    :: Verifie la présence tu fichier de logfile, sinon il la crée
    IF NOT EXIST "%current_path_modified%\%Log_File%" COPY NUL "%current_path_modified%\%Log_File%"
    Ne sert à rien tu peux supprimer ou commenter.
    PS: commente plutôt avec "REM" que "::"

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	SET TraceSourceVide = %date% : %time:~0,5% : Le dossier %Source% est vide.
    	ECHO %TraceSourceVide% >> %current_path%\%Log_File%
    >>
    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    ECHO %date% : %time:~0,5% : Le dossier %Source% est vide.>> %current_path%\%Log_File%

    J'ai encore des soucis avec l'enregistrement des actions dans le logfile.
    Euh ouais ok mais bon si tu ne précises pas on ne va pas avancer...

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut
    Salut,

    Désolé de ne pas être assez précis, je vais donc essayer de détailler un peu plus mon souhait.

    Robocopy est a priori capable de logger ses actions ou éventuelles erreurs. Fort de ce constat je souhaiterai les logger dans mon fichier Logs.txt, sous la forme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    date : heure : Robocopy, 12 fichiers copiés avec succès
    date : heure : Robocopy, erreurs XX (copie impossible)
    date : heure : Le dossier C:\Test est vide.
    Un système de log sous cette forme est possible? On peut "recuperer" les code erreurs de robocopy ou son nombre de fichier copiés et l'écrire dans un fichier spécifique?

    Merci pour ton aide,

  14. #14
    Membre émérite Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Par défaut
    Obligé d'utiliser ROBOCOPY ou on peut utiliser une autre commande?

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut
    non aucune obligation d’utiliser robocopy, c'est juste que je voulais que ce soit utilisable sur toutes les versions de windows depuis XP inclus. Comme il est inclus depuis Vista et que pour XP il suffit juste de mettre l'exécutable de robacopy à la racine du batch... cela m'avait semblait simple.

    L'essentiel est de tracer les actions et surtout de ne pas perdre de fichier si la copie plante....

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut
    Bon, j'ai avancé à partir de ton exemple.

    Pour l'instant, cela donne ça:

    Code bat : 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
     
    @echo OFF & CLS
     
    REM Détermine si Win32 ou Win64
    SET ProgFil=%ProgramFiles(x86)%
    IF NOT "%ProgFil%"=="" GOTO Start
    SET ProgFil=%ProgramFiles%
     
    :Start
     
    SET "Log_File=logs.txt"
    REM Indiquer le type de fichier .txt ou .csv
    SET Type=".txt"
    REM Indiquer le`chemin du dossier source où les fichiers QC sont exportés depuis MPL
    SET Source= C:\Test
    REM Chemin où se trouve le WatchedFolder du communicatorClient (à ne pas modifier)
    SET Dest="%ProgFil%\Microgenics\CommunicatorClient\WatchedFolder"
     
    SET current_path=%~dp0
     
    REM Verifie la présence tu fichier de logfile, sinon il la crée
    IF NOT EXIST "%current_path%%Log_File%" COPY NUL "%current_path%%Log_File%"
     
    REM Teste si le dossier Source est vide.
    for /f "delims=" %%a in ('dir /b %Source%') do SET Current_Directory=%%a
    REM Si OUI, on le liste dans le logfile
    IF "%Current_Directory%"=="" (
        ECHO %date% : %time:~0,5% : Le dossier %Source% est vide. >> "%current_path%\%Log_File%"
    REM Si NON, on procéde au déplacement du fichier
    ) ELSE (
    	robocopy %Source% %Dest% "*%Type%" /S /MOV
    REM et on liste dans le LogFile, la date & l'heure + le nombre de fichier copié (A peaufiner)
    	ECHO %date% : %time:~0,5% : Fichiers copiés. >> "%current_path%\%Log_File%"
    REM puis on vide le fichier Source s'il reste d'autres types de fichiers(A finir)
     
    )
    exit

    Donc la copie fonctionne et log aussi mais ce dernier est encore trop sommaire (pas de détail si erreur, ni du nombre de fichiers copiés).

    Il me restera aussi la procédure de purge du fichier source après la copie.

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut
    hello

    pas d'idée pour le log de robocopy que je souhaiterai faire? (ou sans robocopy si pas possible avec).

    Toute aide sera la bienvenue

    a l'avance merci

  18. #18
    Membre émérite Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Par défaut
    Salut,
    Désolé pour le délai de réponse j'étais débordé.

    Je te donne un bout de code que je viens de faire, il te faudra donc l'intégrer et l'adapter et surtout le tester:

    Code bat : 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
    @echo on&cls
    setlocal EnableDelayedExpansion
    set "source=CHEMINVERSUNFICHIER"
    set "destination=CHEMINVERSUNREPERTOIRE"
    set "logfile=CHEMINVERSUNFICHIERTXT"
    xcopy /I /Y /L "%source%" "%destination%"
    if %errorlevel%==0 (
        echo %source% copié le %date% à %time:~0,8% >> %logfile%
    ) else (
        if %errorlevel%==1 set "erreur=Aucun fichier à copier n'a été trouvé"
        if %errorlevel%==2 set "erreur=Opération annulée par l'utilisateur"
        if %errorlevel%==4 set "erreur=Erreurs diverses comme manque de mémoire, espace disque insuffisant, nom de lecteur invalide ou syntaxe incorrecte"
        if %errorlevel%==5 set "erreur=Erreurs sur le disque dur"
        echo.
        echo --- ERREUR ----------------------- >> %logfile%
        echo %source% - !erreur! le %date% à %time:~0,8% >> %logfile%
    )
    pause
    exit

    Redis moi si cela fonctionne et te correspond.

  19. #19
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut
    Salut devilsnake

    Merci pour ton retour. Je teste cela et je reviens vers toi.

    De mon côté j'avais fais des essais avec robocopy mais ce n'est pas fonctionnel... il doit y avoir une coquille dans mon code.

    Code bat : 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
     
    @echo OFF & CLS
     
    REM Détermine si Win32 ou Win64
    SET ProgFil=%ProgramFiles(x86)%
    IF NOT "%ProgFil%"=="" GOTO Start
    SET ProgFil=%ProgramFiles%
     
    :Start
     
    SET "Log_File=logs.txt"
    REM Indiquer le type de fichier .txt ou .csv
    SET Type=".txt"
    REM Indiquer le`chemin du dossier source où les fichiers QC sont exportés depuis MPL
    SET Source= C:\Test
    REM Chemin où se trouve le WatchedFolder du communicatorClient (à ne pas modifier)
    SET Dest="%ProgFil%\Microgenics\CommunicatorClient\WatchedFolder"
     
    SET current_path=%~dp0
     
    REM Verifie la présence tu fichier de logfile, sinon il la crée
    IF NOT EXIST "%current_path%%Log_File%" COPY NUL "%current_path%%Log_File%"
     
    robocopy %Source% %Dest% "*%Type%" /S /MOV
    call :REPORT_ERRORLEVEL
    goto :EOF
     
     
    :REPORT_ERRORLEVEL
    if ERRORLEVEL 16 echo %date% : %time:~0,5% : ***FATAL ERROR*** >> "%current_path%\%Log_File%" & goto :EOF
    if ERRORLEVEL 8 echo %date% : %time:~0,5% : **FAILED COPIES** >> "%current_path%\%Log_File%" & goto :EOF
    if ERRORLEVEL 4 echo %date% : %time:~0,5% :  *MISMATCHES* >> "%current_path%\%Log_File%" & goto :EOF
    if ERRORLEVEL 2 echo %date% : %time:~0,5% :  EXTRA FILES >> "%current_path%\%Log_File%" & goto :EOF
    if ERRORLEVEL 1 echo %date% : %time:~0,5% :  Copy successful >> "%current_path%\%Log_File%" & goto :EOF
    if ERRORLEVEL 0 echo %date% : %time:~0,5% : –no change– >> "%current_path%\%Log_File%" & goto :EOF
     
    :EOF	
    exit

  20. #20
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut
    Hello

    Ca y est, j'y suis arrivé.

    Mon code:

    Code bat : 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
     
    @echo OFF & CLS
     
    REM Détermine si Win32 ou Win64
    SET ProgFil=%ProgramFiles(x86)%
    IF NOT "%ProgFil%"=="" GOTO Start
    SET ProgFil=%ProgramFiles%
     
    :Start
     
    SET "Log_File=logs.txt"
    REM Indiquer le type de fichier .txt ou .csv
    SET Type=".txt"
    REM Indiquer le`chemin du dossier source où les fichiers QC sont exportés depuis MPL
    SET Source= C:\Test
    REM Chemin où se trouve le WatchedFolder du communicatorClient (à ne pas modifier)
    SET Dest="%ProgFil%\Microgenics\CommunicatorClient\WatchedFolder"
     
    SET current_path=%~dp0
     
    REM Verifie la présence tu fichier de logfile, sinon il la crée
    IF NOT EXIST "%current_path%%Log_File%" COPY NUL "%current_path%%Log_File%"
    REM On deplace les fichiers du dossier source vers le dossier Destination
    ROBOCOPY %Source% %Dest% "*%Type%" /S /MOV
    call :REPORT_ERRORLEVEL
    goto :EOF
     
    REM Suivi du Logfile
    :REPORT_ERRORLEVEL
    if %ERRORLEVEL% EQU 3 echo %date% : %time:~0,5% : Fichier(s) %Type% Copié(s) avec succès >> "%current_path%\%Log_File%" & goto :DEL_FILES
    if %ERRORLEVEL% EQU 2 echo %date% : %time:~0,5% : Pas de fichier(s) %Type% à copier >> "%current_path%\%Log_File%" & goto :DEL_FILES
    echo %date% : %time:~0,5% : Erreur inconnue (aucun fichiers déplacés) >> "%current_path%\%Log_File%" & goto :EOF
     
    REM supprime les fichiers restants dans le dossier source
    :DEL_FILES
    DEL %Source%\* /Q
     
    :EOF
    exit

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

Discussions similaires

  1. Quel language pour la creation d'un plug in VST
    Par marincuveur dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 04/11/2011, 18h37
  2. Sybase sous Windows : quel language pour les scripts ?
    Par lparodi dans le forum Adaptive Server Enterprise
    Réponses: 1
    Dernier message: 14/10/2010, 21h33
  3. Pb creation service windows
    Par benjamind06 dans le forum Windows XP
    Réponses: 4
    Dernier message: 26/09/2010, 03h07
  4. Script demarrage de windows quel language?
    Par jojo86 dans le forum Windows
    Réponses: 2
    Dernier message: 08/10/2009, 12h05
  5. je veux apprendre la programmation quel language choisir??
    Par existance dans le forum Débuter
    Réponses: 26
    Dernier message: 06/08/2002, 05h32

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