InDesignとPhotoshopの、JavaScriptの覚え書き中心に書いていこうと思っています。参考になれば幸いです。
最近アップルスクリプトをかじり始めました。
他の趣味についても、たまに書こうかな~ と、思っています。
[1]
[2]
フォルダを作る
make new folder at 作る場所 with properties {name:フォルダの名前 }
作る場所:フォルダ参照(変数)、パス指定 folder("Macintosh HD:Users:xxx:Desktop:test:")
フォルダの名前:文字列
フォルダ内の特定のファイルを抽出
every file of フォルダ whose 抽出条件
フォルダ:フォルダ参照
抽出条件:いろいろ‥ ファイルというより配列のフィルタ…項目違うな
name extension is "indd" 拡張子 "indd"
name ends with ".pdf" ファイル名の末尾が ".pdf"
※if 文のように and や or などで絞り込みも出来るみたい
PR
会社のパソコンからブログを更新していたやつがいたらしい。
んで、もともとインターネットに繋がるPCは限られていたんだけど、台数を約半分に減らし、インターネットの閲覧をする場合は仕事上必要な場合に限り、第三者の立会いの下で行い記録を取る。そして、後日、ログと照合するという面倒なことをせねばならなくなった。
今までにも、作業フロア内への携帯及び携帯端末の持ち込み禁止、出入り口にゲートを設置等、セキュリティー関係で面倒なことが増えるばかり…。
まあ、雑誌などの発売前の情報を扱っているのでセキュリティー上仕方ないかもしれないけれども……メンドクセー!!
このブログを始めた一番の目的が、自宅で作成したスクリプトを会社に持ち込むためだったのに…オンラインストレージなど利用してこっそりダウンロードするよりデータ容量少ないからブログなどからのコピペで十分だなと思っていたのに…第三者に見られてその作業はやり辛いな~。ネットに繋げるものは前から本社でログ取られていたけど、ネットにつなぐ物は監視体制が前より格段に厳しくなりそう。USBメモリーなんか持ち込んで見つかったら確実にクビだろうしな~。
スクリプト関係調べるのに閲覧することは許可もらっているけど、特定のサイトばかり見ているのは怪しまれるよな~。
まったく、変なことする奴のせいで、仕事上有益になることをするのにも面倒な工程が増えてやり辛くなる。ちょっと前のピザ屋バイトのツイッター等、変なことをする奴らの気がしれん。
…あ、俺も若いころは随分変なことしたっけ。ん?そういえば、データの持ち出しや持ち込みも禁止されてたっけ。あ、だからこそこそしてるんだった。
だって、仕事中にスクリプト作ってる時間なんてなかなか取れないし、かといってこのまま地道にマンパワーでやってたらこれ以上の効率化はほぼ無理(俺個人の能率は置いといて…全体の能率ね♪)。自動化を進めないとこれからは生き残れないだろうと思っているけどなかなかその方向に持っていけない。
他部署の上役から、上司に「これだけの効率アップになるから時間くれ」ってアピールしてみるべきだと言われたけど…まったくその通りなんだよね。でも、この時間あればこれだけの効果を出せるなんて試算出来ません(計画性ないもんで…)、掛けた時間に見合う効果が出せるなんて確信持てません(絶対の自信がないへたれなもんで)。出来ると思って組み始めてもやっぱ無理なんてこともあるし…「過度に期待されない状態でいいもの作って評価される」ってのが楽でいい。うん、へたれだな~
上の連中は自動化にはあまり積極的ではない考えの人もいる、というか、俺はOPだからオペレーションでの能率を上げて、自動化については、それを専門にやっている部署に任せるべきという考えもある。まあ当然だよな。でも、その専門部署の作ったツールはいまいちなものも多くて…要望出しても使えるものが出来上がってくるか、完成までもずいぶん時間もかかるし(バグ取りやテストをしっかりやるんだろうけど…)。だったら、必要な機能に限定して俺が作ったほうが早いし、現場の細かい要望にも対応できる。何よりも俺が面倒に思っている作業を自動化できる。
だいぶ、話がそれてしまった。自宅作成スクリプトの社内持込みは、もうネット経由では無理だな~。紙媒体を持ち込む分には問題ない内容なので(持ち出しはよろしくないが)プリントアウトしたものを持って行って打ち込む……なんてことしたくありません。で、どうするか、色々考えました。作業の手を止めて試してみたりして…。(作業中にこんなことしてるから能率上がらないんだよな。)
で、今のところ思いついたのが、プリントアウトしたものを複合機でPDF取り込み、Acrobat ProでOCRテキスト認識させてコピペ、誤認識した部分を修正するのが最善かな。(上司に掛け合って仕事としてスクリプトを組むという案は?……面倒だ)
スクリプトなどにこれから取り組もうとしている人の参考になればと思いますので、このブログは続けます。前の記事読み返したらわかり辛いので気が向いたら書き直します。
今のところ、上に書いた専門部署作成スクリプトを修正して使っていたものを全面改良、一から作り直して、さらに、他のスクリプトと連携させようというちょっと手間のかかるものを作っているので次の更新は間が空くかも…
んで、もともとインターネットに繋がるPCは限られていたんだけど、台数を約半分に減らし、インターネットの閲覧をする場合は仕事上必要な場合に限り、第三者の立会いの下で行い記録を取る。そして、後日、ログと照合するという面倒なことをせねばならなくなった。
今までにも、作業フロア内への携帯及び携帯端末の持ち込み禁止、出入り口にゲートを設置等、セキュリティー関係で面倒なことが増えるばかり…。
まあ、雑誌などの発売前の情報を扱っているのでセキュリティー上仕方ないかもしれないけれども……メンドクセー!!
このブログを始めた一番の目的が、自宅で作成したスクリプトを会社に持ち込むためだったのに…オンラインストレージなど利用してこっそりダウンロードするよりデータ容量少ないからブログなどからのコピペで十分だなと思っていたのに…第三者に見られてその作業はやり辛いな~。ネットに繋げるものは前から本社でログ取られていたけど、ネットにつなぐ物は監視体制が前より格段に厳しくなりそう。USBメモリーなんか持ち込んで見つかったら確実にクビだろうしな~。
スクリプト関係調べるのに閲覧することは許可もらっているけど、特定のサイトばかり見ているのは怪しまれるよな~。
まったく、変なことする奴のせいで、仕事上有益になることをするのにも面倒な工程が増えてやり辛くなる。ちょっと前のピザ屋バイトのツイッター等、変なことをする奴らの気がしれん。
…あ、俺も若いころは随分変なことしたっけ。ん?そういえば、データの持ち出しや持ち込みも禁止されてたっけ。あ、だからこそこそしてるんだった。
だって、仕事中にスクリプト作ってる時間なんてなかなか取れないし、かといってこのまま地道にマンパワーでやってたらこれ以上の効率化はほぼ無理(俺個人の能率は置いといて…全体の能率ね♪)。自動化を進めないとこれからは生き残れないだろうと思っているけどなかなかその方向に持っていけない。
他部署の上役から、上司に「これだけの効率アップになるから時間くれ」ってアピールしてみるべきだと言われたけど…まったくその通りなんだよね。でも、この時間あればこれだけの効果を出せるなんて試算出来ません(計画性ないもんで…)、掛けた時間に見合う効果が出せるなんて確信持てません(絶対の自信がないへたれなもんで)。出来ると思って組み始めてもやっぱ無理なんてこともあるし…「過度に期待されない状態でいいもの作って評価される」ってのが楽でいい。うん、へたれだな~
上の連中は自動化にはあまり積極的ではない考えの人もいる、というか、俺はOPだからオペレーションでの能率を上げて、自動化については、それを専門にやっている部署に任せるべきという考えもある。まあ当然だよな。でも、その専門部署の作ったツールはいまいちなものも多くて…要望出しても使えるものが出来上がってくるか、完成までもずいぶん時間もかかるし(バグ取りやテストをしっかりやるんだろうけど…)。だったら、必要な機能に限定して俺が作ったほうが早いし、現場の細かい要望にも対応できる。何よりも俺が面倒に思っている作業を自動化できる。
だいぶ、話がそれてしまった。自宅作成スクリプトの社内持込みは、もうネット経由では無理だな~。紙媒体を持ち込む分には問題ない内容なので(持ち出しはよろしくないが)プリントアウトしたものを持って行って打ち込む……なんてことしたくありません。で、どうするか、色々考えました。作業の手を止めて試してみたりして…。(作業中にこんなことしてるから能率上がらないんだよな。)
で、今のところ思いついたのが、プリントアウトしたものを複合機でPDF取り込み、Acrobat ProでOCRテキスト認識させてコピペ、誤認識した部分を修正するのが最善かな。(上司に掛け合って仕事としてスクリプトを組むという案は?……面倒だ)
スクリプトなどにこれから取り組もうとしている人の参考になればと思いますので、このブログは続けます。前の記事読み返したらわかり辛いので気が向いたら書き直します。
今のところ、上に書いた専門部署作成スクリプトを修正して使っていたものを全面改良、一から作り直して、さらに、他のスクリプトと連携させようというちょっと手間のかかるものを作っているので次の更新は間が空くかも…
スクリプトが増えてくると、それぞれのデータが散乱してきてどれがなんのデータか分かりづらなってきた。(忘れっぽいだけ?…)
テストしているときに適当に置いといたままとか、とりあえずパスで指定しやすい場所に置いて…… 気付いたらデータがいろんな場所に散らばってしまった。いかん。
と、いうことでスクリプトのサーバー管理、スクリプトとそれに使うデータをフォルダにまとめ、さらにスクリプトのリロケータブル化をしました。
簡単に説明すると
1. 一つのスクリプトに対してそれに使うパーツをフォルダにまとめてサーバーのスクリプト管理フォルダに入れる。
2. サーバーの別のフォルダにスクリプト自体のエイリアスをまとめておく。
3. 各マシンのスクリプトパネルには、 2 のフォルダのエイリアスを入れる。サーバー内で修正すれば全マシンが常に最新バージョンのスクリプトを使える。(これは2年前位にやっていた)
4. まとめたフォルダ単位で別の場所に移動してもパーツのパスを書き換えなくて済むように相対パスで指定するように修正(サーバー入れ替えやトラブル時にスクリプトの修正をしなくて済む)
上の図のようにまとめておけば、フォルダAごと動かせばどこに置いてもスクリプトの修正なしで実行できる。移動してもエイリアスのリンク切れもなかった。
$.fileName
で、実行しているスクリプト自体のファイルネームを含むパスを取得できる。File(app.activeScript).fsName でも取得できるが、ExtendScript Toolkitから実行した場合読み取れなかったので、デバッグが大変(Macでは読み取れなかったが、Windowsではパスの区切りが"¥"で読み取れた)
読み取ったパスの最後の "/"(スラッシュ)から後を削除して、パーツの入ったフォルダ名とパーツのファイル名を追加すれば指定できる。
※会社のサーバー上に置いた場合は、読み取ったパスの前に "Volumes/” を追加しなければだめだった。
サンプルスクリプト
※バックスラッシュになっている所は半角の"¥"です。当方の環境では化けて表示されています。上のサンプルをコピーしてExtendScript Toolkit にペーストすると正しく表示されます。
テストしているときに適当に置いといたままとか、とりあえずパスで指定しやすい場所に置いて…… 気付いたらデータがいろんな場所に散らばってしまった。いかん。
と、いうことでスクリプトのサーバー管理、スクリプトとそれに使うデータをフォルダにまとめ、さらにスクリプトのリロケータブル化をしました。
簡単に説明すると
1. 一つのスクリプトに対してそれに使うパーツをフォルダにまとめてサーバーのスクリプト管理フォルダに入れる。
2. サーバーの別のフォルダにスクリプト自体のエイリアスをまとめておく。
3. 各マシンのスクリプトパネルには、 2 のフォルダのエイリアスを入れる。サーバー内で修正すれば全マシンが常に最新バージョンのスクリプトを使える。(これは2年前位にやっていた)
4. まとめたフォルダ単位で別の場所に移動してもパーツのパスを書き換えなくて済むように相対パスで指定するように修正(サーバー入れ替えやトラブル時にスクリプトの修正をしなくて済む)
上の図のようにまとめておけば、フォルダAごと動かせばどこに置いてもスクリプトの修正なしで実行できる。移動してもエイリアスのリンク切れもなかった。
$.fileName
で、実行しているスクリプト自体のファイルネームを含むパスを取得できる。File(app.activeScript).fsName でも取得できるが、ExtendScript Toolkitから実行した場合読み取れなかったので、デバッグが大変(Macでは読み取れなかったが、Windowsではパスの区切りが"¥"で読み取れた)
読み取ったパスの最後の "/"(スラッシュ)から後を削除して、パーツの入ったフォルダ名とパーツのファイル名を追加すれば指定できる。
※会社のサーバー上に置いた場合は、読み取ったパスの前に "Volumes/” を追加しなければだめだった。
サンプルスクリプト
- //スクリプト自体のファイルネームを含むパスを取得
- var myPath = $.fileName;
- //最後のスラッシュまでの文字列にする
- var parentPath = myPath.substr(0,myPath.lastIndexOf("/"));
- //パーツの入っているフォルダ名とファイルネームを追加
- var PartsPath = parentPath + "/部品フォルダ/パーツa.eps";
- var alertMessage = "このスクリプトのパス\n" + File.decode(myPath) + "\n\n";
- alertMessage += "指定する部品のパス\n" + File.decode(PartsPath);
- alert(alertMessage);
※バックスラッシュになっている所は半角の"¥"です。当方の環境では化けて表示されています。上のサンプルをコピーしてExtendScript Toolkit にペーストすると正しく表示されます。
次のページ
>>
ブログ内検索
プロフィール
HN:
Light Head
年齢:
52
性別:
男性
誕生日:
1972/05/23
職業:
DTPオペレーター
趣味:
バイク、機械いじり、プログラミング
最新記事
(03/09)
(03/09)
(03/09)
(04/29)
(04/22)
P R