【问题标题】:Finding the right file path for a Perl file on a windows server?在 Windows 服务器上为 Perl 文件找到正确的文件路径?
【发布时间】:2013-05-11 06:46:04
【问题描述】:

在我的本地机器上使用 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'";

【问题讨论】:

  • 我怀疑在您使用常规 Perl 脚本而不是 .exe 文件之前,您会得到这个问题的答案。我们应该怎么知道你是如何把那个 .exe 放在一起的。你可能做错了一千件事。
  • .exe 文件使用 perl 脚本在本地计算机上运行。我只想将在本地机器上工作的东西转移到服务器上。 perl 脚本调用 .exe 文件。
  • 好的,但是即使你这么说,问题仍然不是很清楚。比如这个问题就清楚多了:stackoverflow.com/questions/2907494/…
  • 使用 exe,您可能没有捆绑所有必需的依赖项。该 exe 可以在您的构建机器上运行,但不能在已部署的机器上运行。 perl -v 在每个主机上输出以开始。

标签: perl sql-server-2008


【解决方案1】:

system 调用中丢失单引号。它们在 Cygwin 和 bash shell 中很好,但在 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);

【讨论】:

    猜你喜欢
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    相关资源
    最近更新 更多