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 :

Fichier bat + FTP + passage parametres


Sujet :

Scripts/Batch

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 13
    Points : 3
    Points
    3
    Par défaut Fichier bat + FTP + passage parametres
    Bonjour,

    J'ai actuellement un .bat qui me permet d'acceder a du FTP grace aux commandes qui sont ds un fichier .txt. Ce programme me permet de recuperer des logs (ça marche nickel).
    Je voudrais maintenant pouvoir saisir un parametre (date au format JJMMAA) afin de dire si je veux la log du jour (monFichier.log) ou celle d'hier par ex (monFichier.log.011104)
    y a-t-il moyen pour faire la saisie une fois le fichier .bat lancé (plutot que de passer le parametre style monFichierBat.bat paramDate) ??

    Voici les textes du .bat et du .txt :

    recup_FTP.bat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo on
    cd cheminDuFichierFTPtxt
    C:\WINDOWS\SYSTEM32\ftp -n -s:ftp_130.txt XXX.XXX.XXX.XXX
    ftp_130.txt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    user LOGIN
    
    PASSWORD
    
    cd cheminDeMesLogs/log
    get monFichier1.log
    get monFichier2.log
    bye
    resultat desire : passage d'un parametre (par ex DATE) => ftp_130.txt
    donnerait alors (si DATE differente de '') :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    user LOGIN
    
    PASSWORD
    
    cd cheminDeMesLogs/log
    get monFichier1.log.DATE
    get monFichier2.log.DATE
    bye
    remarque : j'ai du mettre le chemin complet de "ftp" car mon Path s'est "cassé" ya pas longtps et j'avais pas envie de chercher comment le remettre ok, mais bon, sinon tout fonctionne nickel comme ça, comme je le disais ...

    Si vous pouviez juste me donner une piste de comment faire, ça m'aiderait bien ...

    a+,

    Leti

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut Re: Fichier bat + FTP + passage parametres
    Salut,
    Citation Envoyé par Leti
    y a-t-il moyen pour faire la saisie une fois le fichier .bat lancé (plutot que de passer le parametre style monFichierBat.bat paramDate) ??
    Set /P vDate=Entrez une date au format JJ/MM/DD

    ou pour obtenir la date du jour automatiquement
    http://laurent-dardenne.developpez.c...pt/Setdate.cmd

  3. #3
    Candidat au Club
    Inscrit en
    Juillet 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 13
    Points : 3
    Points
    3
    Par défaut Re: Fichier bat + FTP + passage parametres
    Citation Envoyé par Laurent Dardenne
    Salut,
    Citation Envoyé par Leti
    y a-t-il moyen pour faire la saisie une fois le fichier .bat lancé (plutot que de passer le parametre style monFichierBat.bat paramDate) ??
    Set /P vDate=Entrez une date au format JJ/MM/DD

    ou pour obtenir la date du jour automatiquement
    http://laurent-dardenne.developpez.c...pt/Setdate.cmd


    depuis tout a l'heure j'ai trouvé cette solution en effet pour la saisie du parametre

    toutefois, comment le transmettre au fichier .txt contenant les commandes FTP, là est mon vrai "hic" ...

    merci pour votre participation,

    Leti

  4. #4
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Tu peux créer le fichier script à la volé en utilisant les redirections
    par exemple
    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
    42
    43
    44
    45
    46
    47
    @echo off
     rem CreateCMD.cmd
     rem Crée un fichier script affichant la configuration de démarrage du service
     rem %1 nom du service
    
    if %1'==' goto error
    
    Echo Configuration du service OracleService%1 dans le HOME%CurrentHome% (%ORACLE_HOME_NAME%):
    SET Fset=%temp%\fset.cmd
    Echo Echo OFF> "%Fset%"
    
     rem affiche la variable récupérée
    set Str=Echo ORA_%1_AUTOSTART        = %%%1_AUTOSTART%% 
     rem supprime la variable déclaré dans le script GetRegSID.cmd
    set Str2=set %1_AUTOSTART=
    Echo %Str%>> "%Fset%"
    Echo %Str2%>> "%Fset%"
    	
    set Str=Echo ORA_%1_SHUTDOWN         = %%%1_SHUTDOWN%%
    set Str2=set %1_SHUTDOWN=
    Echo %Str%>> "%Fset%"
    Echo %Str2%>> "%Fset%"
    	
    set Str=Echo ORA_%1_SHUTDOWNTYPE     = %%%1_SHUTDOWNTYPE%%
    set Str2=set %1_SHUTDOWNTYPE=
    Echo %Str%>> "%Fset%"
    Echo %Str2%>> "%Fset%"
    	
    set Str=Echo ORA_%1_SHUTDOWN_TIMEOUT = %%%1_SHUTDOWN_TIMEOUT%%
    set Str2=set %1_SHUTDOWN_TIMEOUT=
    Echo %Str%>> "%Fset%"
    Echo %Str2%>> "%Fset%"
    
    Call "%Fset%"
    
    Echo.
    
    Goto end
    
    :error
    Echo Il manque un parametre
    Echo %0 nom_de_service_NT
    pause
    Goto end
    
    :end
    ou placer les fichiers dans un répertoire dédié au transfert

  5. #5
    Candidat au Club
    Inscrit en
    Juillet 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Laurent Dardenne
    Tu peux créer le fichier script à la volé en utilisant les redirections
    ouhhhh ça a l'air super interessant !!! d'autant plus qu'en realite je dois faire cette manip sur 2 groupes de serveurs (l'un de 6 l'autre de 3) ayant en fait le chemin des logs differents ...
    et du coup ça m'automatiserait les commandes 8) ...

    j'essayerai d'etudier la question de plus pres demain, au taf ;-) et notament de tout decrypter ton code ... mais bon, ça m'a l'air "lisible" (pr une neophyte comme moi !!!) ;-)

    merci encore,

    Leti

  6. #6
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Pour info les doubles %% sont utilisés pour créer une 'référence' à une variable d'environement, cela donne ceci si %1=TEST
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Echo OFF
    Echo ORA_TEST_AUTOSTART = %TEST_AUTOSTART% 
    ...

  7. #7
    Candidat au Club
    Inscrit en
    Juillet 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    je suis en train d'essayer de paufiner mon script initial grace a tes indications .... mais je galere (faut dire que je suis vraiment super nulle en batches ) !!!

    si kkun pouvait m'aider pr la suite des operations, ça serait gentil ...

    si on reprend mes fichiers d'origine, j'ai maintenant ça pour recup_FTP.bat (précision : ce bat se trouve sur mon "bureau" et les repertoires de recuperation des logs, 1 par serveur, est ailleurs) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    echo on
    
    cd ../../../recup_FTP
    
    echo ==========================================
    echo Date des logs desiree sous la forme JJMMAA
    echo (ex : 021104 pour le 2 novembre 2004)
    echo ==========================================
    set /p DATELOG="Date : "
    
    set RepLog=130
    cd %RepLog%
    
    C:\WINDOWS\SYSTEM32\ftp -n -s:new_ftp_130.txt XX.XX.XX.%RepLog%
    ça marche nickel et ça met les jalons pour une recuperation en boucle sur chacun des serveurs en utilisant a priori (pas encore testé) le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for /L %%i in (130,1,137) do 
    	cd %%i
    	C:\WINDOWS\SYSTEM32\ftp -n -s:ftp.txt XX.XX.XX.%%i
    Ma question est la suivante : comment créer "à la volée" le fichier ftp.txt qui correspondrait à la date saisie (DATELOG) ?? à moins qu'il soit possible de recuperer ds le txt (je veux dire ds les commandes FTP) la valeur saisie precedement ??

    Autre question subsidiaire ;-) : ds ma boucle for je souhaiterai "sauter" l'element 135, comment faire ??

    ps : m'en voulez pas si je reponds pas ds l'immediat, je dois m'absenter pr cause de formation pr 2 jrs ce soir ... mais je suis TRES impatiente de lire les reponses et de les tester ;-) !!!

    a+,

    Leti

  8. #8
    Candidat au Club
    Inscrit en
    Juillet 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    j'ai un petit peu avancé mon pb.
    J'ai créé un 2e .bat qui va en fait traiter la question de la creation a la volee du ftp.txt qui correspond a la date saisie :

    cmd_ftp.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
    @echo off
    echo user LOGIN
    echo.
    echo PASSWORD
    echo.
    echo cd cheminDeMesLogs/log
    echo lcd %2     ==> parce que je mets la recuperation ds un repertoire particulier, defini ds le .bat principal sur RepLog
    
    if "%1"=="" goto ajd
    echo get monFichier.log.%1
    echo bye
    exit
    :ajd
    echo get monFichier.log
    echo bye
    et ds le .bat principal j'ai alors le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set /p DATELOG="Date : "
    set RepLog=130
    call cmd_ftp.bat %DATELOG% %RepLog%>ftp.txt
    par contre il semblerait que j'arrive pas a lire la ligne suivante qui est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\WINDOWS\SYSTEM32\ftp -n -s:ftp.txt XX.XX.XX.%RepLog%
    j'ai mis un

    pr voir si je passe ds le secteur mais non ... c le CALL qui va pas ???

    reste encore a m'occuper de cette histoire de boucle avec un element a ignorer ...

    a+,

    Leti

  9. #9
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    Citation Envoyé par Leti
    Ma question est la suivante : comment créer "à la volée" le fichier ftp.txt qui correspondrait à la date saisie (DATELOG) ??
    L'information précédente n'était pas suffisante ?
    Peux-tu nous communiquer le fichier texte actuel et celui attendu ?
    Citation Envoyé par Leti
    Autre question subsidiaire ;-) : ds ma boucle for je souhaiterai "sauter" l'element 135, comment faire ??
    Essaie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IF /I %%i NEQ 135  cd %%i &  C:\WINDOWS\SYSTEM32\ftp -n -s:ftp.txt XX.XX.XX.%%i
    Le caractére & permet d'enchainer l'exécution de commandes.

  10. #10
    Candidat au Club
    Inscrit en
    Juillet 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Laurent Dardenne
    Salut,
    Citation Envoyé par Leti
    Ma question est la suivante : comment créer "à la volée" le fichier ftp.txt qui correspondrait à la date saisie (DATELOG) ??
    L'information précédente n'était pas suffisante ?
    aie aie aie faut que j'y aille et comme je disais, j'suis absente jusqu'a la fin de la semaine ...

    suis desolee j'ai pas compris ton exemple precedent ... c que je suis vraiment tres tres nulle sur le sujet ... je viens juste de faire une reponse un chouilla plus haut, il me semble avoir mis un max d'infos, mais s'il manque kkchose, n'hesite pas a demander, je repondrai lundi !!!

    merci encore pr ton aide !!!!

    Leti

  11. #11
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Leti
    suis desolee j'ai pas compris ton exemple precedent ...
    Oui j'aurais dû prendre qq chose de plus explicite/lisible.
    Désolé j'avais pas vue le fichier dans le premier post %-)

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    @echo off
      rem NomFichier.cmd
     if %1'==' goto error1
     if %2'==' goto error1
    
    cd ../../../recup_FTP 
    
    echo ========================================== 
    echo Date des logs desiree sous la forme JJMMAA 
    echo (ex : 021104 pour le 2 novembre 2004) 
    echo ========================================== 
    set /p DATELOG="Date : "  
    
     rem On ne code pas les mots de passe dans le batch
    Set LOGIN=%1
    Set Password=%2
     
     rem Exécution du script %File_FTP% pour le serveur XX.XX.XX.%%i
    for /L %%i in (130,1,137) do Call ::Go %%i
    goto end
    
    :GO 
     rem %1 = complément pour l' adresse IP du serveur
    
     rem exception, on quitte
    IF /I %1 EQU 135 goto :EOF
     rem nom du fichier de commande
    
    CD %1
     
     rem Creation du fichier des commandes FTP
    Echo user %LOGIN% >FTP_%1.txt
     rem simule un retour chariot
    Echo>>FTP_%1.txt
    ECHO %PASSWORD%>>FTP_%1.txt
    Echo>>FTP_%1.txt
    
    Echo cd cheminDeMesLogs/log>>FTP_%1.txt
    Echo get monFichier1.log.%DATELOG%>>FTP_%1.txt
    Echo get monFichier2.log.%DATELOG%>>FTP_%1.txt
    Echo bye>>FTP_%1.txt
    
     rem Exécution du script FTP_%1.txt pour le serveur XX.XX.XX.%1
    cd %1 
    C:\WINDOWS\SYSTEM32\ftp -n -s:FTP_%1.txt XX.XX.XX.%1
    rem Del FTP_%1.txt
    :EOF
    
    :error1
    Echo Erreur :
    Echo Le nom d'utilisateur et/ou le mot de passe n'est pas renseigné.
    Echo Syntaxe %0 NomLogin Password
    pause
    goto end
    
    :end
    Voilà un début de solution, mais c'est à vérifier

  12. #12
    Candidat au Club
    Inscrit en
    Juillet 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    ouaouhhh

    merci bcp pr ta solution (qui est super bien adaptee a mon pb ;-)) !!!! a vu de nez ça colle super, je testerai ça dès lundi (et je mettrai le "resolu" au passage ;-)) !!!!

    encore gd merci pr ton aide treeeeeeeeeeeeeeeeees precieuse !!!

    a+,

    Leti

  13. #13
    Candidat au Club
    Inscrit en
    Juillet 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    ayé, c testé et ça maaaaaaaaaaaaaaarche

    j'suis en train de faire qqs ptites retouches pr affiner mon pb (j'avais pas poussé le bouchon jusqu'a les demander ;-) faut bien que je bosse ;-) !!!!)

    bon, sans rire, gd merci a toi Laurent pr ton aide precieuse (et indispensable vu que t'es le seul a m'avoir repondu !!!)

    a+,

    Leti

  14. #14
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Leti
    faut bien que je bosse ;-) !!!!)

    Citation Envoyé par Leti
    bon, sans rire, gd merci a toi Laurent pr ton aide
    De rien.

    Citation Envoyé par Leti
    (...vu que t'es le seul a m'avoir repondu !!!)
    Il y a d'autres personnes qui auraient pu de répondre mais comme j'aime bien coder ce genre de batch peut-être ont-elles jugées plus utile de se charger d'autres questions où je suis un peu moins disserte.

    A+

  15. #15
    Candidat au Club
    Inscrit en
    Juillet 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    tout est bien fignolé, il me reste un dernier tout petit souci ... peut-etre peux-tu m'aider une derniere fois (en plus j'ai encore l'impression que c une "betise" ) ???

    je remets mes .bat :
    - un premier fichier bat lance les traitements d'un meme groupe de serveurs (question de regrouper par rapport aux chemins des logs qui sont les memes) :

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    @echo off 
      rem recup.bat 
    
    cd ../../../recup_FTP 
    
    echo ========================================== 
    echo Date des logs desiree sous la forme JJMMAA 
    echo (ex : 021104 pour le 2 novembre 2004) 
    echo.
    echo ATTENTION : si date jour, saisir x !!!!!
    echo ========================================== 
    set /p DATELOG="Date : "  
    
    if /I %DATELOG% NEQ x set DATELOG=.%DATELOG%
    
     rem On ne code pas les mots de passe dans le batch 
    Set LOGIN=xxx
    Set Password1=xxx
    Set Password2=xxx
    
    echo ========================================== 
    echo *    Execution sur serveurs M01-M02      *
    echo ========================================== 
    
     rem Exécution du script ftp.txt pour les serveurs  
    for /L %%i in (130,1,138) do call ::Go %%i 
    goto :end 
    
    :GO 
     rem %1 = complément pour l' adresse IP du serveur 
    
     rem exception, on quitte 
    IF /I %1 EQU 135 goto :EOF 
    
     rem pour les autres que 130, on change de repertoire courant 
    IF /I %1 NEQ 130 cd ..
    
     rem pour 138 (qui n'existe pas), on decroche sur les M03
    IF /I %1 EQU 138 call recupLogs20TM03 %DATELOG% %LOGIN% %PASSWORD2%
    
    CD %1 
      
     rem Creation du fichier des commandes FTP 
    Echo user %LOGIN% >ftp.txt 
    ECHO %PASSWORD2%>>ftp.txt 
    
    Echo cd monCheminDesLogs>>ftp.txt 
    
    if /I %DATELOG%==x goto :AJD 
    if /I %DATELOG% NEQ x goto :SAISIE
    
    :SAISIE
    
    Echo get fichier1.log%DATELOG%>>ftp.txt 
    Echo get fichier2.log%DATELOG%>>ftp.txt 
    Echo bye>>ftp.txt 
    goto :suite %1
    
    :AJD
    
    Echo get fichier1.log>>ftp.txt 
    Echo get fichier2.log>>ftp.txt 
    Echo bye>>ftp.txt 
    goto :suite %1
    
    :SUITE
     rem %1 = complément pour l' adresse IP du serveur 
     rem Exécution du script ftp.txt pour le serveur XX.XXX.XXX.%1 
    C:\WINDOWS\SYSTEM32\ftp -n -s:ftp.txt XX.XXX.XXX.%1 
    :EOF 
    
    :end
    le pb que j'ai est apres l'appel au 2e batch :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF /I %1 EQU 138 call recupLogs20TM03 %DATELOG% %LOGIN% %PASSWORD2%
    en effet, il execute ensuite une derniere fois l'appel au ftp avec les données du 1er batch et m'ecrase donc un fichier commun (sont intelligents, c le meme nom de fichier ) ...

    pr info, le 2e batch recupLogs20TM03 :
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    @echo off 
      rem recupLogs20TM03.bat 
      rem parametre %1 = DATELOG
      rem parametre %2 = LOGIN
      rem parametre %3 = PASSWORD
    
    echo ========================================== 
    echo *        Execution sur serveurs                   *
    echo ========================================== 
    
    set DATELOG=%1  
    set LOGIN=%2
    set Password2=%3
      
     rem pr etre synchrones avec les changements de repertoire
    cd xxx
    
     rem si xxx inactif et xxx2 actif, modifier ci-dessous le parametre
    call ::GO xxx
    goto end
    
    :GO
     rem %1 = complément pour l' adresse IP du serveur 
    
    CD ../%1 
      
     rem Creation du fichier des commandes FTP 
    Echo user %LOGIN% >ftp.txt 
    ECHO %PASSWORD2%>>ftp.txt 
    
    Echo cd monCheminDeLogs>>ftp.txt 
    
    if /I %DATELOG%==x goto :AJD 
    if /I %DATELOG% NEQ x goto :SAISIE
    
    :SAISIE
     rem Recuperation des logs d'un autre jour qu'aujourd'hui
     
    Echo get fichier1.log%DATELOG%>>ftp.txt 
    Echo get fichier2.log%DATELOG%>>ftp.txt 
    Echo bye>>ftp.txt 
    goto :suite %1
    
    :AJD
     rem Recuperation des logs d'aujourd'hui
    
    Echo get fichier1.log>>ftp.txt 
    Echo get fichier2.log>>ftp.txt 
    Echo bye>>ftp.txt 
    goto :suite %1
    
    :SUITE
     rem %1 = complément pour l' adresse IP du serveur 
     rem Exécution du script ftp.txt pour le serveur XX.XXX.XXX.%1 
     
    C:\WINDOWS\SYSTEM32\ftp -n -s:ftp.txt XX.XXX.XXX.%1 
    :EOF 
    
    :end
    peut-etre y a-t-il moyen ds le 2e fichier bat de dire qu'a la fin on arrete toute execution (qu'il retourne pas ds le 1er bat) ??

    j'ai essaye ds le 1er bat de remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF /I %1 EQU 138 call recupLogs20TM03 %DATELOG% %LOGIN% %PASSWORD2%
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    IF /I %1 EQU 138 (
    call recupLogs20TM03 %DATELOG% %LOGIN% %PASSWORD2%
    :end
    )
    mais ça marche pas du tout !!!

    j'espere que tu pourras m'aider ...

  16. #16
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    Citation Envoyé par Leti
    en effet, il execute ensuite une derniere fois l'appel au ftp avec les données du 1er batch et m'ecrase donc un fichier commun (sont intelligents, c le meme nom de fichier ) ...
    Vérifie si les noms de répertoire ne contiennent pas d'espaces par précaution saisie Tu ne supprimes pas les batchs que tu crées, effet de bord ?
    Mais là je n'ai pas le temps de creuser, je regarderai ce soir à moins qq d'autres te propose un patch

  17. #17
    Candidat au Club
    Inscrit en
    Juillet 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Laurent Dardenne
    Citation Envoyé par Leti
    en effet, il execute ensuite une derniere fois l'appel au ftp avec les données du 1er batch et m'ecrase donc un fichier commun (sont intelligents, c le meme nom de fichier ) ...
    Vérifie si les noms de répertoire ne contiennent pas d'espaces par précaution saisie Tu ne supprimes pas les batchs que tu crées, effet de bord ?
    Mais là je n'ai pas le temps de creuser, je regarderai ce soir à moins qq d'autres te propose un patch
    j'ai teste : il y avait en effet des espaces qui trainaient apres certains cd xxx mais ça change rien au pb

    en fait (j'y connais rien, hein, donc je peux me tromper), j'ai l'impression que comme c un "call" qu'il y a ds le 1er bat, une fois le 2e bat executé, il revient ds le 1er et finit l'execution ... gloups !!

    donc, en resumé, je cherche la commande qui ferait qu'apres avoir fait mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call recupLogs20TM03 %DATELOG% %LOGIN% %PASSWORD2%
    j'aille direct a la fin de l'execution ... tu me suis ?

    a+,

  18. #18
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Leti
    ...
    j'ai l'impression que comme c un "call" qu'il y a ds le 1er bat, une fois le 2e bat executé, il revient ds le 1er et finit l'execution ... gloups !!
    ...
    tu me suis ?
    A grande enjambée

    Supprime le call
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IF /I %1 EQU 138 recupLogs20TM03 %DATELOG% %LOGIN% %PASSWORD2%
    Dans ce cas l'enchainement se termine dans le dernier batch appellé.
    Effectivement l'instruction Call revient à l'instruction suivante dans le batch appellant.
    Et dans ton cas sans "les specs" on ne pas le deviner
    Il ne reste plus qu'a tester.

  19. #19
    Candidat au Club
    Inscrit en
    Juillet 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Laurent Dardenne
    Supprime le call
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IF /I %1 EQU 138 recupLogs20TM03 %DATELOG% %LOGIN% %PASSWORD2%
    Dans ce cas l'enchainement se termine dans le dernier batch appellé.
    Effectivement l'instruction Call revient à l'instruction suivante dans le batch appellant.
    Et dans ton cas sans "les specs" on ne pas le deviner
    Il ne reste plus qu'a tester.
    ahhh yes !!! c le truc "bete" que je cherchais ... je confirme, ça marche bien, youpiiiii !!!!

    desolee d'avoir pas ete plus precise ds mes "specs" ... j'avoue qu'il y avait tellement de trucs que je voulais qui soient inclus alors que j'avais si peu de connaissances que j'ai pas tjrs du etre claire ... encore sorry !!! heureusement que t'aies bien arrive a me decoder ;-) !!

    tant que je te tiens : sais-tu quelle commande faut mettre apres "echo" pr afficher une ligne blanche (retour chariot) ds le fichier cible ??

    merci bcp pr ton aide une fois encore fort precieuse !!!

  20. #20
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut

    Citation Envoyé par Leti
    sais-tu quelle commande faut mettre apres "echo" pr afficher une ligne blanche (retour chariot) ds le fichier cible ??
    J'utilise

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/04/2009, 15h20
  2. Copie de fichier par FTP avec un BAT
    Par Thony_7 dans le forum Windows
    Réponses: 11
    Dernier message: 31/05/2007, 16h54
  3. Fichier .bat pour ftp
    Par magnetyk dans le forum Windows
    Réponses: 7
    Dernier message: 15/09/2006, 15h31
  4. Réponses: 5
    Dernier message: 20/01/2006, 10h27
  5. executer un fichier perl avec passage de parametre
    Par mpolodesm dans le forum Langage
    Réponses: 3
    Dernier message: 09/11/2005, 14h14

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