Bat >log

techinfo46 Messages postés 432 Statut Membre -  
Zeddo Messages postés 85 Statut Membre -
bonjour j'ai crée un script de sauvegarde (sauve.bat situer dans c:\sauv\) et toutes les commandes réaliser dans ce scripts vont dans le fichier %computername%.log
le souci et que quand je place la ligne suivantes:

c:\sauv\sauve.bat > c:\sauv\envoie\%computername%.log

le script bloque sur cette ligne et ne continu pas sont execution

si vous pouvez m'aider sa serai sympa Merci et bonne fête

5 réponses

  1. Zeddo Messages postés 85 Statut Membre 15
     
    Bonjour,

    Si ton script ne fait pas 100 lignes, tu pourrais le copier entièrement stp ?
    0
  2. techinfo46 Messages postés 432 Statut Membre 56
     
    bonjour et merci de m'avoir répondu si vite
    voicii le sauve.bat

    ----------------------------------sauve.bat---------------------------------------------------
    SET J=%date:~-10,2%
    SET A=%date:~-4%
    SET M=%date:~-7,2%
    SET H=%time:~0,2%
    SET MN=%time:~3,2%
    SET S=%time:~-5,2%

    IF "%time:~0,1%"==" " SET H=0%HEURE:~1,1%

    SET SAUV=C:\sauv
    SET ENVOIE=C:\sauv\envoie
    SET CACHE=C:\sauv\cache$

    SET FICHIER=%SAUV%\Noah-%A%-%M%-%J%.bck

    IF NOT exist "%SAUV%" md "%SAUV%"

    cd C:\Program Files\Microsoft SQL Server\90\Tools\Binn

    sqlcmd -S %computername%\HIMSA -Q "BACKUP DATABASE NOAHSystem TO DISK = N'%FICHIER%' WITH INIT, NAME = N'Sauvegarde automatique de la base de données', STATS = 1"

    IF NOT exist "%ENVOIE%" md "%ENVOIE%"

    cd C:\Program Files\7-Zip

    7z a c:\sauv\envoie\%computername%.7z c:\sauv\*.bck

    IF NOT exist "%CACHE%" md "%CACHE%"

    cd \sauv\envoie

    xcopy /y *.7z \sauv\cache$

    c:\sauv\sauve.bat > c:\sauv\envoie\%computername%.log

    cd c:\sauv\envoie\

    ftp -s:ftp.txt

    cd c:\sauv\envoie\

    del %computername%.7z
    del %computername%.log

    cd c:\sauv\

    del *.bck

    exit

    -----------------------------------fin du fichier sauve.bat------------------------------
    0
  3. Zeddo Messages postés 85 Statut Membre 15
     
    Mais de rien pour la vitesse de réponse. Je passais par la à ce moment :)
    Par contre, je ne suis pas une brute en scripting, mais on va voir...

    J'aurais pensé que ton script bloquait avant, à la ligne cd C:\Program Files\Microsoft SQL Server\90\Tools\Binn
    Le dos et les bat n'aiment pas les espaces dans les chemins, j'aurais mis plutôt
    cd "C:\Program Files\Microsoft SQL Server\90\Tools\Binn".
    Mais si tu es sur qu'il passe cette étape.. étrange mais pourquoi pas^^

    idem pour cd C:\Program Files\7-Zip -> cd "C:\Program Files\7-Zip"

    cd \sauv\envoie -> il ne manque pas le lecteur ? (cd c:\sauv\envoie )

    Et en fait la, si j'ai bien compris, tu cherches à la fin à loguer les actions de ton script, puis à les envoyer via FTP.
    Pour le log j'aurais procédé autrement (peut-être plus "sale" comme méthode, mais comme dit je ne suis pas un pro du scripting).

    Essaye plutôt d'enlever cette ligne et de compléter chaque action dans ton script, comme ca (c'est un de mes scripts, le début car il est très long, et comme tu peux voir c'est plutôt simpliste) :

    DEL journal.txt
    echo Debut du travail le %date%, il est %time% > journal.txt
    echo --------------------------------------------------------------------------------->> journal.txt
    echo --------------------------------------------------------------------------------->> journal.txt
    echo --------------------------------------------------------------------------------->> journal.txt

    echo Debut de la suppression de la sauvegarde J-2 a %time% >> journal.txt

    RD /S /Q "D:\saveu\J-2" >> journal.txt

    echo Fin de la suppression de la sauvegarde de J-2 a %time% >> journal.txt
    echo --------------------------------------------------------------------------------->> journal.txt
    echo --------------------------------------------------------------------------------->> journal.txt
    echo Debut du backup de la sauvegarde de J-1 a %time% >> journal.txt
    d:
    cd\
    cd saveu
    rename J-1 J-2 >> journal.txt
    echo Fin du backup de la sauvegarde de J-1 a %time% >> journal.txt


    En fait je ne mets pas de chemin pour le fichier txt, il va se créer à côté du .bat.
    Un seul ">" pour la création, 2 ">" pour le remplissage du fichier existant.
    0
  4. techinfo46 Messages postés 432 Statut Membre 56
     
    alor je vien de test cela ne fonctionne pas j'ai mi echo et le fichier txt comme toi sur la ligne:

    sqlcmd: la commande ne fonctionne pas plus donc pas de sauvegarde de la base, et quand je fai appel au programme non plus par exmple ligne:

    cd C:\Program Files\7-Zip

    7z a c:\sauv\envoie\%computername%.7z c:\sauv\*.bck
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Zeddo Messages postés 85 Statut Membre 15
     
    les lignes Echo c'est pas une obligation, c'est juste pour faire plus "propre" dans le fichier log de sortie.
    le > journal.txt ou >> journal.txt, théoriquement ya rien de plus simple. Pas d'options, etc... si c a la fin d'une ligne, elle sera loguée.
    Par contre, si ta commande SQL marche pas.. la dsl je connais pas du tout les commandes sql sous dos.

    Pour le 7z, si tu es sur de ta syntaxe 7z a c:\sauv\envoie\%computername%.7z c:\sauv\*.bck ? tu as mis le chemin entre guillemet ? cd "C:\Program Files\7-Zip"

    Si tu veux tout tester dans ton script (ou presque... pas la ou il a des variables), tu copie colle dans une fenetre dos ton script ligne par ligne.

    Par exemple si tu colles cd C:\Program Files\7-Zip , tu verras qu'il ne va pas dans le répertoire, du coup tu sais que la ligne est à corriger.

    DSl pour la réponse un peu brouillon et rapide, je suis sorti du boulot, et la je dois me préparer pour ce soir.

    Bon courage, bonne soirée, et à l'année prochaine^^
    0