みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になります。
先日「AppleScriptで共有フォルダのファイルをコピー」というタイトルでお世話になった者です。
https://fm-aid.com/bbs2/viewtopic.php?id=1235
その節は大変お世話になりまして、ありがとうございました。
今回、自宅で試していたものを会社で動かしてみたら、全然動かなくて途方に暮れています。。。
また皆様のお力を貸していただけたら、と思い相談にまりました。
AppleScriptの勉強を始めたばかりで、まだまだ勉強が足りず、書き方でつまづいています。
フォルダ名が yymmddhhmmss□□□.csv となっていて、検索する条件としては文字列前方の「年/月/日/時」までと後方の「
□□□.csv」だけしか特定ができません。
「分/秒」は決め打ちができません。
以下のスクリプトで自宅で試していた時は無事に結果を得られたのですが、会社で試してみたところ、エラーとなってしまいます。
エラーの文章は、「Finderでエラーが起きました。fole of folder ¥"○○○"¥"of disk"¥"△△△"¥whose name=¥yymmddhh¥and name cntains¥".csv"¥を取り出すことはできません。"」という内容のものでした。
-------------------------------------------------
set folderdName to my DateAndTIme(current date) ← 日付からフォルダ名を作るための変数を使用(省略)
tell application "Finder"
set myList to files of folder "○○○" of disk "△△△" whose name contains folderdName and name contains ".csv"
duplicate myList to folder "Documents" of folder "FileMaker Server" of folder "Library" of startup disk
end tell
-------------------------------------------------
ファイル名を決め打ちで入れてみたら拾えたので、単純に私の記述が間違っているように思うのですが、いろいろ試しても全滅でした。
set myList to files of folder "○○○" of disk "△△△" この部分が怪しいと思うのですが、間違いを教えてください。
どうぞ宜しくお願いします。
Offline
わかってないけど、ASではなくAutomatorじゃダメ?
こっちの方が取っ付きやすいと思うけど・・・
・ Finder項目を検索
マウントされてる共有フォルダを指定 その中のフォルダ名は名前が○○を含む
を複数指定できる
・フォルダの内容を取得
・ Finder項目をコピー
保存先フォルダを指定できる
を10.9のMacでマウンとしている10.6.8Serverの共有フォルダを指定して
実行したら複製されたよ。
Offline
あぁ、日付が都度変わるからダメかも。
私、Automatorも使い込んでないし。
Offline
旅人様
ありがとうございます。
Automatorをさわってみました。
なんかMacはスゴイですね。
カレンダーアラームとしても使えるみたいなので、Automatorに感動中です^^
ファイル名は変数で扱わないといけないので、今、その部分をネットで調べています。
どうしてもわからなかった時はまた相談させて下さい。
宜しくお願いします。
取り急ぎお礼まで・・・。
ありがとうございました。
Offline
ちなみに、AppleScriptの方では、
set myList to files of folder "○○○" of disk "△△△" whose name contains folderdName and name contains ".csv"
"○○○" と同じサブフォルダの階層に "test" というフォルダを作って試してみたところ、コピーされました。
そこで、問題の "○○○" のフォルダ名を "test" に変更してみたら、ダメでした。
中に保存されているファイル数が多く、フォルダ全体の容量が800MBぐらいあるのですが、それも原因でしょうか?
フォルダ名を変更したことで、エラーの内容がタイムアウトに変わりました。
タイムアウトまでの時間を10分までと長くしてみましたが、ダメでした。
難しいです・・・。
引き続き、AppleScriptの方のアドバイスもお待ちしております。
宜しくお願いします。
Offline
フォルダ名がyymmddhhmmss□□□.csvなのにcurrent dateの結果は2014年4月19日土曜日 xx:yy:zz
となるようですけどcontainの判断ができるのですか。
また、フォルダ名に.csvなどという拡張子のようなものを付けて正常に動くのかな?
スクリプトを1行ずつにして結果を見てみたら?
再度断っておきますが、私はASもAutomatorも超苦手です。
Offline
いまひとつ質問が理解できていませんが、
ファイル参照の部分はここを参考にしてください。
http://d.hatena.ne.jp/zariganitosh/2010 … posix_file
個人的には、POSIX参照に統一した方がわかりやすいと思っています。
Disk名の指定も必要ないし
今使っているFinder参照は融通が利かないイメージ
ファイル参照が正しく指定されている場合、下記の記述を試してください。
set myList to ( files of folder "○○○" of disk "△△△" whose name contains folderdName and name ends with "csv" )
Offline
旅人様
ありがとうございます。
日付の整形については、長くなるので省略してしまったのですが、下記のサイトを参考にさせていただきました。
http://force4u.cocolog-nifty.com/skywal … t-2f0.html
yyyyをyyにするように、西暦のところは
set y to ((year of theDate) - 2000)
としており、「結果」には 「yyymmdd○○○.csv」となっています。
一応、自宅の環境では同じスクリプトで、フォルダ名が異なるだけの違いで、拡張子を指定してもちゃんと動いているのですが。。。
難しいですね・・・。
Offline
aqula様
ありがとうございます。
> ファイル参照が正しく指定されている場合、下記の記述を試してください。
> set myList to ( files of folder "○○○" of disk "△△△" whose name contains folderdName and name ends with "csv" )
結果は問題ないようで、下記のように表示されました。
-----------------------------------
get document file "140419100000□□□.csv" of folder "○○○" of disk "△△△"
--> "△△△:○○○:140419100000□□□.csv"
-----------------------------------
POSIX参照というのですね。
こちらの方がWindowsで見慣れている形式ですが、ファイルの検索の部分がわからないので調べてみます。
Offline
Pages: 1
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 531.11 KiB (Peak: 552.02 KiB) ]