現在作業中のフォルダに手動で移動するのにうんざりしていて、SASでホットキーを作成したいと思っています。私はSASの中から現在のフォルダを開くコマンドを設計しました。しかし、私はそれをホットキーで実行することはできません。私が作成したSAS - ホットキーからマクロを呼び出す際にエラーが発生しました(SAS内からCWDを開きます)
(stolen)マクロは:
%macro GetPwd();
%qsubstr(
%sysget(SAS_EXECFILEPATH)
, 1
, %length(%sysget(SAS_EXECFILEPATH))-%length(%sysget(SAS_EXECFILENAME))
)
%mend;
私は私のautocallライブラリにGetPwd.sas
上記のように保存されています。対話モードで
、私は現在のSASの作業フォルダにWindowsエクスプローラを開くには、次を使用することができます。私はKEYS
メニューに上記の電話をかけるとき
/*The Call:*/
%sysexec(start explorer.exe "%GetPwd()" && exit);
問題が発生します。
私はホットキー(SHF F9
)を介してコールを発行すると、Windowsのエクスプローラは「コンピュータ」に開き、私はSASで次のエラーを取得する:
WARNING: Argument 2 to macro function %QSUBSTR is out of range.
WARNING: Argument 3 to macro function %QSUBSTR is out of range.
なぜこのエラーがときに発生ん電話はホットキーから発行され、エディタを介して提出されたときには発生しませんか?
私が使用してSAS一時フォルダの場所を開くのと同様の作業で成功を収めている:
%sysexec(start explorer.exe "%sysfunc(pathname(work))" && exit);
は、上記KEYS
メニュー画像にF9
を参照してください。
今私はSASにアクセスできないのでテストできませんが、 '%sysexec'コールを直接マクロルーチンに入れて、ショートカットに割り当ててみてください。 'submit '%OpenPwd;' ' –
http://support.sas.com/kb/36/613.html – user2877959