我有一些 SAS 代码可以写入 Excel 工作簿中的特定工作表。其他工作表具有与此工作表相同的公式,因此工作簿基本上是一个在我的代码运行时填充的模板。
我希望能够多次运行代码,并在每次运行时得到不同版本的模板。我在想实现这一点的最简单方法是写出模板,然后使用 x 命令或其他东西来复制工作簿,然后重命名它。
SAS 在 linux 服务器上,我使用 pc 文件服务器写入 excel。如何设置 x 命令来复制文件并在远程服务器上更改其名称?
我有一些 SAS 代码可以写入 Excel 工作簿中的特定工作表。其他工作表具有与此工作表相同的公式,因此工作簿基本上是一个在我的代码运行时填充的模板。
我希望能够多次运行代码,并在每次运行时得到不同版本的模板。我在想实现这一点的最简单方法是写出模板,然后使用 x 命令或其他东西来复制工作簿,然后重命名它。
SAS 在 linux 服务器上,我使用 pc 文件服务器写入 excel。如何设置 x 命令来复制文件并在远程服务器上更改其名称?
很抱歉回答迟了,但我自己也遇到了这个问题,可以提供解决方案。
您可以通过 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 地址)
现在你只需要使用 PCFILES 的 SMB 路径和 x 命令的本地 linux 路径。就像是
x 'cp /home/files/template.xlsx /home/files/output.xlsx';
libname output PCFILES
path='\\linuxservername\files\template.xlsx'
server='PCFilesServerName'
port=1234;
请注意,在为 PCFiles 提供路径时,您使用网络地址(因为您的 windows 框必须能够读取和写入它),当您发出复制命令时,您使用本地地址。
根据您的系统配置,您还可以对所有内容使用网络路径。当我尝试它时,我无法让它工作,因为 unix 服务器不喜欢它(它通过 SMB 共享文件夹,但它不知道如何从命令行访问它)。