スクリプトを作る場合には当然欲しくなります。
でも Photoshopの Presets\Scripts を直接リポジトリに登録するとなると色々面倒。
とりあえず別のところをSVNへコミットしておいてバッチファイルでコピーするのが妥当かな?
まずは、コピーするとき.jsxファイルがバラバラになっていると Presets\Scripts のなかもグチャグチャになるので、スクリプトごとにフォルダへまとめてソレをコピーする感じにしようと思います。
このことを前提にバッチを組んでいるので要注意。
で、バッチファイル。
@title %~nx0
@prompt %~n0$G
:: コピーするフォルダ名
set SCRIPT=hoge
:: Adobe フォルダがあるか調べる
@set ADOBE_PATH=%ProgramFiles%\Adobe\
@if not exist "%ADOBE_PATH%" goto :errAdobe
:: Photoshop フォルダを探す
@set SRC_FOLDER=%~dp0%SCRIPT%
@for /f "delims=*" %%F in ('dir /b "%ADOBE_PATH%" ^| find "Photoshop"') do call :copyAction "%%F"
@goto :endProcess
::------------------------------------------------------------------------------
:copyAction
@set DST_FOLDER=%ADOBE_PATH%%~1\Presets\scripts\%SCRIPT%\
@if not exist "%DST_FOLDER%" md "%DST_FOLDER%"
xcopy "%SRC_FOLDER%" "%DST_FOLDER%" /s /y
@exit /b
:errAdobe
@echo Adobe のフォルダが見つかりません
@goto :endProcess
:endProcess
@pause
単にコピーするだけでは芸がないので、どんなバージョンのPhotoshopにも対応してみました。
ポイントは3箇所。
13行目でdelimsを設定しないとスペースで分割されてしまうのでダミーの文字を指定して分割されないようにしています。
同じく13行目、セット内でdirをfindへパイプするために ^| とエスケープさせています。
20行目callで渡された値はスペースで分割されないようダブルクォーテーション付きで渡されているので%~を使ってダブルクォーテーションを省いています。
たぶんコレでいけるはず。
0 件のコメント:
コメントを投稿