初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2020-05-05 01:37:06

hayashi
Guest

Macで計算されたスクリプト

Macでスクリプトでターミナルに入力したいのですが、うまくできません。計算されたスクリプトの実行に関する情報も少なく困ってます。どなたかお助けください。FMP18です。

#2 2020-05-05 07:04:26

himadanee
Guest

Re: Macで計算されたスクリプト

計算結果がコマンドと一致するように指定します。
Appleの解説
https://support.apple.com/ja-jp/guide/t … aab4bc/mac

#3 2020-05-05 10:18:19

Shin
Member

Re: Macで計算されたスクリプト

"ターミナルに入力したい" とは、コマンドを実行する、ということでしょうか。
FileMaker からは、Eventを送信 というステップがあります。それを使うほうが手軽です。または、Appleスクリプトを実行 ですね。

Offline

#4 2020-05-05 17:23:12

hayashi
Guest

Re: Macで計算されたスクリプト

"tell application \"Terminal\"¶
activate¶
set destF to POSIX file of \"/Volumes/GoogleDrive/共有ドライブ/???????/test.txt\"¶
do script \"echo Hellow\" > destF¶
end tell"

test.txtを書き換えたいのです
うまくいきません。
よろしくお願いします。

#5 2020-05-05 17:44:52

hayashi
Guest

Re: Macで計算されたスクリプト

apple scriptの計算されたスクリプトで行ってます。フィールドの値でテキスト内容を書き換えたいのです。

#6 2020-05-05 18:03:52

himadanee
Guest

Re: Macで計算されたスクリプト

テストする環境がないので推測ですが、それをApplescriptのスクリプトエディタで入力して動きますか?
do script の行がおかしいような。> destF まで含めてスクリプトですよね?

フィールド値がどこにも出てきませんが、それの前段階の実験中ですか?

FM18ならデータファイルスクリプトで直接読み書きできますが。。。ファイルの一部の書き換えですか?

#7 2020-05-05 18:09:10

Shin
Member

Re: Macで計算されたスクリプト

do shell script
では

Offline

#8 2020-05-05 18:21:20

koeda
Member

Re: Macで計算されたスクリプト

himadaneeさんの指摘のとおりと思います。

3行目でdestFにリダイレクト先を代入していますが、
do script "実行されるコマンド > リダイレクト先のパス"
なので、destFはターミナルに渡せていません。

Last edited by koeda (2020-05-05 18:24:01)

Offline

#9 2020-05-05 18:46:05

hayashi
Guest

Re: Macで計算されたスクリプト

先ほどの件はフィールドの書き出しでエラー処理をしたらできました。お騒がせしました。その後ffmpegで動画を結合したいのですが、

ソースファイルと出力ファイルを変数に設定

"tell application \"Terminal\"¶
activate¶
\"echo ffmpeg \" -f concat -i & $destF & $outF¶
end tell
"

activate¶
\"echo ffmpeg  -f concat -i & $destF & $outF \"¶
end tell
"
どちらもうまくいきません。
よろしくお願いいたします。

#10 2020-05-05 18:56:26

koeda
Member

Re: Macで計算されたスクリプト

ffmpegコマンドはよく知りませんが…

do scriptが抜けているのでは?
echoは不要では?(実行したいのはechoコマンドではなくffmpegなので)
$destFと$outFの前後にスペースは入っていますか?

Offline

#11 2020-05-05 19:01:36

hayashi
Guest

Re: Macで計算されたスクリプト

"tell application \"Terminal\"¶
activate¶
do script \"ffmpeg -f concat -i  & $destF  & $outF\"¶
end tell
"
で動きました
でも
ターミナルに
Missing argument for option 'i'.
Error splitting the argument list: Invalid argument
とでて止まってます。
ソースファイルのリストをファイルメーカーのフィールドの書き出しで作ってるのですが
内容は
file 1A.mp4
file 2A.mp4
file 3A.mp4
file 4A.mp4
file 5B.mp4
とかです

よろしくお願いいたします。

#12 2020-05-05 19:09:57

koeda
Member

Re: Macで計算されたスクリプト

エラーメッセージの前に、実際に実行されたコマンドが出ているはずなので、
まずそれが正しいコマンドになっているか確認してください。
ファイル名のリストに改行が含まれていたりするとダメですよ。

Offline

#13 2020-05-05 19:37:04

hayashi
Guest

Re: Macで計算されたスクリプト

