スクリプトを作る場合には当然欲しくなります。
でも Photoshopの Presets\Scripts を直接リポジトリに登録するとなると色々面倒。
とりあえず別のところをSVNへコミットしておいてバッチファイルでコピーするのが妥当かな?
まずは、コピーするとき.jsxファイルがバラバラになっていると Presets\Scripts のなかもグチャグチャになるので、スクリプトごとにフォルダへまとめてソレをコピーする感じにしようと思います。
このことを前提にバッチを組んでいるので要注意。
で、バッチファイル。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | @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 件のコメント:
コメントを投稿