调用SAS 9.2从命令行编辑程序(windows)

时间:2013-10-11 16:53:48

标签: sas

我一直在谷歌搜索一个小时,找不到最简单的东西。

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

如果我这样做:

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

它只是执行mysasprogram.sas。

帮助!

谢谢!

4 个答案:

答案 0 :(得分: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命令行选项,但是我们会遇到大量引用的问题。

答案 1 :(得分:1)

通过我的注册表和更多谷歌搜索,我得到了这个解决方案,这似乎工作。但是,我还没有充分了解SAS.EXE和SASOACT.EXE之间的区别。

SASOACT.EXE action=Open datatype=SASFile filename="mysasprogram.sas"

答案 2 :(得分:0)

我在使vasja's answer工作时遇到了一些麻烦 - 对%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%

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

答案 3 :(得分:0)

请阅读SAS Institute Inc.的Sandy Gibbs,Michele Mosca和Donna Bennett。

原始要旨(对于Windows操作系统中的File Explorer)是命令

"C:\PROGRA~1\SASHome\SASFOU~1\9.3\core\sasexe\SASOACT.EXE"
   action=Open datatype=SASFile filename="%1" progid=SAS.Application.903 

需要与.sas文件类型相关联。