기 타 크롬 북마크 백업 배치파일 (HTML)
2026.02.05 04:24
AI의 도움을 받아 크롬 북마크 백업파일을 만들었습니다.
@echo off
chcp 949 > nul
setlocal enabledelayedexpansion
:: 임시 파일 설정
set "TPS1=%TEMP%\bm_export_final.ps1"
:: 1. PowerShell 스크립트 생성 (문제가 되는 특수문자 코드를 제거하고 단순화)
echo $basePath = "$env:LOCALAPPDATA\Google\Chrome\User Data" > "%TPS1%"
echo $bmPath = Get-ChildItem -Path $basePath -Filter "Bookmarks" -Recurse -ErrorAction SilentlyContinue ^| Where-Object { $_.FullName -match 'Default\\Bookmarks$' -or $_.FullName -match 'Profile \d+\\Bookmarks$' } ^| Select-Object -First 1 -ExpandProperty FullName >> "%TPS1%"
echo if (-not $bmPath) { exit } >> "%TPS1%"
echo $out = Join-Path ([Environment]::GetFolderPath('Desktop')) "chrome_bookmarks_final.html" >> "%TPS1%"
echo $json = Get-Content $bmPath -Raw -Encoding UTF8 ^| ConvertFrom-Json >> "%TPS1%"
echo function Conv($n) { >> "%TPS1%"
echo $h = "" >> "%TPS1%"
echo if ($n.type -eq 'folder') { >> "%TPS1%"
echo $h += " <DT><H3>$($n.name)</H3><DL><p>" >> "%TPS1%"
echo if ($n.children) { foreach ($c in $n.children) { $h += Conv $c } } >> "%TPS1%"
echo $h += "</DL><p>" >> "%TPS1%"
echo } elseif ($n.type -eq 'url') { >> "%TPS1%"
echo $u = $n.url >> "%TPS1%"
echo $m = $n.name >> "%TPS1%"
echo if (-not $m) { $m = $u } >> "%TPS1%"
echo $h += " <DT><A HREF=`"$u`">$m</A>" >> "%TPS1%"
echo } >> "%TPS1%"
echo return $h >> "%TPS1%"
echo } >> "%TPS1%"
echo $html = "<html><head><meta charset='UTF-8'></head><body><H1>Bookmarks</H1><DL><p>" >> "%TPS1%"
echo if ($json.roots.bookmark_bar) { $html += Conv $json.roots.bookmark_bar } >> "%TPS1%"
echo if ($json.roots.other) { $html += Conv $json.roots.other } >> "%TPS1%"
echo $html += "</DL></body></html>" >> "%TPS1%"
echo [System.IO.File]::WriteAllText($out, $html, [System.Text.Encoding]::UTF8) >> "%TPS1%"
:: 2. PowerShell 실행
powershell -NoProfile -ExecutionPolicy Bypass -File "%TPS1%"
:: 3. 결과 확인
if exist "%USERPROFILE%\Desktop\chrome_bookmarks_final.html" (
echo.
echo =================================================
echo 변환 성공! 바탕화면의 [chrome_bookmarks_final.html] 확인
echo =================================================
) else (
echo.
echo [오류] 파일 생성에 실패했습니다.
)
:: 임시 파일 삭제
if exist "%TPS1%" del "%TPS1%"
pause
이 배치파일을 이용해서 만든 크롬 북마크 HTML을 업로드하여
웹에서 크롬 북마크를 보관하고 관리할 수 있는 프로그램이 개발/자작 게시판에 업로드 되었습니다.
포맷후에도 다시 웹에서 HTML을 내려받아 복구할 수 있습니다.

감사합니다. ^_^