「喰う・書く・逃げる」に棲む処

 動物に関するデータ分析者のブログです

SASをVSCodeの統合Terminalで実行する方法

※2022-9-23更新

最近VSCodeSAS関連の拡張機能が充実してきたので、VSCodeでコーディングしたSASプログラムをBase SASVSCodeから実行する方法を記します。

SAS拡張機能SASの公式が出しているものが使いやすいです。

communities.sas.com

他にもSASjsという拡張機能もあり、Node.jsで作られたプログラムでBase SASをサーバー化してVSCodeを完全IDEのようにするものもあります。

sasjs.io

まあ、SASjsは便利ですけど、なぜか日本語環境だとメッセージが文字化けしてしまい、デバッグしにくいのでBase SASVSCodeからTerminal経由で実行できるようにするのがコスパ最強な気がします。(メッセージのエンコードがUTF系列でもShift-JISでもなさそうでわけわからん(泣))

VSCodeからBase SASを実行する方法

統合ターミナルを開いて

sas -autoexec sasfile.sas

を実行させるだけです。

システムオプションとして代表的なものは以下のようなものがあります。

-AUTOEXEC : SAS起動時に自動実行するSASプログラム(プログラム自体はSASのエディターで開かない)
-SYSIN : バッチモードで実行するプログラムファイルのパスとファイル名
-LOG : バッチモードで実行するときのログファイルのパス、またはパスとファイル名
-PRINT : バッチモードで実行するときのアウトプットファイルのパス、またはパスとファイル名
-NOSPLASH : SAS起動時に表示されるスプラッシュウィンドウを表示しない
-ICON : バッチ実行中に表示されるウィンドウをアイコン化する
-マクロ変数A : マクロ変数Aに値を渡す

www.sas.com

他にも以下のページでオプションが解説されています。

documentation.sas.com

ちなみに"タスクの構成"で”tasks.json”を生成して以下のように記述すると[Ctrl]+[Shift]+Bのキーボードショートカットで実行できるようになります。

{
    "version": "2.0.0",
        "tasks": [
            {
                "label": "run_sas",
                "type": "shell",
                "command": "Start-Process",
                "args": [
                    "SAS",
                    "-ArgumentList",
                    "'-AUTOEXEC ${file} -NOSPLASH'"
                ],
                "group": {
                    "kind": "build",   
                    "isDefault": true
                }
            }
    ]
}