2011-04-14 5 views
4

J'ai un script de sauvegarde qui appelle le vidage SVN, sort stderr dans un fichier puis redirige la sortie vers 7zip.Sortie redirect de sortie stderr vers le fichier et la sortie stdout dans le fichier

Je dois maintenant porter ce système à Windows en utilisant un fichier de commandes, mais je n'arrive pas à accéder au fichier deux fois dans une ligne comme Linux me le laissera, existe-t-il une syntaxe alternative?

svnadmin dump D:\Repo\example 2>> %logfile% | 7za a new.7z >> %logfile% 

(ci-dessus est juste un exemple)

Dans les fenêtres si j'essaie de faire ce que je reçois une erreur que le fichier est déjà en cours d'accès. Comment puis-je m'assurer que je reçois une erreur à la fois du svnadmin et du 7za dans mon fichier journal?

Répondre

3

Vous pouvez également utiliser un bloc pour rediriger la fois dans le fichier journal directement.

Rediriger la sortie standard avec 1>>&2 vers stderr, puis combiner les deux avec la parenthèse et la rediriger avec un seul fichier 2>> vers le fichier journal.

(svnadmin dump D:\Repo\example | 7za a new.7z 1>>&2) 2>> %logfile% 
1

Cela ne le truc pour moi:

(svnadmin dump D:\Repo\example 2>> %logfile% | 7za a new.7z >> %logfile%.tmp) & copy %logfile%+%logfile%.tmp 
Questions connexes