PowerShellでGoogle Chromeのキャッシュの置き場を変更する


ざっとネットで調べてみたら、mklinkでリンクを作ればいいようなので試してみることにする。
直し直し下のPowerShellでできたっぽいけど、参考用に書き直したりもしているのでそのまま動かないかも。
参照される方は自身の責任において実行してください。

なお、CドライブがSSD、DドライブがHDD(SATA)、RドライブがRAMDiskです。RAMDiskは4GBで作ってるので、全データがRに行かないように、Dドライブを使う想定を残してます。

Set-PSDebug -strict
$username = $env:username

################################
#ここから変数定義
#■新しいGoogleディレクトリ置き場のパス
$new_google_user_dir = Join-Path ( Join-Path "D:\" $username ) "Google"

#■新しいChromeディレクトリ置き場のパス
$new_chrome_user_dir = Join-Path ( Join-Path "R:\Browser" $username ) "Chrome"

################################

# 通常のGoogleアプリケーションのユーザディレクトリのパス
$google_user_dir = Join-Path ( Join-Path "C:\Users" $username ) "AppData\Local\Google"
Write-Host "ユーザのGoogleディレクトリ:" $google_user_dir

# symbolic linkを張る関数を作成
function New-Symlink { cmd /c mklink /d $args }

# ユーザディレクトリ自体を移行する
if ( $new_google_user_dir -ne ""){
    #新しいGoogle Dirへの移行を実施する。
    Write-Host $new_google_user_dir "への移行を実施。"
    
    move $google_user_dir $google_user_dir".bak"
    
    md $new_google_user_dir
    robocopy /MIR $google_user_dir".bak" $new_google_user_dir
    New-Symlink $google_user_dir $new_google_user_dir
    
    $google_user_dir  = $new_google_user_dir
    
}else{
    Write-Host "Googleアプリのユーザディレクトリの変更は行わない。"
}

# Google Chromeのキャッシュディレクトリのパス
$chrome_user_dir = Join-Path $google_user_dir "Chrome\User Data\Default\Cache"

Write-Host "ユーザのGoogle Chromeキャッシュ: " $chrome_user_dir
Write-Host "移行先のキャッシュディレクトリ: " $new_chrome_user_dir

move $chrome_user_dir $chrome_user_dir".bak"
md $new_chrome_user_dir
# robocopy /MIR $goole_user_dir".bak" $new_chrome_user_dir
New-Symlink $chrome_user_dir $new_chrome_user_dir

Write-Host "だん"