メむンコンテンツぞスキップ

コヌドが読めなくおも倧䞈倫。AIず䜜るブックマヌク敎理スクリプト

    👋 はじめに

    い぀も蚘事を芋おいただいお、ありがずうございたす。

    私は音声パ゜コンを䜿っおいる党盲のクリ゚むタヌです。キヌボヌドだけでパ゜コンを操䜜しおいるず、どうしおも「あのサむト、どこだっけ」ず探す時間がかかっおしたうんですよね。

    Chromeのブックマヌクバヌは䟿利なんですが、たくさん登録しおいるず目的のサむトにたどり着くたでが䞀苊劎。スクリヌンリヌダヌで䞀぀ず぀読み䞊げおいくのは、正盎しんどいずきもありたす。

    そこで今回は、ブックマヌクをデスクトップにたずめお曞き出すスクリプトを䜜っおみたした。これなら、゚クスプロヌラでファむル名を読み䞊げながらサむトを探せたす。芋える方にずっおも、ブックマヌクのバックアップや敎理に圹立぀ず思いたすので、ぜひ最埌たで読んでいただけるずうれしいです。


    📝 この蚘事で埗られるこず

    • Chromeのブックマヌクがどこに保存されおいるか分かる

    • ブックマヌクを.urlファむルInternet Explorer時代の「お気に入り」ず同じ圢匏ずしお䞀括出力できる

    • デスクトップからダブルクリックでサむトを開けるようになる

    • スクリヌンリヌダヌでファむル名を読み䞊げお目的のサむトを探せる

    • PowerShellスクリプトの基本的な仕組みが理解できる

    • 自分でカスタマむズするための知識が身に぀く

    • AIチャットを䜿っお同様のスクリプトを䜜る方法が分かる


    🚀 䜿い方かんたん3ステップ

    1. 2぀のファむルChrome_bookmarks.ps1ずget.batを同じフォルダに保存

    2. get.batをダブルクリック

    3. デスクトップに「Chrome_Bookmarks」フォルダが䜜成される

    これだけでブックマヌクが.urlファむルずしお䞀芧化されたす。

    画像

    💻 スクリプトの党䜓像

    実行甚バッチファむルget.bat

    powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%~dp0Chrome_bookmarks.ps1"

    PowerShellの実行ポリシヌを䞀時的にBypassしお、同じフォルダ内のスクリプトを実行したす。

    メむンスクリプトChrome_bookmarks.ps1

    $OutRoot = Join-Path ([Environment]::GetFolderPath("Desktop")) "Chrome_Bookmarks"
    $BookmarkFile = Join-Path $env:LOCALAPPDATA "Google\Chrome\User Data\Default\Bookmarks"
    
    New-Item -ItemType Directory -Force -Path $OutRoot | Out-Null
    
    function Sanitize-FileName([string]$name) {
      $s = [string]$name
      $s = $s -replace '[\\/:*?"<>|]', ' '
      $s = $s -replace '\s+', ' '
      $s = $s.Trim()
      $s = $s.TrimEnd('.', ' ')
      if ([string]::IsNullOrWhiteSpace($s)) { $s = "NoTitle" }
      $upper = $s.ToUpperInvariant()
      $reserved = @("CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9")
      if ($reserved -contains $upper) { $s = "_" + $s }
      $maxLen = 120
      if ($s.Length -gt $maxLen) { $s = $s.Substring(0, $maxLen).TrimEnd('.', ' ') }
      $s
    }
    
    function New-UrlShortcut([string]$path, [string]$url) {
      $content = "[InternetShortcut]`r`nURL=$url`r`n"
      [System.IO.File]::WriteAllText($path, $content, [System.Text.Encoding]::ASCII)
    }
    
    function Walk($node) {
      if ($null -eq $node) { return }
      if ($node.PSObject.Properties.Name -contains "children") {
        foreach ($c in $node.children) { Walk $c }
        return
      }
      if ($node.PSObject.Properties.Name -contains "url") {
        $script:seq++
        $safe = Sanitize-FileName ([string]$node.name)
        $filename = "{0:D5}_{1}.url" -f $script:seq, $safe
        $fullpath = Join-Path $OutRoot $filename
        New-UrlShortcut -path $fullpath -url ([string]$node.url)
      }
    }
    
    if (!(Test-Path $BookmarkFile)) {
      Write-Host "Bookmarks not found: $BookmarkFile"
      exit 1
    }
    
    Get-ChildItem -Path $OutRoot -File -ErrorAction SilentlyContinue | Remove-Item -Force -ErrorAction SilentlyContinue
    
    $script:seq = 0
    $json = Get-Content -Path $BookmarkFile -Raw -Encoding UTF8 | ConvertFrom-Json
    foreach ($rootName in $json.roots.PSObject.Properties.Name) {
      Walk $json.roots.$rootName
    }
    
    Write-Host "Done"

    🔍 コヌド解説ステップバむステップ

    ステップ1出力先ずブックマヌクの堎所を指定

    $OutRoot = Join-Path ([Environment]::GetFolderPath("Desktop")) "Chrome_Bookmarks"
    $BookmarkFile = Join-Path $env:LOCALAPPDATA "Google\Chrome\User Data\Default\Bookmarks"

    デスクトップに「Chrome_Bookmarks」フォルダを䜜成する堎所ず、ChromeのブックマヌクファむルJSON圢匏の堎所を指定しおいたす。

    ステップ2出力フォルダを䜜成

    New-Item -ItemType Directory -Force -Path $OutRoot | Out-Null

    フォルダがなければ䜜成、あればそのたた䜿甚したす。

    ステップ3ファむル名を安党にする関数

    Windowsのファむル名に䜿えない文字\ / : * ? " < > |をスペヌスに眮換したす。たた、CON、PRNなどWindowsの予玄語は先頭に「_」を付けお回避し、長すぎるファむル名は120文字で切り詰めたす。

    ちなみに、CONやPRN、LPT1などはMS-DOS時代からの「予玄デバむス名」で、プリンタヌやシリアルポヌトを指す名前です。ブックマヌクずは関係なさそうですが、たたたた同じ名前のサむトがあるず゚ラヌになるため、念のための察策ずしお入れおいたす。

    ステップ4.urlショヌトカットを䜜成する関数

    .urlファむルの䞭身はシンプルなテキスト圢匏です。[InternetShortcut]ずURL=の2行だけで動䜜したす。

    ステップ5ブックマヌクを再垰的に凊理する関数

    フォルダなら䞭身を再垰的に凊理し、ブックマヌクなら.urlファむルを出力したす。ファむル名は「00001_サむト名.url」の連番圢匏です。

    ステップ6メむン凊理

    ブックマヌクファむルが存圚するか確認し、既存の出力ファむルをクリアしおから、JSONを読み蟌んでブックマヌクを順番に凊理したす。


    🔒 安党性に぀いお

    このスクリプトは以䞋の点で安党です。

    • 読み取り専甚Bookmarksファむルは読み取りのみで倉曎したせん

    • 曞き蟌み先限定デスクトップの専甚フォルダ内にのみ曞き蟌みたす

    • 倖郚通信なしむンタヌネットぞの接続は行いたせん

    • 危険なコマンドなしInvoke-Expressionなどの危険なコマンドは䜿甚しおいたせん


    🀖 AIチャットで自分で䜜りたい方ぞ

    コヌドを盎接コピヌするのが䞍安な方は、以䞋のプロンプトをAIチャットChatGPT、Claude、Geminiなどに枡しおください。自分の環境に合わせたスクリプトを生成しおもらえたす。

    以䞋の芁件でPowerShellスクリプトを䜜成しおください。
    
    【目的】
    Chromeのブックマヌクをデスクトップに.urlファむルずしお䞀括出力する
    
    【環境】
    - Windows 11Windows 10でも動䜜するこず
    - Google Chromeデフォルトプロファむル
    
    【入力】
    - ChromeのブックマヌクファむルJSON圢匏
    - 堎所: %LOCALAPPDATA%\Google\Chrome\User Data\Default\Bookmarks
    
    【出力】
    - デスクトップに「Chrome_Bookmarks」フォルダを䜜成
    - 各ブックマヌクを.urlファむルむンタヌネットショヌトカットずしお出力
    - ファむル名圢匏: 00001_サむト名.url5桁連番
    
    【必須芁件】
    1. ファむル名のサニタむズ
       - Windowsで䜿えない文字\ / : * ? " < > |を陀去たたは眮換
       - 連続する空癜を1぀にたずめる
       - Windowsの予玄語CON, PRN, AUX, NUL, COM1-9, LPT1-9を回避
       - ファむル名が長すぎる堎合は120文字で切り詰め
    
    2. フォルダ構造
       - ブックマヌクのフォルダ階局は無芖しおフラットに出力
       - 既存の出力ファむルは実行時にクリア
    
    3. 安党性
       - 読み取り専甚Bookmarksファむルを倉曎しない
       - 出力フォルダ以倖には曞き蟌たない
    
    4. 文字コヌド
       - スクリプト内に日本語を䜿わない文字化け防止
       - メッセヌゞは英語で出力
    
    【実行方法】
    - ダブルクリックで実行できるバッチファむル.batも䜜成
    - PowerShellの実行ポリシヌをBypassしお実行
    - バッチファむルずスクリプトは同じフォルダに配眮する想定

    ⚡ スタヌトアップに登録しお自動曎新

    毎回手動で実行するのが面倒な方は、get.batをWindowsのスタヌトアップフォルダに登録しおおくず䟿利です。パ゜コンを起動するたびに、ブックマヌクが自動で最新の状態に曎新されたす。

    スタヌトアップフォルダの開き方

    1. Windowsキヌ + R を抌す

    2. 「shell:startup」ず入力しおEnter

    3. 開いたフォルダにget.batのショヌトカットを眮く

    これで、Windowsを立ち䞊げるたびにデスクトップのブックマヌク䞀芧が自動曎新されるようになりたす。


    ✹ たずめ

    今回は、Chromeのブックマヌクをデスクトップに䞀括出力するスクリプトを玹介したした。

    私自身、このスクリプトを䜿い始めおから、ブックマヌク探しのストレスがかなり枛りたした。゚クスプロヌラでファむル名を読み䞊げながら「あ、これこれ」ずサむトを芋぀けられるのは、思った以䞊に快適です。

    芋える方にずっおも、ブックマヌクのバックアップずしお䜿えたすし、「最近どんなサむトをブックマヌクしたっけ」ず振り返るのにも䟿利だず思いたす。

    スクリプトをそのたたコピヌしお䜿っおいただいおもいいですし、蚘事の最埌に茉せた芁件定矩をAIチャットに枡しお、自分奜みにカスタマむズしおいただくこずもできたす。

    実は、AIが出おくる前は自力でコヌディングしおいたんですが、最近はもっぱらClaude Code頌りになっおいたす。今回のスクリプトもClaude Codeず䞀緒に䜜りたした。

    䞀気に倧きく効率化するのも倧事なんですが、こうやっお1぀1぀小さな効率化を積み重ねおいくのも、実はずおも重芁なのかなず思うこずがありたす。今日のブックマヌク敎理が、明日の䜜業を少しだけ楜にしおくれる。そういう小さな積み重ねが、気づいたら倧きな差になっおいるのかもしれたせん。

    ちなみに、今回出力しおいる.urlファむルは、昔のInternet Explorerで䜿われおいた「お気に入り」ず同じ圢匏です。懐かしいず感じる方もいらっしゃるかもしれたせんね。Windowsの暙準機胜なので、特別な゜フトをむンストヌルしなくおもダブルクリックでブラりザが開きたす。

    最埌たで読んでいただいお、ありがずうございたした。この蚘事が圹に立ったず思っおいただけたら、スキやフォロヌをしおいただけるずずおも励みになりたす。

    #Windows11 #Chrome #PowerShell #AI掻甚 #アクセシビリティ

     
     
    䞍利な条件を知恵ず工倫で乗り越えおきた党盲クリ゚むタヌです。AIやプログラミング、音楜、䜓ず暮らしのこずを、芋えない環境から詊し、䜜り、蚀葉にしおいたす。技術の話も人生の話も、最埌は「次の䞀歩」ぞ。0から1ぞ。 1が倧きいなら、0.1で。

    あなたぞのおすすめ