这是一个非常短的脚本,我试图使用PC的命令提示符来运行一系列脚本。脚本的数量各不相同,但是对于这个例子,假设有10个,编号为0-10。这些脚本是SAS程序文件。我正在使用system
命令,但是有一个我无法发现的错误。
use strict; use warnings;
for ( my $i = 0; $i < 10; $i++ ) {
system "sas -SYSIN $i.sas -ICON -NOSPLASH -LOG 'c:\Users\...' -PRINT 'c:\Users\...' ";
}
我收到以下错误:
"Missing braces on \o{} at "perlscript.pl" line 6, near "sas..."
我在system
命令后面的文本周围放置了大括号,但是没有修复它。我也尝试了括号()
,但没有快乐。在读取文件位置时,添加额外的大括号或()
也会给我“无法识别的转义”错误。
答案 0 :(得分:6)
您在双引号字符串中使用反斜杠:system "... \U ..."
。这些是特殊的转义码,或者被忽略。在任何一种情况下,你最终得到一个你不想要的字符串。要避免这种情况,请转义所有反斜杠,或对路径使用正斜杠:C:/foo/bar
。即使在Windows上,大多数工具也能正常使用正斜杠。