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