0

在我的本地机器上使用 Cygwin,以下 Perl 代码可以工作:

system "cmd /c start 'c:\\cygwin\\home\\fl\\CSmtp_prac.exe'";

当我尝试将 Perl 文件移动到 Windows SQL Server 2008 时,我无法让它运行。

它说它在服务器上找不到它,即使它确实在那里,我已经更新了这样做的路径。perl 文件的图标是 perl,所以我知道服务器上有 perl。我想知道我的语法有什么问题。

这是我在服务器上的 perl 文件上的内容: system "cmd /c start 'c:\PDAutomation\CSmtp_prac.exe'";

4

1 回答 1

0

丢失system调用中的单引号。它们在 Cygwin 和bashshell 中很好,但在 Windows shell 中,它会查找其中包含文字'字符的文件名。

请尝试其中一种,它应该在 Cygwin 和 MSWin32 中都可以使用:

system 'cmd /c start c:\cygwin\home\fl\CSmtp_prac.exe';
system q(cmd /c start c:\cygwin\home\fl\CSmtp_prac.exe);
system "cmd /c start c:\\cygwin\\home\\fl\\CSmtp_prac.exe";
system qq(cmd /c start c:\\cygwin\\home\\fl\\CSmtp_prac.exe);
于 2013-05-10T22:45:40.737 回答