2014-01-21 12 views
2

我有一些SAS代碼寫入Excel工作簿中的特定工作表。其他工作表具有公式,這些工作簿基本上是一個模板,當我的代碼運行時,它會被填充。在PCFILES服務器上使用SAS X命令

我希望能夠多次運行代碼,並且每次運行時都會獲得不同版本的模板。我在想最簡單的方法來實現這一點是寫出來的模板,然後使用x命令或其他東西複製工作簿,然後重命名它。

SAS是在Linux服務器上,我使用pc文件服務器寫入excel。如何設置x命令來複制文件並在遠程服務器上更改其名稱?

+0

工作簿是否在Linux服務器(或其映射的共享)上物理地存在? – Joe

+0

工作簿在Windows服務器上。我在使用proc export和使用libname與pcfiles引擎進行遠程連接之間來回切換。 – user3220490

+0

那麼,linux服務器不能直接'看'工作簿? – Joe

回答

0

對不起,對於遲到的答案,但我只是遇到了這個問題,可以提供一個解決方案。

你能通過windows(SMB共享或類似的)訪問sas服務器上的文件嗎?這是最簡單的方法。如果你不能,在Linux上設置Samba通常非常容易。

首先,將excel模板存儲在SAS服務器上,從windows計算機上可以看到它(使用PC文件服務器)。假設文件位於SAS服務器的'/home/files/template.xlsx'中,並且該目錄在Windows服務器上作爲'\ linuxservername \ files \ template.xlsx'(或\ 192.168.1.5 \ files \ template.xlsx如果你使用IP地址)

現在你只需要使用SMB路徑的PCFILES的東西和本地Linux路徑的X命令。像

x 'cp /home/files/template.xlsx /home/files/output.xlsx'; 
libname output PCFILES 
    path='\\linuxservername\files\template.xlsx' 
    server='PCFilesServerName' 
    port=1234; 

注意餵養PCFiles的路徑時,您使用的網絡地址的東西(因爲你的窗戶框必須能夠讀取和寫入的話),當你發出的複製命令,使用本地地址。

根據您的系統配置,您可能也可以使用網絡路徑。當我嘗試它時,我無法使它工作,因爲unix服務器不喜歡它(它共享SMB上的文件夾,但它不知道如何從命令行訪問它)。