3

我已经用谷歌搜索了一个小时,找不到最简单的东西。

我想从命令行调用 SAS 来编辑 SAS 程序。

如果我这样做:

C:\Program Files\SAS\SASFoundation\9.2(32-bit)\sas.exe mysasprogram.sas

它只是执行 mysasprogram.sas。

帮助!

谢谢!

4

4 回答 4

4

创建文件:

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';";
  • mysasprogram.sas 在不需要引号的路径中包含任何内容(在 DOS 中)。

运行命令:

E:\sasedit.bat E:\pathtomyfile\mysasprogram.sas

autoexec 代码的语法:DM 是显示管理器,WHOST 命令是调用 SAS 增强编辑器。

要将其与需要引号的路径一起使用,您必须在引号中提供路径并向 autoexec 代码添加一些引用处理。

运行一些初始命令的另一种方法是通过 INITSTMT SAS 命令行选项,但是我们会遇到大量引用的问题。

于 2013-10-11T21:40:33.130 回答
1

在浏览了我的注册表和更多谷歌搜索之后,我得到了这个解决方案,这似乎有效。但是,我还没有玩够,不知道 SAS.EXE 和 SASOACT.EXE 之间的区别。

SASOACT.EXE action=Open datatype=SASFile filename="mysasprogram.sas"
于 2013-10-12T02:12:59.063 回答
1

阅读“双击 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

于 2019-10-17T18:04:32.930 回答
0

我在让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%

请注意,“文件名”变量的创建是为了避免嵌入引号的问题。

于 2014-07-17T22:57:59.150 回答