我写了一个替代函数来打开 AutoCAD 图纸。但是,当从 Windows 资源管理器运行文档时,AutoCAD 很难更改文档的打开方式(双击具有文件关联的文件)。我发现的唯一方法是更改注册表项“OpenDdeExec”。提供的参数 (%1) 为我提供了要打开的文件的非转义路径。
在将其解析为特殊字符之前,我需要忽略路径中的转义或用双反斜杠替换反斜杠。在 C# 中,您可以执行类似的操作string s = @"I\Like random\backslashes";
,反斜杠将被视为实际的反斜杠字符。在 lisp 中,我发现的唯一等价物是quote
它具有奇怪的行为(因为它的正常使用并不完全是我想要实现的)。
如果我写类似的东西(quote (I\Like random\backslashes))
,结果将是(I\\Like random\\backslashes)
我所需要的。但是,我必须摆脱括号。知道我怎么能做到这一点吗?
注意:这样做(quote I\Like random\backslashes)
会因空间而中断。但是,它可以在(quote I\Like\backslashes)
. 这会I\\Like\\backslashes
像我想要的那样输出。
这是当前具有所述问题的 OpenDdeExec:
(OPENFROMSHELL (QUOTE (%1)))