"tell application \"Terminal\"¶
activate¶
do script \"ffmpeg\ -f\ concat\ -i\ & $inF & \  & $outF\"¶
end tell
"
これでターミナルにエラーは出なくなったけど動画は作成されません。
よろしくお願いいたします。

#14 2020-05-05 19:54:21

hayashi
Guest

Re: Macで計算されたスクリプト

全体は
ディレクトリの取得 [ $path ]
ディレクトリの取得 [ $out ]
変数を設定 [ $inF; 値:$path & "mixText.txt" ]
変数を設定 [ $outF; 値:$out & edition::edition & ".mp4" ]
エラー処理 [ オン ]
フィールド内容のエクスポート [ edition::mixText; 「$inF」 ]
AppleScript を実行 [ 計算済みの AppleScript: "tell application \"Terminal\"¶ activate¶ do script \"ffmpeg\ -f\ concat\ -i\ & $inF & \ & $outF\"¶ end tell " ]
です。
結合ファイルを指定するテキストファイルmixText.txtを作成。画像結合のコマンドを送信。
したい内容です。
よろしくお願いいたします。

#15 2020-05-05 20:39:15

himadanee
Guest

Re: Macで計算されたスクリプト

計算結果にFMの変数が含まれてるのがまずいでしょう。変数値にエスケープ必要な文字はないものとして、””の外へ出してみる?
do script \"ffmpeg\ -f\ concat\ -i\ " & $inF & "\  " & $outF "\"¶

#16 2020-05-05 22:02:31

hayashi
Guest

Re: Macで計算されたスクリプト

演算子を入れてくださいと出ます。

#17 2020-05-06 07:24:20

himadanee
Guest

Re: Macで計算されたスクリプト

& が1つ抜けてましたね。
do script \"ffmpeg\ -f\ concat\ -i\ " & $inF & "\  " & $outF & "\"¶

https://www.ffmpeg.org/ffmpeg.html#Description-1
を見ましたが、concatとか、-iにテキストファイルを指定するというのが見当たりません。ターミナルで実行できたコマンドはどういうものですか?
ファイル名をフルパス指定してないから、ffmpegの前にcdコマンドを実行しないと動かないのでは?

#18 2020-05-06 10:08:08

koeda
Member

Re: Macで計算されたスクリプト

ググってみると、例えば以下のような紹介記事が見つかります。
https://webnetforce.net/ffmpegde-dong-h … no/#concat

この記事に従えば、結合対象となる複数のファイルをテキストファイルとして渡せるようですが、
記事の例でもファイルはフルパスで指定するのが望ましいとされていますね。

とにかく、
1)まずターミナルでコマンドが実行できるようにする
2)動作が確認できたコマンドをFileMakerで組み立て〜実行できるようにする
という手順で進めるべきかと。
現状では、どこに問題があるのかの切り分けもできませんので。

Last edited by koeda (2020-05-06 10:28:24)

Offline

#19 2020-05-06 19:13:39

hayashi
Guest

Re: Macで計算されたスクリプト

"tell application \"Terminal\"¶
activate¶
do script \"ffmpeg -f concat -i /Users/hayashi/Desktop/movie_mp4/mixText.txt /Users/hayashi/Desktop/movie_mix/" & edition::edition & ".mp4\"¶
end tell"

で解決しました
しかし
mixText.txtをファイルメーカーのスクリプトのフィールドの書き出しで行うと文字コードなのかエラーが起きてテキストエディターで書き直すとスクリプトが動きます。フィールドの書き出し以外でいい方法ありますか?

#20 2020-05-06 20:35:34

hayashi
Guest

Re: Macで計算されたスクリプト

"tell application \"Terminal\"¶
activate¶
do script \"echo file 1" & edition::cv1 & ".mp4 > /Users/hayashi/Desktop/movie_mp4/mixText.txt\"¶
end tell"
このような方法でフィールドの値を書き込めましたがターミナルがどんどん開きます。
閉じるにはどうすればいいでしょうか。

#21 2020-05-06 21:16:17

hayashi
Guest

Re: Macで計算されたスクリプト

delay 0.5¶
close (get window 1)¶
で解決しました。
色々ありがとうございました。

#22 2020-05-07 07:28:48

himadanee
Guest

Re: Macで計算されたスクリプト

最初にShinさんから指摘がありますが、do shell scriptを使えばターミナルが不要なのでは?
https://developer.apple.com/library/arc … ities.html

文字コードの件は、改行をLFにする必要があるのかな?¶でなくChar(10)

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 559.48 KiB (Peak: 580.38 KiB) ]