Как правильно создать журнал при выполнении команды git в batch-файле? - PullRequest
0 голосов
/ 04 июня 2019

Я использую функцию журнала для пакета резервного копирования TFS git автоматически.

Пакет похож на

@echo on

set source=https://url.src/
set dest=http://url.dest/

cd \gitrepo

for /f %%r in (distributiontools.txt) do (
git clone --mirror %source%Distribution%%20Tools/_git/%%r
cd %%r.git
git push --all %dest%Distribution%%20Tools/_git/%%r
git push --tags %dest%Distribution%%20Tools/_git/%%r
cd \gitrepo
rd /q/s %%r.git
)

Я пробовал синтаксис как

git clone --mirror %source%Distribution%%20Tools/_git/ProjectName &> log.txt
git clone --mirror %source%Distribution%%20Tools/_git/ProjectName 2>&1 &> log.txt

Но окно cmd исчезло сразу после нажатия и ничего не осталось. И

git clone --mirror %source%Distribution%%20Tools/_git/ProjectName >> log.txt
git clone --mirror %source%Distribution%%20Tools/_git/ProjectName > log.txt
git clone --mirror %source%Distribution%%20Tools/_git/ProjectName 2>&1 >> log.txt

Он обработан правильно, но log.txt был пустым.

В итоге я делаю,

BATCH1

@echo on

set source=https://url.src/
set dest=http://url.dest/

cd \gitrepo

for /f %%r in (distributiontools.txt) do (
git clone --mirror %source%Distribution%%20Tools/_git/%%r 2>&1
cd %%r.git
git push --all %dest%Distribution%%20Tools/_git/%%r 2>&1
git push --tags %dest%Distribution%%20Tools/_git/%%r 2>&1
cd \gitrepo
rd /q/s %%r.git
)

Batch2

Batch1 >> log.txt

И запустил процесс из Пакета 2.

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

...