powershell 从外部应用程序向Web浏览器添加书签

erhoui1w  于 2023-01-26  发布在  Shell
关注(0)|答案(3)|浏览(129)

有人知道是否可以从外部应用程序向网络浏览器(Safari,IE,FF,Chrome,Opera)添加书签吗?

ajsxfq5m

ajsxfq5m1#

对于IE
您需要在此处创建链接文件:
c编号

Environment.GetFolderPath(Environment.SpecialFolder.Favorites)

动力 shell

[Environment]::GetFolderPath( [System.Environment+SpecialFolder]::Favorites)
    • chrome :**

您需要在json格式文件bookmarks中添加条目(无扩展名):
Win7上是

C:\Users\<YOURUSERNAME>\AppData\Local\Google\Chrome\User Data\Default\
    • 火狐浏览器:**

书签存储在SQLite中:

../Application Data/Mozilla/Firefox/Profiles/{your firefox profile}/places.sqlite

使用System.Data.SQLite你可以尝试添加链接,但我不能帮你更多。
不能帮你的Safari和Opera

i34xakig

i34xakig2#

在Powershell V2伊势(x86)中,此代码将列出系统上的所有特殊文件夹,甚至this-

$objShell = New-Object -com "Wscript.Shell"
$objShell.SpecialFolders | WHERE {$_.ToString() -match "Fav"}

然后你可以访问和操作C:\Users\username\Favorites文件夹。我不知道这是否会扩展到所有浏览器[除了IE]。

9rygscc1

9rygscc13#

下面是我为从PowerShell向Chrome添加书签而想到的解决方案:

$fileBookmarks="$env:LOCALAPPDATA\Google\Chrome\User Data\Default\Bookmarks"
$dataBookmarks=Get-Content $fileBookmarks -Encoding UTF8| Out-String |ConvertFrom-Json
function createNewChromeBookmark ($Bookmarks, [string]$BookmarkName, [string]$BookmarkURL) {
    function getBookmarkIDs($object){
        $object | ForEach-Object{
            "{0:0000}" -f [int]($_.id);
            if([bool]($_.PSobject.Properties.name -match "children")){
                GetBookmarkIDs($_.children);
            }
        }
    };
    $nextBookmarkID = [int](getBookmarkIDs -object $Bookmarks.roots.bookmark_bar|Sort-Object -Descending|Select-Object -First 1) + 1
    $currentChomeTime=[System.DateTimeOffset]::Now.ToUnixTimeMilliseconds()*10000;
    $newBookmark= [PSCustomObject]@{
        date_added=$currentChomeTime
        guid=[guid]::NewGuid()
        id=$nextBookMarkID
        name="$BookmarkName"
        type="url"
        url="$BookmarkURL"
    }
    return $newBookmark;
}
$newBookmark = createNewChromeBookmark -Bookmarks $dataBookmarks -BookmarkName "Your Bookmark Name" -BookmarkURL "https://[Your URL Here]";
$dataBookmarks.roots.bookmark_bar.children += $newBookmark;
$dataBookmarksJSON = ConvertTo-Json -InputObject $dataBookmarks -Depth 200
Set-Content -Path $fileBookmarks -Value $dataBookmarksJSON -Encoding UTF8

相关问题