2014-04-01 3 views
-1

Proc에 내 서버에 .xlsx 파일을 업로드하려고합니다. 누군가 내가 잘못하고있는 것을 말해 줄 수 있습니까?proc 업로드 로컬 파일

rsubmit; 
filename locref %unquote(%str(%'("C:\Users\Admin\Desktop\")%')); 

Proc Upload 
    infile=locref('*.xlsx') 
    outfile=%unquote(%str(%'("*.xlsx")%')) BINARY; 
run; 
endrsubmit; 

기본적으로 사람들은 .xlsx 파일을 다른 파일 이름의 위치로 가져오고 모든 파일을 서버에 업로드하고 싶습니다.

Windows 7 64 비트 및 Office 2010 32 비트와 함께 SAS 9.3 64 비트를 사용합니다.

+0

당신은 왜 모든 것을 지저분하게 인용/ – Joe

+0

또한 이전 질문과 많이 닮았습니다. 왜 다시 묻는거야? 여기서 작동하지 않는 것을 지정하지 마십시오. – Joe

+0

Noted @Joe는 수년간 동료들을 떠나서 만든 코드를 개선하려고 노력했습니다. – user3442162

답변

0

이 예를 살펴 감사합니다

filename locref 'c:\'; 
rsubmit; 
filename fref '/local/programs'; 
proc upload infile=locref('*.sas') 
      outfile=fref; 
run; 
endrsubmit; 

을 주목 outfile= 옵션은 출력 디렉토리 아닌 파일입니다 fileref을 의미한다. 또한 코드에서 첫 번째 파일 이름 문은 예에서와 같이 rsubmit; 앞에 와야합니다.

귀하의 최종 코드가 될 것이다 :

filename locref "C:\Users\Admin\Desktop"; 
rsubmit; 
filename outref "<INSERT SERVER-SIDE DIRECTORY HERE>"; 

Proc Upload 
    infile=locref('*.xlsx') 
    outfile=outref BINARY; 
run; 
endrsubmit; 

N.B. <> 3 행의 비트를 업로드하려는 원격 서버의 디렉토리로 바꾸십시오. 원래 코드로 인용하지 않았으므로 어디로 파일을 옮길 지 잘 모릅니다.

@ Joe는 모든 인용 부호/인용 부호가 필요하지 않으므로 코드를 읽기가 더 어렵게 만들고이 경우 이점을 추가하지는 않습니다.

+0

고맙습니다. 내가 아는 코드는 지저분합니다 ... 나는 비즈니스를 떠난 동료들로부터 기존 코드를 개선하려고합니다. xls 및 xlsx 와일드 카드를 사용할 수 있습니까? 어쩌면 ('* .xlsx', '*. xls') 같은? – user3442162

+0

''* .xls? ''를 사용하면 물음표는'xlsx '의 두 번째'x '와 일치하지만 공백도 허용됩니다. 작동하지 않는다면''* .xls * ''를 시도해보십시오. 첫번째 해결책이 바람직합니다. – mjsqu

+0

어느 쪽도 작동하지 않습니다. "경고 : 외부 파일이 와일드 카드 사양과 일치하지 않습니다." – user3442162

관련 문제