【发布时间】:2011-08-02 07:36:23
【问题描述】:
我正在编写一个 Perl 程序,它将接受一些命令行参数(它们实际上由另一个程序提供)并打开一个 pdf 到特定页面。我基于here(参见第 5 页)。我已经直接从命令行测试了该命令,它完全符合我的要求。现在我正在尝试从 Perl 中执行此操作,但它似乎不起作用。我得到的错误是:
The process tried to write to a nonexistent pipe
这是代码...谁能告诉我我做错了什么?
#!C:/perl/bin/perl
use strict;
use warnings;
use diagnostics;
my $c = `cmd \c "`.$ARGV[0].`" /A "page=`.$ARGV[1].`=OpenActions" "`.$ARGV[2].``;
print $c;
system "Pause";
在这之后我得到的只是 cmd 中的一个空格。一旦我按下 Ctrl+C,它就会返回一个提示,如果我在那里按下回车,就会出现上述错误。
【问题讨论】:
-
您在组合命令字符串时是否使用了反引号 (`) 而不是单引号 (')?
-
是的,我正在使用反引号。反引号是 Tab 键上方的那个,对吧?
-
顺便说一句, cmd \c 应该是什么?它不应该读取 cmd /c
-
是的,Ingo,谢谢。这实际上清除了程序。
标签: perl command-line command-line-arguments command-prompt