Как я могу получить список открытых вкладок в Firefox через приложение командной строки? - PullRequest
15 голосов
/ 09 сентября 2010

В 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

Пожалуйста, не говорите мне "использовать этот аддон или этот аддон ".Я действительно хотел бы сделать это, как я описал.

Ответы [ 3 ]

7 голосов
/ 10 сентября 2010

Используя модуль JSON из PoshCode, это выглядит правильно (имейте в виду: я проверял это на Firefox 4, где панорама вкладок приводит к «скрытым» вкладкам, 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

Все * в первой строке просто сокращены.Не стесняйтесь расширять это до полного пути, если вы заботитесь о (милли) секундах, потраченных на поиск.

3 голосов
/ 22 ноября 2016

не в PowerShell, но я недавно столкнулся с этой проблемой, так что, возможно, этот онлайн-лайнер может кому-то помочь:

cat recovery.js | sed 's#{"url":"#\n\n#g' | cut -d'"' -f1 | grep . | sort -u
0 голосов
/ 06 декабря 2016
#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 можно загрузить из , как экспортировать все URL-адреса вкладок Firefox одновременно (PowerShell)

...