2014-10-06 3 views
0

Windows 7에서 내 Thunderbird 클라이언트의 백업을 만들기 위해 배치 스크립트를 작성했습니다. 완벽하게 작동하지만 로깅 부분에 문제가 있습니다.배치 스크립트 로깅이 두 번 실행됩니까?

본질적으로 모든 출력을 .log 파일에 기록 할뿐만 아니라 실행시 명령 창에서 무슨 일이 일어나는지보고 싶습니다.

문제 : 파일에 기록되지만 명령 창에는 아무 것도 실행되지 않습니다. 그런 다음 작업이 완료되면 다시 실행되지만 이번에는 명령 창에 현재 상황이 표시됩니다.

포함 : 스크립트. 로그 파일.

스크립트 :

@ECHO ON 
rem 
call :Logit>>%Desktop%\"%DATE:~7,2%.%DATE:~4,2%.%DATE:~-4%-ThunderbirdBackup".log 
:Logit 

echo       Backup Start at = %date% %time% 
echo Beginning Automatic Backup and Encryption for Thunderbird 
echo This will take approximately 45 seconds to complete 

echo Killing Thunderbird.exe 
taskkill /F /IM thunderbird.exe 

echo Give the computer a moment to complete task 
timeout /T 3 

echo Zipping to Desktop 
"C:\Program Files\7-Zip\7z.exe" a -t7z %Desktop%\"%DATE:~7,2%.%DATE:~4,2%.%DATE:~-4%-ThunderbirdBackup".7z %AppData%\Thunderbird\Profiles\ -m0=lzma2 -mx3 -mmt=8 -mhe=on 

echo       Backup Complete at = %date% %time% 

당신이 빌려 감기 어떤 도움을 주셔서 감사합니다.

로그 : ThunderbirdScript-Log-Pastebin

+0

아마도 두 번 실행 중일 것입니다. 이 박쥐 파일을 어떻게 불러내나요? –

+0

.bat 파일을 두 번 클릭하기 만하면됩니다. – Zapp

+0

당신이 보여준 박쥐는 파일에 기록하지 않습니다. 너는 다른 일을해야만 해, 설명 할 수 있니? –

답변

1

당신은 두 번 :logit "기능"을 호출 할; 먼저 call에 의해 실행하고 두 번째로 실행합니다.

call 뒤에 goto :eof을 추가하기 만하면됩니다.

그런 다음 파일에 기록하고 표준 출력에 표시하려면 teehttp://en.wikipedia.org/wiki/Tee_(command)의 호출 결과가 필요합니다.

call :logit | tee ThunderbirdBackup.log 
goto :eof 

:logit 
... 
+0

그건 작동하지 않았다. 나는 이유를 모른다. 명령 창이 열리고 즉시 사라집니다. 스크립트가 실행되지 않습니다. – Zapp

+0

'tee'는 기본 Windows 명령이 아니므로 PATH에이 명령이 없을 수도 있습니다. 이것은 UNXUTILS (http://unxutils.sourceforge.net)의 일부로, Windows에 이식 된 GNU 유틸리티 세트입니다. –

+0

도움 주셔서 감사합니다. PA :) – Zapp

관련 문제