我想使用SAS解压缩包含.dat文件的文件。我有超过100个文件要解压缩,因此我想用SAS自动完成。我试过使用以下内容:
FILENAME ZIPFILE SASZIPAM 'Z:\folder\file';
DATA newdata;
INFILE ZIPFILE(file.dat) dsd DLM='|';
INPUT var1 var2 var$;
RUN;
这不起作用。使用ZIPFILE SASCIPAM解压缩.dat文件时是否有问题?我有SAS 9.3。
有更好的选择吗?
答案 0 :(得分:0)
我从未将SASZIPAM
视为文件引用类型。
我会这样做:
filename zipfile ZIP 'Z:\folder\file.zip';
DATA newdata;
INFILE ZIPFILE(file.dat) dsd DLM='|';
INPUT var1 var2 var$;
RUN;
我可能在文档中遗漏了那种类型。你能粘贴你在日志中得到的错误吗?
答案 1 :(得分:0)
我猜你可以使用宏来做它,但它可能会有点乱。 SAS多年来一直提供X
命令来联系命令提示符。此方法要求您下载了一个免费的文件存档/解压缩程序(例如7-Zip,WinRAR等)。
我喜欢使用7-Zip的命令行版本。我使用32位计算机,因此您可能必须使用不同的.exe文件。
解压缩目录中多个文件的语法:
data _null_;
X "cd (7-Zip_installed_location)"; <=== File that contains the 7za.exe
X "7za e (zip_files_location)*.zip -o(output_destination)";
run;
例如,我在名为“Compressed”的文件夹中有一些zip文件:
data _null_;
X "cd C:\7-Zip Comm";
X "7za e C:\sasdata\Compressed\*.zip -oC:\sasdata\New";
run;
e
代表“摘录”。
*
对所有人都意味着。
-o
代表“输出”。
答案 2 :(得分:0)
在Windows 7(SAS 9.3)上提取.z文件时,每个路径的双引号将解决任何问题:( FYI - 第二个语句在一行中)
data _null_;
x '"C:\Program Files\7-Zip\7z.exe" x "E:\sas\config\Lev1\SASApp\Data\*.Z" -o"E:\sas\config\Lev1\SASApp\Data"';
run;
此致 Bhavin