コンテンツにスキップ

その他

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