不熟悉windows的东西..,我正在尝试编写一个小的MS Windows批处理以备份firefox历史但我没有得到预期的结果,例如firefox历史转储到文件中(这里没有实现) ),无法弄清楚为什么以及如何解决。相反,我在新窗口中获取数据库的转储。以下是我到目前为止所做的事情:
cmd windows terminal
start "TEST" sqlite.cmd
sqlite.cmd
REM backup firefox history
setlocal
set DB_src=places.sqlite
set DB_dest=places1.sqlite
set FF_profile=C:\Documents and Settings\User_A\Application Data\Mozilla\Firefox\Profiles\1e6xxxxx.default
set SQLITE_EXE=C:\Documents and Settings\Admin_User\SoftWare\sqlite3.exe
set SQLITE_SQL=C:\Documents and Settings\Admin_User\Bureau\sqlite.sql
copy "%FF_profile%\%DB_src%" "%FF_profile%\%DB_dest%"
@echo off
start "%SQLITE_EXE%" "%FF_profile%\%DB_dest%" < "%SQLITE_SQL%"
endlocal
sqlite.sql
.dump html
.output moz_places.html
SELECT moz_places.visit_count, moz_places.url FROM moz_places ORDER by visit_count DESC LIMIT 20;
[编辑]:
解决了:
- 使用正确的sqlite查询(在下面的sqlite.sql中更新)和these examples
- 使用sql html输出“moz_places.html”,因为我无法获得重定向工作
linux的东西对我来说更容易......
答案 0 :(得分:0)
这个问题很蹩脚,因为它涉及三个完全不相关的域:firefox,sqlite和批处理文件。你应该通过确定这是一个firefox问题还是sqlite问题或批处理文件问题来解决问题,然后你应该提出一个关于问题所在领域的问题,绝对不提到其他领域
我将就批处理文件尽可能地给你一个答案:
首先,您需要不必要地使用start
命令停止并直接调用内容。所以,而不是:
start "%SQLITE_EXE%" "%FF_profile%\%DB_dest%" < "%SQLITE_SQL%"
你需要这个:
"%SQLITE_EXE%" "%FF_profile%\%DB_dest%" < "%SQLITE_SQL%"
然后,您需要将上述命令的输出重定向到您选择的文件中。为此,您需要使用'&gt;'运营商。所以:
"%SQLITE_EXE%" "%FF_profile%\%DB_dest%" < "%SQLITE_SQL%" > myfile.txt
就批处理文件而言,应该这样做。如果它没有这样做,那么它是一个firefox或sqlite问题。