如何通过命令行应用程序获取Firefox中打开的选项卡列表?

时间:2010-09-09 07:38:18

标签: firefox powershell console-application

我在Firefox中打开了很多标签。在我关闭Firefox然后再次运行它之后,选项卡就在那里。没关系。

然而,Firefox有时会崩溃,我的标签会丢失。如何获取打开的选项卡并将列表备份到某个文件?

(使用文件中的标签,我还可以使用GitSVN或其他任何内容来存储它们,并可选择查找我在浏览器中看到的一些链接但不记得它是什么是。)

到目前为止我得到了什么:

我能够得到一些URLs,但这似乎不是我在Firefox中看到的:

$c = ((gc c:\Users\..\AppData\Roaming\Mozilla\Firefox\Profiles\xfvj8vd5.default\sessionstore.js ) -join '')
$sess = [Jayrock.Json.Conversion.JsonConvert]::Import( $c.trim('()') )
$sess.windows[0].tabs |
  % { $_.entries } |
  % { $_.url } |
  Select-Object -Unique

请不要告诉我“使用此插件或插件”。我真的很想按照我的描述去做。

4 个答案:

答案 0 :(得分:7)

使用PoshCode的JSON模块,这看起来是正确的(请记住:我在Firefox 4上进行了测试,其中Tab Panorama导致“隐藏”选项卡,ymmv)。

ConvertFrom-Json -File ~\AppData\R*\M*\F*\P*\*\sessionstore.js -Type PSObject -EA 0 |
Select -Expand Windows | Select -Expand Tabs | 
Where { !$_.hidden } | ForEach { @($_.Entries)[-1] } | 
Select Title, Url

第一行中的所有*只是为了缩短它。如果您关心搜索所花费的(毫秒),请随意将其扩展到完整路径。

答案 1 :(得分:3)

不是在PowerShell中,但我最近遇到了这个问题,所以也许这个在线人可以帮助别人:

cat recovery.js | sed 's#{"url":"#\n\n#g' | cut -d'"' -f1 | grep . | sort -u

答案 2 :(得分:1)

我建议使用brotab获取所有打开的标签页的网址:

pip install brotab
brotab install

还要安装Web扩展程序:https://addons.mozilla.org/en-US/firefox/addon/brotab/

重新启动Firefox,您可以使用brotab list并将其解析为:

bt list | awk -F'\t' '{
    print $2
}' > urls-backup.txt

然后使用普通的Firefox打开urls-backup.txt中的所有URL:

while read url; do
    firefox "$url"
done < urls-backup.txt

答案 3 :(得分:0)

#Test in Firefox 5.0
$sessionStoreFile = "$env:APPDATA\Mozilla\Firefox\Profiles\*.default\sessionstore-backups\recovery.js"
$sessionStoreFileExists = Test-Path $sessionStoreFile
If($sessionStoreFileExists -eq $False) {
    #Test in Firefox 2.0, 3.0 and 4.0
    $sessionStoreFile = "$env:APPDATA\Mozilla\Firefox\Profiles\*.default\sessionstore.js"
}
(Get-Content -Encoding UTF8 -Raw -Path $sessionStoreFile).Trim('()') | ConvertFrom-Json |
Select -Expand Windows | Select -Expand Tabs | 
Where { !$_.hidden } | ForEach { @($_.Entries)[-1] } | 
Select Url, Title | Export-Csv -Path $CsvFile  -Encoding UTF8  -NoTypeInformation   

您可以从how to export all URLs of Firefox tabs at once(PowerShell)

下载详细的SQL脚本