SASをバッチモードで実行する方法

Last-modified: 2009-09-16 (水) 23:37:08

複数のDMS(Display Management Mode インタラクティブモード)が,実行できるので,あまりバッチモードは使われないかもしれませんが,定時に繰り返し実行をさせたい場合にはバッチモードを応用するとよいでしょう.
このページを書くちょっと前のことですが,SASに数日かかる重い処理をさせたら,なぜかたびたびフリーズしてしまうので,処理を小分けにして,分けた処理毎にSASのバッチモードで小分け実行にして,フリーズを回避しました.(フリーズの原因はわからずじまいです)

方法1.実行したいSASプログラム(*.sas)を,sas.exeアイコンにドラッグする.

注 sas.exeは普通,c:\program files\sas\sas 9.1\sas.exe にあります.

方法2.実行したいSASプログラム(*.sas)を,右クリックし,「SASでバッチサブミット」を選ぶ.

注 複数バージョンのSASが選べる場合があります.

方法3.コマンドプロンプトから次のコマンドで実行する.

例1. 実行したいSASプログラムをmypgm.sasとすると

c:\program files\sas\sas 9.1\sas.exe -sysin c:\mysas\programs\mypgm.sas -config  c:\program files\sas\sas 9.1\sasv9.cfg

例2. マクロ変数を使って1つの文字データを引数で与えることができます.mypgm.sasの中で,マクロ変数 &sysparm に 文字データ"Tokyo"がセットされ実行が開始します.

c:\program files\sas\sas 9.1\sas.exe -sysin c:\mysas\programs\mypgm.sas -sysparm Tokyo -config c:\program files\sas\sas 9.1\sasv9.cfg

方法4.バッチファイルを用意しダブルクリックして実行する.

例3.次のようなバッチファイルmysasbatch.batを用意して,mypgm.sasを引数の値を変えて複数回実行します.パスにスペースがある場合は,ダブルクォートが必要です.

"c:\program files\sas\sas 9.1\sas.exe" -sysin c:\tmp\mypgm.sas -sysparm Tokyo -config "c:\program files\sas\sas 9.1\sasv9.cfg"
"c:\program files\sas\sas 9.1\sas.exe" -sysin c:\tmp\mypgm.sas -sysparm Osaka -config "c:\program files\sas\sas 9.1\sasv9.cfg"
"c:\program files\sas\sas 9.1\sas.exe" -sysin c:\tmp\mypgm.sas -sysparm Nagoya -config "c:\program files\sas\sas 9.1\sasv9.cfg"

Windowsのコントロールパネルでタスクスケジューラを利用すると、このバッチファイルを登録して
好きなタイミングでSASプログラムを実行できます。