启动时加载 init.q 文件
Load init.q file at startup
我的 q.bat
文件运行正常,它的内容是:
g:
cd \q
w32\q.exe %* -p 5000
在 init.q
文件中定义了一些基本的 q 函数后,我希望在每次启动 kdb+/q 时加载并使用它们。
我试过在 q.bat
文件末尾包含以下行,但它什么也没做:
q init.q
我读过其他方法,例如设置 QINIT
环境变量或编辑 q.q
文件,但我怀疑通过 .bat
加载更干净。
设置QINIT
或添加q.q
文件是将代码加载到每个q进程的正确方法。
但是,如果您想将代码加载到选定数量的 q 个进程中,可以通过以下方法完成:
将 w32\q.exe %* -p 5000
替换为 w32\q.exe init.q %*
(我省略了端口,因为您可能不希望所有进程都在同一端口上侦听)
在init.q
内您可以执行进程所需的初始化代码,这可能涉及
- 正在加载其他 q 脚本(例如
log.q
或 util.q
来自一些众所周知的目录)
- 处理命令行参数 (
.z.x
),以初始化特定的进程类型。例如,给定 cmd 行 q.bat rdb
,您可以 loda rdb.q
并调用 .rdb.init
函数
我的 q.bat
文件运行正常,它的内容是:
g:
cd \q
w32\q.exe %* -p 5000
在 init.q
文件中定义了一些基本的 q 函数后,我希望在每次启动 kdb+/q 时加载并使用它们。
我试过在 q.bat
文件末尾包含以下行,但它什么也没做:
q init.q
我读过其他方法,例如设置 QINIT
环境变量或编辑 q.q
文件,但我怀疑通过 .bat
加载更干净。
设置QINIT
或添加q.q
文件是将代码加载到每个q进程的正确方法。
但是,如果您想将代码加载到选定数量的 q 个进程中,可以通过以下方法完成:
将 w32\q.exe %* -p 5000
替换为 w32\q.exe init.q %*
(我省略了端口,因为您可能不希望所有进程都在同一端口上侦听)
在init.q
内您可以执行进程所需的初始化代码,这可能涉及
- 正在加载其他 q 脚本(例如
log.q
或util.q
来自一些众所周知的目录) - 处理命令行参数 (
.z.x
),以初始化特定的进程类型。例如,给定 cmd 行q.bat rdb
,您可以 lodardb.q
并调用.rdb.init
函数