その他¶
rccharset¶
書式¶
$(rccharset 文字コード名)
戻り値¶
なし
解説¶
華和梨の出力するエラーメッセージの言語を、文字コードで指定する。指定する文字列は大文字、小文字を同一視する(case insensitive)。デフォルトは"ISO-8859-1"(いわゆる半角英文字、ほぼASCII)。それ以外には、現在の所、"Shift_JIS"(Phase 9.0.0以降は"UTF-8"も)だけが使える。対応していない文字コードを指定するとISO-8859-1になる。
Phase 9.0.0以降は"UTF-8"も指定でき、"Shift_JIS"と同じく日本語になる。
使用例¶
=kis
# 日本人ならやっぱり?
rccharset Shift_JIS;
=end
date¶
書式¶
$(date 書式文字列1 経過秒数1)
戻り値¶
日時の文字列
解説¶
経過秒数1を1970/1/1 0:00:00からの経過秒数と考え、書式文字列1に従って、日時の情報を返す。経過秒数1は省略可能で、省略すると現時刻を指定したことになる。書式文字列には以下が使える。
| 指定 | 内容 |
|---|---|
%d |
日(2桁,01..31) |
%e |
日(1..31) |
%H |
時(2桁,00..23) |
%j |
元日からの通算日(3桁,001..366) |
%J |
元日からの通算日(1..366) |
%k |
時(0..23) |
%m |
月(2桁,01..12) |
%M |
分(2桁,00..59) |
%n |
月(1..12) |
%N |
分(0..59) |
%r |
秒(0..59) |
%S |
秒(2桁,00..59) |
%s |
1970/1/1 00:00:00(協定時)からの通算秒数 |
%w |
曜日(0..6,日曜日が0) |
%y |
年(4桁,2000...) |
%Y |
年(4桁,2000...) |
'%'で始まるマクロ以外の文字は、そのまま表示する。また、書式文字列を省略した場合、「%y/%m/%d %H:%M:%S」をセットした場合と等価である。
経過秒数は64ビットで扱うので、2038年以降も指定できる。ただしWindows版(Cランタイムのmsvcrt)の限界で、1970年より前と3000年末あたりより後の経過秒数は変換できず、空文字列を返す(POSIX版はOSのtime_tの範囲による)。また、式($[ ])の整数は32ビットのままなので、2038年以降の経過秒数どうしの計算($[ $(date %s) - ${1stTime} ]など)は正しく動かない。
使用例¶
例1
event.OnBoot : $(entry "time."$(date %H) )
time.01 : 午前一時です\e
time.02 : 午前二時です\e
(中略)
time.23 : 午後十一時です\e
例2
event.OnFirstBoot : $(setstr 1stTime $(date %s) ; entry TalkFirstBoot)
sentence : (
\0\s[0]私が最初に起動したのは
$(date %y ${1stTime})年の
$(date %n ${1stTime})月
$(date %e ${1stTime})日で、\w8\w8
今日で$[ ($(date %s) - ${1stTime}) / (3600 * 24) ]日目です。\e
)
mktime¶
書式¶
$(mktime 年 月 日 時 分 秒)
戻り値¶
1970/1/1 0:00:00(協定世界時)から指定時刻までに経過した秒数
解説¶
1970/1/1 0:00:00(協定世界時)から、引数で指定した時刻までに経過した秒数を返す。主に戻り値を$(date %s)の第2引数に与える。2038年以降も扱えるが(64ビット)、Windows版(Cランタイムのmsvcrt)の限界で、協定世界時で1970年より前になる時刻と3000年末あたりより後の時刻は変換できず、-1を返す。
使用例¶
=kis
# 1970/1/1 0:00:00(UTC)から2005/4/1 0:30:25までに経過した秒数を返す
mktime 2005 4 1 0 30 25;
# 2001/1/25 1:00:00から1000日後の日付を求める
# 1000日分をmktimeで求めた時刻に足して、dateの第2引数に与えている
setstr @day $(mktime 2001 1 25 1 0 0);
date "%y/%m/%d %H:%M:%S" $[ ${@day} + 1000 * 24 * 60 * 60 ];
=end
getenv¶
書式¶
$(getenv 環境変数名1)
戻り値¶
環境変数の内容
解説¶
OSの環境変数の内容を返す。環境変数名1で指定した環境変数の内容を返す。指定した環境変数がなかった場合、ヌル文字を返す。
使用例¶
$(getenv windir)
# 環境変数windirが存在する場合、その内容を返す
help¶
書式¶
$(help コマンド名)
$(help)
戻り値¶
リファレンスまたはコマンド一覧
解説¶
コマンドが指定された場合は、リファレンスを返す。
コマンドが指定されない場合は、使用可能なコマンドの一覧を返す。
戻り値は"幸水"での出力を前提にしている。
使用例¶
例("幸水"での実行例)
echo-mode > $(help help)
help
syntax : help Command1
return : help message
comment : return online help of KIS commnad (for Kosui use)
echo-mode > $(help)
Command list :
echo
set
(・・・中略・・・)
escape
echo-mode >
logfile¶
書式¶
$(logfile ファイル名)
戻り値¶
なし
解説¶
ログを出力するファイルを設定する。"-"を設定すると標準出力になる(幸水など)。引数無しにすると、どこにも出力されない(デフォルト)。
Phase 9.0.0以降、ログファイルはUTF-8(BOMなし)で出力される。
使用例¶
=kis
# 日付付きログファイルを作成
logfile kawari-$(date %Y%m%d%H%M%S).log;
# ログ禁止
logfile;
=end
loglevel¶
書式¶
$(loglevel キーワードの列挙)
戻り値¶
なし
解説¶
ログに出力する内容を決める。引数に列挙したキーワードに対応する内容が出力されるようになる。キーワードには以下がある。デフォルトではquietだが、現在、一部のログが設定を無視して出力されてしまう既知のバグあり。
| キーワード | 出力する内容 |
|---|---|
| error | エラー |
| warning | 警告 |
| info | 動作情報 |
| decl | 空エントリへの読み出しアクセス |
| paranoia | 上記全て+非常に詳しい動作情報 |
| baseevents | 基本イベント |
| timeevents | 時刻(秒、分)イベント |
| rscevents | リソース問い合わせイベント |
| quiet | 明確にログを禁止する |
使用例¶
=kis
# 通常デバッグ時には、これで十分
loglevel error warning info baseevents;
# まぁ、一度ぐらいは試してみてもいいです
# 間違っても配布版でこれをやらないように
loglevel paranoia baseevents;
=end
logprint¶
書式¶
$(logprint 単語 [ 単語 ... ])
戻り値¶
なし
解説¶
ログに任意の文字列を出力する。引数に指定された全ての単語をスペースを挟んで連結し、出力する。
使用例¶
=kis
# いわゆるprintfデバッグ
logprint ここまで動いた;
=end
debugger¶
書式¶
$(debugger on)
$(debugger off)
戻り値¶
なし
解説¶
起動中のゴーストに、幸水からの接続を許すかどうかを決める。引数に「on」を指定すると、接続可能になる。「off」を指定すると接続不可になる。接続可能な場合、System.Debuggerエントリに「on」という文が定義される。
使用例¶
=kis
# 幸水にてデバッグ中
debugger on;
=end
rand¶
書式¶
$(rand 上限)
戻り値¶
整数の文字列
解説¶
0から上限の乱数を返す。戻り値は0を含み、上限を含まない。上限は負の数でもよい。
使用例¶
=kis
rand 52;
# 0から51までの乱数を返す
rand -10;
# 0から-9までの乱数を返す
=end
srand¶
書式¶
$(srand シード)
戻り値¶
なし
解説¶
乱数の種を設定する。主にデバッグ目的で使用する。
使用例¶
=kis
srand 12345678;
# 乱数の種を「12345678」に設定する
=end
securitylevel¶
書式¶
$(securitylevel レベル指定)
戻り値¶
なし
解説¶
セキュリティレベルを指定する。以下の値を設定できる。
| 値 | 意味 |
|---|---|
| 0 / low | 全てのイベントを許可する。 |
| 1 / middle | 外部からやってきたイベントを禁止。 |
| 2 / high | 当面は1(middle)と同じ。 |
| 3 / ultrahigh | 明確にローカルマシン発行と記されたイベントのみ許可。 |
なお、securitylevelコマンドは、ゴースト初期化中のみ、一回だけ実行可能である。
使用例¶
=kis
# 低レベルに設定
securitylevel low;
=end
ver¶
書式¶
$(ver 情報名)
戻り値¶
バージョン情報
解説¶
"華和梨"の情報を返す。「情報名」で欲しい情報を選択できる。
情報名が「license」の場合、"華和梨"のライセンス情報をログに出力する。情報名が「author」の場合、"華和梨"の開発者情報を返す。情報名を省略した場合、"華和梨"のバージョン情報を返す。バージョン情報のフォーマットは「基本名称[.補助名称[.補助名称]]/バージョン番号」。
使用例¶
例("幸水"での実行例)
echo-mode > $(ver)
KAWARI.kdt/8.2.0