Bat >log

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

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,

    Si ton script ne fait pas 100 lignes, tu pourrais le copier entièrement stp ?
    1. 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------------------------------
      1. 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.
        1. 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
          1. 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^^