GetScriptName
概要 †
現在使用中の AVS ファイルの名前(フルパス)を取得する関数。関数の戻り値(返ってくるデータの種類)は、文字列(string 型)です。
ネタ元は、Get the current script filename - Doom9's Forum です。
作者 †
- stickboy
- mf(オリジナル版)
関数 †
Get the current script filename - Doom9's Forum より。
function GetScriptName() { Try { assert(false) } Catch(err_msg) { err_msg = MidStr(err_msg, FindStr(err_msg, "(") + 1) filename = LeftStr(err_msg, StrLen(err_msg) - FindStr(RevStr(err_msg), ",")) return filename } }
書式 †
GetScriptName()
引数 †
- なし
使用例 †
AVISource("example.avi") # ソース this_script_name = GetScriptName() # AVS ファイルの名前を取得して、変数 this_script_name に代入 Subtitle(this_script_name) # Subtitle フィルタでファイル名を表示 # GetScriptName 関数 function GetScriptName() { Try { assert(false) } Catch(err_msg) { err_msg = MidStr(err_msg, FindStr(err_msg, "(") + 1) filename = LeftStr(err_msg, StrLen(err_msg) - FindStr(RevStr(err_msg), ",")) return filename } }
上の画像ではモザイクがかかっていますが、実際にはドライブ名やフォルダ名を含めたフルパスでファイル名を取得します。
なお、GetScriptName 関数の戻り値は文字列なので、上記の使用例は以下のようにもっと簡単に書くこともできます。
AVISource("example.avi") Subtitle(GetScriptName()) # 以下、省略
備考 †
ファイル名のみを取得したい †
フルパスではなく、ファイル名のみを取得できるように改造してみました。
スクリプト †
# GetScriptName, modified by niiyan # 変更点: ファイル名のみ取得可能にした。 function GetScriptName(bool "fullpath") { get_fullpath = default(fullpath, true) Try { assert(false) } Catch(err_msg) { err_msg = MidStr(err_msg, FindStr(err_msg, "(") + 1) filename = LeftStr(err_msg, StrLen(err_msg) - FindStr(RevStr(err_msg), ",")) filename = (get_fullpath == false) ? RightStr(filename, FindStr(RevStr(filename), "\") - 1) : filename return filename } }
使用例 †
AVISource("example.avi") this_script_name = GetScriptName(false) # ファイル名のみを取得したい場合は、実引数として false を指定 Subtitle(this_script_name) # 以下、省略
実引数として false を指定すると、フルパスではなくファイル名のみを取得します。実引数を省略するか true を指定した場合は、従来どおりフルパスで取得します。
AvsP 使用時の注意 †
AvsP でこの関数を使用すると、プレビュー時に取得できるのは preview.avs(プレビュー用の AVS ファイル)のフルパスになるようです。
最終更新日時: 2014-03-11 (火) 03:48:06 (3927d)