確かに1つの方法は、コメントに記載されているようにUNCを使用することです。 UNCは、//share/folder/otherfolder/file.xlsx
と似ており、ドライブのマッピングに依存しないパスです。
ただし、それが何らかの理由で実現できない場合は、それを回避することはできます。どのように行うかは、まずSASの運用方法によって異なります。
エンタープライズガイドを使用して接続している場合は、たとえば、promptが最適です。プロンプトはマクロ変数を定義し、マクロ変数はファイル名(またはドライブ文字)として使用できます。
他の方法を使用している場合でも、さまざまなフォームのプロンプトが表示される可能性がありますが、ファイル名(またはlibname)を定義するローカルファイルを作成したり、ドライブ文字をマクロ変数。
SASを完全に管理している場合、これは(この1つのプログラムだけでなく)一般的に有用なものです。autoexec.sasに何かを入れることができます。このレベルの制御がない場合、またはこのプログラムのみに固有のものを使用する場合は、両方のPCおよび各PC上の同じ場所(たとえばc:¥SASFiles)にあるファイルを作成することができます異なるファイル名/ libname /マクロ変数(そのPCに適したもの)を持っています。その後、あなたのプログラムの先頭にそのファイル%include
があります。
最後に、PC名やその他の環境変数を使用して、現在稼動しているマシンを特定し、ロジックを駆動するために使用することができます。たとえば:
%macro define_path;
%global path_letter;
%if &syshostname = 55PC1010G %then %do;
%let path_letter=P;
%end;
%else %let path_letter=Y;
%mend define_path;
%define_path;
%put &=path_letter;
あなたは値が何であるかを確認するために、各マシン上で%put &=syshostname
したいと思うが、把握するのに十分な簡単なはずです。何らかの理由で&syshostname
が定義されていない場合、%put _automatic_
は何かを教えてくれますし、変数の1つが十分に役立つはずです。
出典
2017-03-17 03:50:14
Joe
私はSASについて何も知らないが、パスに関しては代わりにUNCを使うべきである。 https://www.lifewire.com/unc-universal-naming-convention-818230 –
合意。 'cmd.exe'に' C:> net use'と入力すると、あなたのネットワークドライブ文字がどのサーバにアドレス指定されているのかがわかります。 – Hugs