Bat >log

Fermé
techinfo46 Messages postés 383 Date d'inscription jeudi 23 décembre 2010 Statut Membre Dernière intervention 20 avril 2020 - Modifié par techinfo46 le 31/12/2010 à 14:06
Zeddo Messages postés 75 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 5 mars 2015 - 31 déc. 2010 à 15:47
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
A voir également:

5 réponses

Zeddo Messages postés 75 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 5 mars 2015 15
31 déc. 2010 à 14:07
Bonjour,

Si ton script ne fait pas 100 lignes, tu pourrais le copier entièrement stp ?
0
techinfo46 Messages postés 383 Date d'inscription jeudi 23 décembre 2010 Statut Membre Dernière intervention 20 avril 2020 55
Modifié par techinfo46 le 31/12/2010 à 14:13
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
Zeddo Messages postés 75 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 5 mars 2015 15
31 déc. 2010 à 14:40
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
techinfo46 Messages postés 383 Date d'inscription jeudi 23 décembre 2010 Statut Membre Dernière intervention 20 avril 2020 55
Modifié par techinfo46 le 31/12/2010 à 15:15
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Zeddo Messages postés 75 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 5 mars 2015 15
31 déc. 2010 à 15:47
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