我一直在谷歌搜索了一個小時,找不到應該是最簡單的東西。調用SAS 9.2從命令行編輯程序(windows)
我想從命令行調用SAS來編輯SAS程序。
如果我這樣做:
C:\Program Files\SAS\SASFoundation\9.2(32-bit)\sas.exe mysasprogram.sas
它只是執行mysasprogram.sas。
幫助!
謝謝!
我一直在谷歌搜索了一個小時,找不到應該是最簡單的東西。調用SAS 9.2從命令行編輯程序(windows)
我想從命令行調用SAS來編輯SAS程序。
如果我這樣做:
C:\Program Files\SAS\SASFoundation\9.2(32-bit)\sas.exe mysasprogram.sas
它只是執行mysasprogram.sas。
幫助!
謝謝!
通過我的註冊表和更多谷歌搜索後,我得到了這個解決方案,似乎工作。但是,我沒有足夠的瞭解SAS.EXE和SASOACT.EXE之間的差異。
SASOACT.EXE action=Open datatype=SASFile filename="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
的自動執行代碼的語法: DM是顯示管理器,WHOST命令調用SAS增強編輯器。
要在需要引號的路徑中使用此引號,您必須在引號中提供路徑併爲autoexec代碼添加一些引用處理。
運行一些初始命令的另一種方法是通過INITSTMT SAS命令行選項,但是我們會遇到大量引用問題。
不錯。我會自己使用這個。 – DomPazz
聰明的解決方案,雖然我不知道爲什麼有人會想這個。另外,我建議在'start'命令中加入'-rsasuser'選項以防止腳本「鎖定」SASUSER自動庫。 – BellevueBob
我遇到了一些麻煩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%
注意,「文件名」變量的創建是爲了避免與內嵌引號的問題。
SASOACT是SAS OLE自動化服務器控制器。它可能會啓動一個新進程或將文件發送到當前進程。我不知道我推薦以這種方式使用它 - 雖然它能夠做你所要求的,但我還沒有發現它在過去是非常可靠的。但是如果你的安裝沒有任何問題,這可能是一個很好的解決方案。 – Joe