使用-l参数加载时获取当前emacs脚本文件的路径

使用-l参数加载时获取当前emacs脚本文件的路径,emacs,elisp,Emacs,Elisp,在加载并使用emacs-l path/to/script/foo.el运行的lisp文件中,我可以获取运行文件的路径吗 例如,是否有某种方法可以确定foo.el中的path/to/script是什么 我对lisp不是很有经验,所以请温和地对待您的解决方案 Emacs 22.3.1在Windows 7上变量加载文件名在加载文件时绑定到文件名。要获取目录,只需使用文件名目录,如下所示: (file-name-directory load-file-name) 可能与@Trey Jackson重复,

在加载并使用
emacs-l path/to/script/foo.el运行的lisp文件中,我可以获取运行文件的路径吗

例如,是否有某种方法可以确定
foo.el
中的
path/to/script
是什么

我对lisp不是很有经验,所以请温和地对待您的解决方案


Emacs 22.3.1在Windows 7上

变量
加载文件名
在加载文件时绑定到文件名。要获取目录,只需使用
文件名目录
,如下所示:

(file-name-directory load-file-name)

可能与@Trey Jackson重复,我同意它很接近,但我需要更多的时间来跟踪文件名目录函数。@JesseVogt不太完美
eval
require
d包文件中对其进行求值:
调试器已输入--Lisp错误:(错误的类型参数stringp nil)文件名目录(nil)
@yPhil调用
文件名目录
时需要传入一个字符串,显然是用
nil
调用它的。该变量仅在调用
load
-这是问题的上下文时设置。