如何在所有聊天记录中搜索给定的字符串?
СTRL+ F-在一个聊天中进行搜索,但是我有很多聊天记录,因此我想在所有保存的聊天中查找某些内容吗?
如何在所有聊天记录中搜索给定的字符串?
СTRL+ F-在一个聊天中进行搜索,但是我有很多聊天记录,因此我想在所有保存的聊天中查找某些内容吗?
Answers:
在“联系人”列表或“最近”列表中,只需单击要查看其对话历史记录的联系人或组,便会显示对话历史记录。
存储所有聊天记录的main.db数据库文件。main.db是标准的SQLite数据库文件,可以使用任何SQLite浏览器应用程序打开。但是,有一个免费的应用程序,专门用于读取Skype的聊天和通话数据– SkypeLogView。
main.db文件保存在以下其中之一(取决于OS)中。
在Windows 7 +上: C:\Users\%USERNAME%\AppData\Roaming\Skype\[Skype User Name]
在Windows XP上: C:\Documents and Settings\%USERNAME%\Application Data\Skype\[Skype User Name]
以下内容适用于所有Windows版本,您可以将其复制到“运行”提示中:
%APPDATA%\Skype
\[Skype User Name]
在Mac OS X上: Library/Application Support/Skype/[Skype User Name]
为了将来,您可能需要考虑使用SkyHistory
[USER NAME]
用%USERNAME%
,让你的路变得拷贝/ pastable。另外,“ Skype名称”对我来说是模棱两可的(以为是Skype的版本或其他O_o),我将更新为“ Skype用户名”
Skyperious也可能值得一试。它具有SkypeLogView的一些功能,例如
与使用第三方Skype专用工具相比,使用SqliteBrowser(例如SqliteBrowser)来搜索Skype数据库来编写自己的SQL查询可提供更多的灵活性和功能。
例如,此查询将在您所有的聊天中搜索文本字符串,并显示消息的发布时间(本地),消息本身,聊天的名称(如果有名称)以及谁在聊天中。聊天。
select DISTINCT datetime(m.timestamp, 'unixepoch', 'localtime') as postedon, c.displayname as chatname, m.from_dispname as fromuser, m.body_xml as msgtext
from Messages m
INNER JOIN Conversations c ON m.convo_id = c.id
where m.body_xml LIKE '%my text%' --case insensitive
order by m.timestamp DESC
我最近找到了一个用于浏览Skype历史记录的不错的在线工具:http : //www.skypebrowser.com
如果您不关心隐私问题,似乎是最好的解决方案。
以下对main.db的查询对我有用:
查找群组聊天
SELECT DISTINCT datetime(m.timestamp, 'unixepoch', 'localtime'), c.id, m.author, m.body_xml FROM
messages m
JOIN conversations c ON c.id = m.convo_id
WHERE c.type = 2 AND
m.body_xml NOT NULL
ORDER BY m.timestamp ASC
查找与好友的私人聊天
SELECT DISTINCT datetime(m.timestamp, 'unixepoch', 'localtime'), m.author, m.body_xml FROM
messages m
JOIN conversations c ON c.id = m.convo_id
WHERE m.body_xml NOT NULL AND
c.identity LIKE '%YOUR.BUDDY.NAME.HERE%' --case insensitive
ORDER BY m.timestamp ASC
在与好友的私人聊天中找到给定的单词
SELECT DISTINCT datetime(m.timestamp, 'unixepoch', 'localtime'), m.author, m.body_xml FROM
messages m
JOIN conversations c ON c.id = m.convo_id
WHERE c.identity = 'YOUR.BUDDY.NAME.HERE' AND
m.body_xml NOT NULL AND
m.body_xml LIKE '%YOUR.SEARCHED.WORD.HERE%' --case insensitive
ORDER BY m.timestamp ASC
PS:有时您的好友名称可能与Skype中显示的名称不同,因此请首先检查以下一项:
SELECT identity, displayname FROM conversations
然后从identity
专栏拿起一个
SkyHistory对我不起作用-似乎它不是为68MB的Skype日志而设计的:)
最强大的方法之一也非常简单-只需使用SQLite客户端即可。在这里,我写了一个简单的手册:http : //jehy.ru/articles/2014/05/26/searching-through-skype-history/
如果您有300多个联系人,并且他们的对话重叠,那么您就会知道,使用简单的Ctrl + F方法不可能找到任何东西。
幸运的是,Skype使用SQLite数据库,我们可以直接连接到该数据库并直接在其中搜索。因此,您需要:
1)下载SQLite客户端(我使用http://sqlitebrowser.org/,但您可以安装任何喜欢的客户端)2)查找您在Skype网站上描述的历史文件:
按住Windows键键盘上的Windows键,然后按R调出“运行”窗口。如果您在Windows 8上使用触摸屏设备,则可以从“搜索”超级按钮中打开“运行”窗口。在“运行”窗口中键入%appdata%\ Skype,然后按Enter。打开以您的Skype名称命名的文件夹。在文件夹中找到main.db文件,该文件是您的聊天记录。
3)使用您的SQLite客户端打开此文件。4)打开数据库表“消息”。5)使用您要搜索的SQL查询来查找所需的消息。这是我在对话中搜索“ git”单词的示例-但是您可以使用许多字段进行搜索和排序。