みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
現在、エクセルファイルを一つ選択、ファイルメーカー内部にてにてエクセルのテキスト処理、
csvに書き出すというスクリプトステップを作り(部分的にapple scriptのステップを含む)、
スクリプトをボタンに割り当てて処理を行っています。
これではフォルダ内に大量にエクセルファイルがあった場合、
ファイルの数だけボタンをクリック、エクセルファイル選択という作業が必要となります。
これをボタンワンクリックでフォルダ内のエクセルファイルを全てcsvに書き出す処理の仕方は
考えられないでしょうか。
環境はosx filemaker ver18です。
フォルダパスを取得するスクリプトステップはありますが、ファイルリストを取得する関数がないようです。OSコマンドで簡単ではありますがパスを変換する関数はFM19からだし
どうせ外部ツールを使わないとできないなら、全部Applescriptでやってしまったらどうかなあ?
以下のようなAppleScriptでファイルリストが取得できるようです。
do shell script "ls -1 /Users/xxxx/Documents/*.xlsx > /Users/xxxx/Documents/filelist.csv"
このfilelist.csvをインポートで取り込んで、先頭から順に処理してはいかがでしょう?
こっちの方が使いやすいかもしれません。
do shell script "cd /Users/xxxx/Documents
ls -1 *.xlsx > /Users/xxxx/Documents/filelist.csv"
以下のようなAppleScriptでファイルリストが取得できるようです。
do shell script "ls -1 /Users/xxxx/Documents/*.xlsx > /Users/xxxx/Documents/filelist.csv"
このfilelist.csvをインポートで取り込んで、先頭から順に処理してはいかがでしょう?
フォルダーのパスがわかっているのでいたら、cmd dir -b|clip としておけば、クリップボード経由でリストが取得できますね。それを加工すれば、全ファイルのパスが生成できるのでは。
パスの変換も、テキスト処理でできなくもないですよ。
Offline
「Eventを送信」しか頭になかったのですが、「Apple Scrptを実行」というのがあるんですね!
自分で試してみたら書き直さないと動作しなかったので、再度アップしておきます。
set MyPath to "/Users/xxxx/Documents/"
do shell script "cd " & quoted form of POSIX path of MyPath & (ASCII character 10) & "ls -1 *.xlsx > " & quoted form of POSIX path of MyPath & "filelist.csv"
ありがとうございます。
とりあえず試してみます。
後日報告致します。
Pages: 1
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 507.44 KiB (Peak: 511.98 KiB) ]