SAS:读取带有变音符号的文件名(DOS)

问题描述 投票:0回答:1

目标:

  • 使用 SAS 从 DOS 目录(及其子目录)读取文件名(包括完整路径)并将其存储在数据库中
  • 允许使用变音符号(ä、ê、ö、ü、ß 等...)
  • 我需要以某种方式提供完整路径(仅文件名不行,这不是问题)。

问题 a) 当文件或文件夹名称包含变音符号时,记录的名称与真实文件名不相等 b) 即使是相同的变音符号(见图“ü”)有时也会显示不同。

资源管理器和 SAS 输出中的文件

这是我最后一次尝试,使用 SAS 创建目录列表并将其直接导入到 SAS 中。 SAS 代码

filename DIRLIST pipe "dir C:\Z_Backup\LwX\SAS\FilingList\UMLAUTE\ /s";

DATA database ;
     length RawOutput $256 ;
     infile dirlist length=reclen;
     input RawOutput $varying256. reclen ;
RUN;

PROC PRINT; RUN; 

如果我直接在控制台中创建列表并导入创建的文本文件,或者如果我在 SAS 中完成所有操作,都没关系。

sas dos diacritics
1个回答
0
投票

感谢您提出宝贵意见。

我以不同的方式解决了这个问题: 我没有使用 SAS 读取目录,而是使用 SAS 编写批处理文件。该批处理包含更改代码页的命令

   C:\>chcp 1252
   Aktive Codepage: 1252.

文本文件将包含正确的变音符号,并且可以毫无问题地由 SAS 导入。

这里是相应的 SAS 代码:

* Create Batch; 
DATA batch; 
    INFORMAT LINE $300.;output;
    Line="chcp 1252 ";output;
    Line="dir &RootStudy. /s >> &DirFilingListDOS.&Akronym._Dateiliste.txt"; output;
    Line="exit"; output; * exit the dos-mode and return to SAS; 
RUN;    

* Export Batch; 
DATA _null_;    SET batch;
    file "&DirFilingListDOS.Create_Dir_&Akronym..bat";
    put Line ;
RUN;

*Start Batch; 
X "&DirFilingListDOS.Create_Dir_&Akronym..bat";
© www.soinside.com 2019 - 2024. All rights reserved.