2014-10-06 26 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

你可能運行了兩次。你如何調用這個bat文件? – 2014-10-06 11:08:27

+0

只需雙擊.bat文件。 – Zapp 2014-10-06 11:09:22

+0

您顯示的蝙蝠不會登錄到文件。你一定在做別的事情,你能解釋一下嗎? – 2014-10-06 11:12:24

回答

1

要調用的:logit 「功能」 兩次;第一次通過call第二次通過運行。

只需在call之後加上goto :eof即可。

然後,要記錄到一個文件並顯示在標準輸出中,您將需要teehttp://en.wikipedia.org/wiki/Tee_(command)調用的輸出。

call :logit | tee ThunderbirdBackup.log 
goto :eof 

:logit 
... 
+0

這沒有用。我不知道爲什麼。命令窗口打開並立即消失。腳本不運行 – Zapp 2014-10-06 13:22:08

+0

我剛剛意識到'tee'不是本機windows命令,所以也許你沒有在你的PATH中。它是UNXUTILS(http://unxutils.sourceforge.net)的一部分,它是移植到Windows上的一組GNU實用程序。 – 2014-10-06 13:58:30

+0

感謝您的協助PA :) – Zapp 2015-01-31 15:30:07

相關問題