返信先: TuneBrowserのポータブル化

フォーラム TuneBrowser TuneBrowserのポータブル化 返信先: TuneBrowserのポータブル化

#12174
aromatibus
参加者

こんばんは
まさかこんな素晴らしい機能があるとは思いませんでした!!!
これは是非、活用させていただきます。
すばらしいです。ありがとうございます。

実は以下のようなパッチファイルを作成して運用してました(笑)
TuneBrowserの実行ファイルすべてとAppDataの必要ファイルをまるごとSDカードにコピーして使用できるので
これはこれでメリットありますが、”tagdb”による運用の方が必要なファイルがひとつで管理の手間は少なく
デメリットがないので楽に運用できそうですね。

これで運用して何か気づいたら報告させていただきたいと思います。

——-

※バッチを使われる方がいる場合は自己責任でお願いします。

やっている事は
1.AppDataの元フォルダをリネームしてバックアップ、ポータブル環境のジャンクションを作成。
ジャンクションを利用しているのは管理者権限が必要ないためです。
2.リンクを削除してバックアップファルダを元の名前にリネームする。
を交互にやっているだけです。

運用は上のコメントを見てください。
本機能に関係ない小技を使ってますが、メンテナンス性を考え冗長に書いているので上から読んでいけばやってる事は簡単です。

“””
@echo off

:: UTF-8などで保存されたバッチファイルのShiftJis対策;
chcp 65001 > nul

:: 遅延展開 バグの原因になる場合があるので注意;
setlocal enabledelayedexpansion

:: エスケープシーケンスを利用;
for /f “tokens=1,2 delims=#” %%a in (‘”prompt #$H#$E# & echo on & for %%b in (1) do rem”‘) do (set ESC=%%b)

set ID_TUNEBROWSER=Tiki
set ID_TUNEBROWSER_BACKUP=Tiki.org
set FOLDER_LOCAL=AppData\Local\
set FOLDER_ROAMING=AppData\Roaming\
set ID_JUNCTION=^<JUNCTION^> %ID_TUNEBROWSER%

set USER_LOCAL_TIKI=%USERPROFILE%\%FOLDER_LOCAL%%ID_TUNEBROWSER%
set USER_LOCAL_BACKUP=%USERPROFILE%\%FOLDER_LOCAL%%ID_TUNEBROWSER_BACKUP%

set USER_ROAMING_TIKI=%USERPROFILE%\%FOLDER_ROAMING%%ID_TUNEBROWSER%
set USER_ROAMING_BACKUP=%USERPROFILE%\%FOLDER_ROAMING%%ID_TUNEBROWSER_BACKUP%

set PORTABLE_LOCAL_TIKI=%~dp0%FOLDER_LOCAL%%ID_TUNEBROWSER%
set PORTABLE_ROAMING_TIKI=%~dp0%FOLDER_ROAMING%%ID_TUNEBROWSER%

echo.
echo %ESC%[44mTuneBrowserの環境設定をローカル⇔ポータブルに相互チェンジします%ESC%[0m
echo.
echo.

:: 同じフォルダにポータブル環境用のAppDataフォルダがあるかチェック;
if not exist “%PORTABLE_LOCAL_TIKI%” (
echo %ESC%[41;97m 同じフォルダ内にポータブル用の%PORTABLE_LOCAL_TIKI%フォルダが見つかりません。%ESC%[0m
echo.
goto :EndProcess
)
if not exist “%PORTABLE_ROAMING_TIKI%” (
echo %ESC%[41;97m 同じフォルダ内にポータブル用の%PORTABLE_ROAMING_TIKI%フォルダが見つかりません。%ESC%[0m
echo.
goto :EndProcess
)

:: ローカルにJunctionのフォルダがあったら削除;
dir “%USERPROFILE%\%FOLDER_LOCAL%”|find “%ID_JUNCTION%”>NUL
if %ERRORLEVEL%==0 (rmdir %USER_LOCAL_TIKI%)
:: ローカルにバックアップがあれば元に戻し、なげばリンクを作成;
if exist “%USER_LOCAL_BACKUP%” (
echo ***************************************************************
echo *%ESC%[92m AppData\Local環境をポータブルからローカルにチェンジします %ESC%[0m *
echo ***************************************************************
echo ren “%USER_LOCAL_BACKUP%” “%ID_TUNEBROWSER%”
ren “%USER_LOCAL_BACKUP%” “%ID_TUNEBROWSER%”
) else (
echo ***************************************************************
echo *%ESC%[92m AppData\Local環境をローカルからポータブルにチェンジします %ESC%[0m *
echo ***************************************************************
echo ren “%USER_LOCAL_TIKI%” “%ID_TUNEBROWSER_BACKUP%”
ren “%USER_LOCAL_TIKI%” “%ID_TUNEBROWSER_BACKUP%”
echo.
echo mklink /j “%USER_LOCAL_TIKI%”
echo “%PORTABLE_LOCAL_TIKI%”
echo.
mklink /j “%USER_LOCAL_TIKI%” “%PORTABLE_LOCAL_TIKI%”
echo.
)
echo.
echo.

:: ローミングにJunctionのフォルダがあったら削除;
dir “%USERPROFILE%\%FOLDER_ROAMING%”|find “%ID_JUNCTION%”>NUL
if %ERRORLEVEL%==0 (rmdir %USER_ROAMING_TIKI%)
:: ローミングにバックアップがあれば元に戻し、なげばリンクを作成;
if exist “%USER_ROAMING_BACKUP%” (
echo ***************************************************************
echo *%ESC%[92m AppData\Roaming環境をポータブルからローカルにチェンジします %ESC%[0m*
echo ***************************************************************
echo ren “%USER_ROAMING_BACKUP%” “%ID_TUNEBROWSER%”
ren “%USER_ROAMING_BACKUP%” “%ID_TUNEBROWSER%”
) else (
echo ***************************************************************
echo *%ESC%[92m AppData\Roaming環境をローカルからポータブルにチェンジします %ESC%[0m*
echo ***************************************************************
echo ren “%USER_ROAMING_TIKI%” “%ID_TUNEBROWSER_BACKUP%”
ren “%USER_ROAMING_TIKI%” “%ID_TUNEBROWSER_BACKUP%”
echo.
echo mklink /j “%USER_ROAMING_TIKI%”
echo “%PORTABLE_ROAMING_TIKI%”
echo.
mklink /j “%USER_ROAMING_TIKI%” “%PORTABLE_ROAMING_TIKI%”
echo.
)
echo.

:: 終了処理(エクスプローラーから起動されていた場合はPauseする);
:EndProcess
echo %cmdcmdline% | find /i “%~f0”>NUL
if %errorlevel% equ 0 Pause
goto :eof
“””