Как импортировать 100500 закладок

  • Михаил
  • 12 мин. на прочтение
  • 114
  • 13 Dec 2015
  • 13 Dec 2015

Недавно на просторах Facebook-а, была довольно интересная дискуссия по управлению тем барахлом, балластом, мусором (то что подходит не вычеркивать) в избранном браузера. Суть сводилась к такой задаче — как импортировать 100500 закладок из ОгнеЛиса в Ишака… IE после импорта первой тысячи закладок благополучно помирал. Поэтому было принято решение воспользоваться скриптами.

Традиционно, я завел разговор в «степь» именуемую как Powershell, но к сожалению из-за недостатка времени и отвратительной погоды, завершить его так и не удалось, но я пообещаю обещать что когда ни будь допишу как именно произвести импорт.

Сейчас писать XML-парсер просто лень

Приступим к разбору первого этапа.

Избранное хранится в папке

$IEF =  [Environment]::GetFolderPath(‘Favorites’)

В виде текстовых файлов с расширением URL.

$Favorite = Get-ChildItem $IEF -Recurse

Что бы увидеть то что мы собрали в виде таблицы запускаем такой скрипт.

Get-ChildItem ([Environment]::GetFolderPath(‘Favorites’)) -Recurse -Include *.url |
? {Select-String —input $_ -quiet "^URL=http"} | 
Select @{Name="Name"; Expression={[IO.Path]::GetFileNameWithoutExtension($_.FullName)}},
@{Name="URL"; Expression={get-content $_ | ? {$_ -match "^URL=http"} | % {$_.Substring(4)}}}

Как получить список имеющихся закладок понятно. Как создать новую?

Новую создать еще проще…

$IEF =  [Environment]::GetFolderPath(‘Favorites’)
$Shell = New-Object -ComObject WScript.Shell
$IEF = Join-Path -Path $IEF -ChildPath PowerShell
$Name = ‘blog.wadmin.ru’
$FullPath = Join-Path -Path $IEF -ChildPath "$($Name).url"
$url = ‘http://blog.wadmin.ru’
$shortcut = $Shell.CreateShortcut($FullPath)
$shortcut.TargetPath = $Url
$shortcut.Save()

Экспорт всех найденных URL-ов в txt-файл

$IEF =  [Environment]::GetFolderPath(‘Favorites’)
$urls = (Get-ChildItem $IEF -Recurse —Filter ‘*.url’ | Get-Content)
 foreach ($item in $urls) {
 if (($item.ToString()) -like "URL=http*") 
 {
   (($item.ToString())).Substring(4) | Out-File ‘c:\temp\urlexport.txt’ -Append 
 }
 }

Что забыл написать?