我写了一个批处理脚本来在Windows 7上备份我的Thunderbird客户端。它运行正常,但我遇到了日志记录部分的问题。
基本上,我希望它能够在运行时查看命令窗口中发生的情况,并将所有输出记录到.log文件中。
问题:它记录到文件,但在命令窗口中没有任何操作。然后在它完成后运行AGAIN,但这次显示命令窗口中发生了什么。
包含:脚本。日志文件。
脚本:
@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%
感谢您提供的任何帮助。
答案 0 :(得分:1)
您正在调用:logit
“函数”两次;首先是call
,第二是通过。
只需在goto :eof
之后添加call
,即可完成。
然后,要同时记录到文件并在stdout中显示,您需要tee
http://en.wikipedia.org/wiki/Tee_(command)调用的输出。
call :logit | tee ThunderbirdBackup.log
goto :eof
:logit
...