Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Emacs 如何从elisp获取带反斜杠的windows路径_Emacs_Elisp - Fatal编程技术网

Emacs 如何从elisp获取带反斜杠的windows路径

Emacs 如何从elisp获取带反斜杠的windows路径,emacs,elisp,Emacs,Elisp,我正在用emacs在windows上试用一些东西。在我的例子中,我需要从elisp返回带有反斜杠的文件路径。但是elisp总是用斜杠等返回路径 (expand-file-name "text.log" "d:\\ProgramData\\temp") => d:/ProgramData/temp/text.log 我的要求: (expand-file-name "text.log" "d:\\ProgramData\\temp") => d:\ProgramData\temp\te

我正在用emacs在windows上试用一些东西。在我的例子中,我需要从elisp返回带有反斜杠的文件路径。但是elisp总是用斜杠等返回路径

(expand-file-name "text.log" "d:\\ProgramData\\temp")
=> d:/ProgramData/temp/text.log
我的要求:

(expand-file-name "text.log" "d:\\ProgramData\\temp")
=> d:\ProgramData\temp\text.log

它可以用regexp完成,但我需要更简单的方法。

是否将
中的标准文件名转换为
(elisp)标准文件名
符合您的需要?

当然
(字符串中的subst char?/?\\)
应该可以做到这一点。但还要注意的是,斜杠在Windows中几乎无处不在(我知道唯一不支持斜杠的工具是默认的“shell”(command.com、cmd.exe或类似名称)),因此您甚至不需要这种转换。

请注意,这不是
转换标准文件名
的预期用途,因此在某些情况下可能会失败(例如,返回不引用同一文件的名称)@Stefan:同意。但我也不明白罗增宾的目的,因为Emacs和Windows中的一些工具也可以处理斜杠。在这样的系统上,
转换器标准文件名
将返回不同的文件名,原始文件名无效。如果罗增宾想将此名称传递给其他工具,重命名可能是正确的行为vior.hi。谢谢您的帮助。我想将文件名传递给其他工具。但是这些工具不支持posix路径。因此我需要对其进行转换。@LooZengbin
转换器标准文件名
将返回不同的名称,例如,根据
信息
如果.f>,在MS-DOS上(转换器标准文件名“.f”)=>“\u f”在MS-DOS上,文件名无效,“\u f”可能是您想要的。