Пакетное перенаправление вывода stderr в файл и передача вывода вывода в файл - PullRequest
4 голосов
/ 14 апреля 2011

У меня есть скрипт резервного копирования, который вызывает дамп SVN, выводит stderr в файл, а затем передает вывод в 7zip.

Теперь мне нужно портировать эту систему на окна, используя командный файл, но я не могу получить доступ к файлу дважды в одной строке, как Linux позволит мне, есть ли альтернативный синтаксис?

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

(выше - только пример)

В Windows, если я пытаюсь это сделать, я получаю сообщение об ошибке, что файл уже доступен. Как я могу убедиться, что получаю сообщение об ошибке как от svnadmin, так и от 7za в мой лог-файл?

Ответы [ 2 ]

3 голосов
/ 15 апреля 2011

Вы также можете использовать блок, чтобы перенаправить оба файла журнала напрямую.

Перенаправление stdout с помощью 1>>&2 на stderr, а затем объединить оба с круглыми скобками и перенаправить его с одним 2>> в файл журнала.

(svnadmin dump D:\Repo\example | 7za a new.7z 1>>&2 ) 2>> %logfile%
1 голос
/ 14 апреля 2011

Это делает трюк для меня:

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