물론 한 가지 옵션은 주석에 언급 된대로 UNC를 사용하는 것입니다. UNC는 //share/folder/otherfolder/file.xlsx
과 비슷한 모양이며 드라이브 매핑에 의존하지 않습니다.
그러나 어떤 이유로 든 가능하지 않은 경우 확실하게 해결할 수 있습니다. 어떻게 그렇게하는지는 먼저 SAS를 실행하는 방법에 달려 있습니다.
예를 들어 기업용 가이드를 사용하여 연결하는 경우, 아마도 prompt이 가장 좋습니다. 프롬프트는 매크로 변수를 정의하고 매크로 변수는 파일 이름 (또는 드라이브 문자)으로 사용될 수 있습니다.
다른 방법을 사용하는 경우에도 다양한 양식의 프롬프트를 계속 사용할 수 있지만 파일 이름 (또는 libname)을 정의하는 로컬 파일을 만들거나 매크로에 드라이브 문자를 저장하는 것이 더 쉽습니다 변하기 쉬운.
SAS를 완벽하게 제어 할 수 있는데 이는 일반적으로 유용합니다 (이 프로그램뿐만 아니라). 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_
이 무엇인지 알려주고 변수 중 하나가 충분히 유용 할 것입니다.
출처
2017-03-17 03:50:14
Joe
나는 SAS에 대해 아무것도 몰라요.하지만 경로에 관해서는 대신 UNC를 사용해야합니다. https://www.lifewire.com/unc-universal-naming-convention-818230 –
동의. 'cmd.exe'에'C :> net use'라고 입력하면 네트워크 드라이브 문자가 어떤 서버 주소인지 알 수 있습니다. – Hugs