2017-05-11 2 views
0

SAS .xptファイルを出力するSASスクリプトがあります。私は現在、これを生成するPROC COPYメソッドを使用しています。なぜなら、必要な名前にダッシュが含まれていて、8文字より長いからです(これはxportを使用するときの名前の制限です)。.xptファイル名にタイムスタンプを含めるにはどうしたらいいですか?

次のように私のコードは、大きく次のとおりです。私は最近、出力ファイル名にタイムスタンプを含めるように要求されている

LIBNAME TempSrc "C:\Temp"; 
LIBNAME xportout xport 'C:\Temp\1234-AB-FileOut_Name_.xpt'; 

PROC IMPORT datafile="C:\Temp\FileIn.csv" 
    out=mydata 
    dbms=dlm replace; 
    DELIMITER= ","; 
    getnames=yes; 
    options ExtendObsCounter=no; 
RUN; 

DATA TempSrc.SasFile; 
    set work.mydata 
RUN; 

PROC COPY in=TempSrc out=xportout memtype=data; 
    select stdy7673; 
RUN; 

私は、必要に応じて、日付と時刻を生成するために、これらのマクロを持っている:

%let today=%sysfunc(date(), date9.); 
%let now=%sysfunc(time(), time5.); 
%let now=%sysfunc(compress(&now, :)); 

私も、任意の成功を収めてLIBNAMEに組み込むことができませんでした。

どちらも次のが働いています

LIBNAME xportout xport 'C:\Temp\1234-AB-File_Name_&today.&now..xpt'; 
LIBNAME xportout xport 'C:\Temp\1234-AB-File_Name_' || &today. || &now. '.xpt'; 

どのように私は.xptファイル名に日時を含めることができますか?

答えて

0

マクロ変数は単一引用符では解決されません。

LIBNAME xportout xport "C:\Temp\1234-AB-File_Name_&today.&now..xpt"; 
+0

私は、xportステートメントが二重ではなく一重引用符を必要とすることを示したsasサポートサイトで何かを読んでいました。それにかかわらず、これは意図どおり正確に動作します。 –

関連する問題