バッチ処理の際にパラメータを渡したい
[OS]ALL
[リリース] 6.12, 8.1, 8.2
[キーワード] SYSPARM, BATCH
[質問]Windows版SASでバッチ処理を行なう際に、ユーザー固有の値をセットし、SASプログラム内で値を受け取って実行することは可能でしょうか。
[回答]
バッチプログラム内にユーザ固有のパラメータを記述し、SASプログラムへ受け渡すには、「SYSPARM」システムオプションを使用します。SYSPARMオプションの引数には、最大200バイトまでの文字列を指定できます。SYSPARM関数を使用すれば、SASのDATAステップ内でこの引数を参照できます。
以下に、バッチプログラムのサンプルを示します。拡張子「.bat」をつけて、任意のファイル名で保存します(例:test.bat)。 "C:\Program Files\SAS Institute\SAS\V8\nls\ja\sas.exe" -sysin "C:\temp\test.sas" -config "C:\Program Files\SAS Institute\SAS\V8\nls\ja\Sasv8.cfg" -log "C:\temp\test.log" -nosplash -icon -sysparm JPNSAS
※ 実際は1行で記述します
以下に、バッチファイル内で参照するSASプログラム"test.sas"の内容を示します。-sysparmで与えたパラメータをログに出力するプログラムとなっています。 /** test.sas **/ %PUT "UserIDは &sysparm です"; バッチファイルを実行すると、-logで指定した場所にSASのログファイル「test.log」が作成されます。ログファイルの内容は、次のようになります(一部抜粋)。 NOTE: SAS初期化 処理 : 処理時間 0.67 秒 CPU 時間 0.42 秒 1 %PUT UserIDは &sysparm です; UserIDは JPNSAS です |