Как я могу получить список открытых вкладок в Firefox через приложение командной строки?
У меня есть много вкладок, открытых в Firefox. После того, как я закрою Firefox, а затем запустите его снова, вкладки есть. Все в порядке.
Однако время от времени Firefox падает, и мои вкладки теряются. Как получить открытые вкладки и скопировать список в какой-либо файл?
(С вкладками в файле я также могу использовать Git, SVN, или что-то еще, чтобы сохранить их и, возможно, найти ссылку, которую я видел в своем браузере, но не могу вспомнить, что это такое.)
Что я получил до сих пор:
Я могу получить URL , но это не похоже на то, что я вижу в 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
Пожалуйста, не говорите мне "используйте этот аддон или этот аддон". Я действительно хотел бы сделать это, как я описал.
Ответы
Ответ 1
Используя модуль JSON из PoshCode, это выглядит правильно (помните: я тестировал это на 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
Все * в первой строке - это просто сделать его коротким. Не стесняйтесь расширять это до полного пути, если вы заботитесь о затраченных секундах (милли) секундах.
Ответ 2
не в PowerShell, но я недавно столкнулся с этой проблемой, поэтому, возможно, этот onliner может помочь кому-то:
cat recovery.js | sed 's#{"url":"#\n\n#g' | cut -d'"' -f1 | grep . | sort -u
Ответ 3
#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
Вы можете загрузить подробный SQL script из как экспортировать все URL-адреса вкладок Firefox сразу (PowerShell)