我已经用谷歌搜索了一个小时,找不到最简单的东西。
我想从命令行调用 SAS 来编辑 SAS 程序。
如果我这样做:
C:\Program Files\SAS\SASFoundation\9.2(32-bit)\sas.exe mysasprogram.sas
它只是执行 mysasprogram.sas。
帮助!
谢谢!
我已经用谷歌搜索了一个小时,找不到最简单的东西。
我想从命令行调用 SAS 来编辑 SAS 程序。
如果我这样做:
C:\Program Files\SAS\SASFoundation\9.2(32-bit)\sas.exe mysasprogram.sas
它只是执行 mysasprogram.sas。
帮助!
谢谢!
创建文件:
E:\sasedit.bat
set _pgm=%1
start "start" "C:\Program Files\SASHome\SASFoundation\9.3\sas.exe" -autoexec "E:\autoexec.sas"
E:\autoexec.sas
%let _pgm=%sysget(_pgm);
dm "whost;include '&_pgm';";
运行命令:
E:\sasedit.bat E:\pathtomyfile\mysasprogram.sas
autoexec 代码的语法:DM 是显示管理器,WHOST 命令是调用 SAS 增强编辑器。
要将其与需要引号的路径一起使用,您必须在引号中提供路径并向 autoexec 代码添加一些引用处理。
运行一些初始命令的另一种方法是通过 INITSTMT SAS 命令行选项,但是我们会遇到大量引用的问题。
在浏览了我的注册表和更多谷歌搜索之后,我得到了这个解决方案,这似乎有效。但是,我还没有玩够,不知道 SAS.EXE 和 SASOACT.EXE 之间的区别。
SASOACT.EXE action=Open datatype=SASFile filename="mysasprogram.sas"
阅读“双击 SAS® 文件:接下来会发生什么? ” SAS Institute Inc. 的 Sandy Gibbs、Michele Mosca 和 Donna Bennett。
原始要点(适用于 Windows 操作系统中的文件资源管理器)是命令
"C:\PROGRA~1\SASHome\SASFOU~1\9.3\core\sasexe\SASOACT.EXE"
action=Open datatype=SASFile filename="%1" progid=SAS.Application.903
需要与文件类型相关联.sas
。
我在让vasja 的答案正常工作时遇到了一些麻烦——对 %sysget 的调用无法检索变量。
我最终使用了一个文件(launchsas.cmd):
set fn=%1
set fn=%filename:"=%
set command="%%let filename='%fn%'; dm 'whost;include &filename.;';"
start "start" C:\path\to\sas.exe -initstmt %command%
请注意,“文件名”变量的创建是为了避免嵌入引号的问题。