包哥 发表于 2023-7-13 12:54:02

如何让lisp自动在桌面创建一个txt文件

如图,因每个人的电脑名称不一样,比如下图分别是“1”和"Administrator",所以每个人电脑的桌面路径可能不一样,如何让程序能自动获取电脑名称,并成功在每个使用者的桌面上建立一个文件?

muwind 发表于 2023-7-13 21:25:21

本帖最后由 muwind 于 2023-7-13 23:21 编辑

用 (getenv "userprofile")获取当前用户文件夹
(strcat (getenv "userprofile")"\\Desktop\\输出结果.txt" )   应该也可以



命令: (getenv "ALLUSERSPROFILE")
"C:\\ProgramData"

命令: (getenv "APPDATA")
"C:\\Users\\用户名\\AppData\\Roaming"


命令: (getenv "CommonProgramFiles")
"C:\\Program Files\\Common Files"

命令: (getenv "COMPUTERNAME")
"计算机名"

命令: (getenv "COMSPEC")
"C:\\Windows\\system32\\cmd.exe"


命令: (getenv "HOMEDRIVE")
"C:"

命令: (getenv "HOMEPATH")
"\\Users\\用户名"

命令: (getenv "NUMBER_OF_PROCESSORS")
"4"

命令: (getenv "OS")
"Windows_NT"

命令: (getenv "Path")
"c:\\program files\\autocad 2010\\zh-cn;c:\\program files (x86)\\nvidia
corporation\\physx\\common;c:\\windows\\system32;c:\\windows;c:\\windows\\system
32\\wbem;c:\\windows\\system32\\windowspowershell\\v1.0\\;c:\\users\\用户名\\
appdata\\roaming\\autodesk\\autocad 2010\\r18.0\\chs\\support;c:\\program
files\\autocad 2010\\support;c:\\program files\\autocad 2010\\fonts;c:\\program
files\\autocad 2010\\help;c:\\program files\\autocad
2010\\support\\color;c:\\program files\\autocad
2010;c:\\program files\\autocad 2010\\drv"

命令: (getenv "PATHEXT")
".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC"

命令: (getenv "PROCESSOR_ARCHITECTURE")
"AMD64"


命令: (getenv "PROCESSOR_LEVEL")
"6"

命令: (getenv "PROCESSOR_REVISION")
"2502"

命令: (getenv "ProgramFiles")
"C:\\Program Files"

命令: (getenv "SESSIONNAME")
"Console"

命令: (getenv "SYSTEMDRIVE")
"C:"

命令: (getenv "SYSTEMROOT")
"C:\\Windows"

命令: (getenv "TEMP")
"C:\\Users\\用户名\\AppData\\Local\\Temp"


命令: (getenv "tmp")
"C:\\Users\\用户名\\AppData\\Local\\Temp"

命令: (getenv "USERNAME")
"用户名"

命令: (getenv "USERPROFILE")
"C:\\Users\\用户名"

命令: (getenv "WINDIR")
"C:\\Windows"

包哥 发表于 2023-7-13 13:09:27

已解决,(setq ff (open (strcat (vla-item (vlax-get (vlax-create-object "WScript.Shell" ) 'SpecialFolders) "Desktop") "\\输出结果.txt") "w"))

自贡黄明儒 发表于 2023-7-13 14:12:55

你图示的方法也是可以创建的。

vormittag 发表于 2023-7-13 14:21:37

利用 windows 的用户变量 %userprofile%, %userprofile%/desktop 应该也可以吧。直接写路径要考虑一下系统的安装位置。我记得这个位置是可以搬家移动到别的分区的,用 C:/... 没有通用性。

包哥 发表于 2023-7-13 21:43:20

muwind 发表于 2023-7-13 21:25
用 (getenv "userprofile")获取当前用户文件夹
(strcat (getenv "userprofile")"\\Desktop\\输出结果.t ...

对,这种更简洁

包哥 发表于 2023-7-13 21:44:22

自贡黄明儒 发表于 2023-7-13 14:12
你图示的方法也是可以创建的。

我那种不能自动识别用户名称,用户名称是固定的,使用灵活性欠缺

包哥 发表于 2023-7-13 22:05:06

muwind 发表于 2023-7-13 21:25
用 (getenv "userprofile")获取当前用户文件夹
(strcat (getenv "userprofile")"\\Desktop\\输出结果.t ...

:handshake

技术工作室 发表于 2023-7-14 07:33:02

学习学习顶一个

liuhe 发表于 2023-7-14 09:12:24

muwind 发表于 2023-7-13 21:25
用 (getenv "userprofile")获取当前用户文件夹
(strcat (getenv "userprofile")"\\Desktop\\输出结果.t ...

牛逼佩服大佬
页: [1]
查看完整版本: 如何让lisp自动在桌面创建一个txt文件