Я использую функцию журнала для пакета резервного копирования 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.
Я чувствую, что должен быть более простой способ добиться того же, но я не знаком с синтаксисом пакета, который не могу понять, как.