Perl系统命令在命令提示符下运行脚本

时间:2014-02-18 17:42:55

标签: perl shell command-line sas

这是一个非常短的脚本,我试图使用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命令后面的文本周围放置了大括号,但是没有修复它。我也尝试了括号(),但没有快乐。在读取文件位置时,添加额外的大括号或()也会给我“无法识别的转义”错误。

1 个答案:

答案 0 :(得分:6)

您在双引号字符串中使用反斜杠:system "... \U ..."。这些是特殊的转义码,或者被忽略。在任何一种情况下,你最终得到一个你不想要的字符串。要避免这种情况,请转义所有反斜杠,或对路径使用正斜杠:C:/foo/bar。即使在Windows上,大多数工具也能正常使用正斜杠。