【问题标题】:perl call not piping parameters to executableperl调用不是管道参数到可执行文件
【发布时间】:2017-03-06 09:08:26
【问题描述】:

我正在调用类似的 cmd:

perl ScriptGen.pl Target.c %PreProcessorPath%\preproc.exe Arg1 Arg2 > clean.c

我收到错误,这意味着 Arg1 和 Arg2 未正确传递给预处理器。

我想通过将目标文件和预处理器路径本身作为 perl 脚本的参数来调用这个 perl 脚本,而 Arg1 Arg2 是 preproc 理解的 perl 脚本的参数。

编辑:有一个

my $cmd = shift @ARGV 

在脚本开始时解析参数,然后脚本使用它。

【问题讨论】:

  • 也许你可以努力让你的问题不那么混乱/混乱?看起来您的期望可能与记录的行为不同,但我们不知道您的期望是什么。
  • @Jackson:您能否解释一下perl 文件参数是target.cpreproc.exe 以及我们如何获得arg1arg2perl 文件。如果您在批处理文件 SET 中运行此操作,则 PATHPreprocessorPath\prepoc.exe 和相同的 exe 具有 Arg1Arg2 参数。这怎么可能。
  • 该命令中没有管道
  • ok,perl输入参数是源文件,需要修改,其余都是传给perl脚本的参数(第一个是预处理器的路径,后面两个是直接参数通过 perl 脚本传递给预处理器)
  • Target.c 你的意思是这是source file

标签: perl arguments c-preprocessor


【解决方案1】:

这是我的建议:

您可以使用batchfile 而不是在一行中使用applications 的多个参数;

创建一个批处理文件 - scriptgen.bat

 SETPATH=%PATH%;%PreProcessorPath%\preproc.exe  
 call preproc.exe %1 %2  
 rem %1 = Arg1 %2 = Arg1  %3 = Target.c 
 perl -w ScriptGen.pl %3 %1 %2 > clean.c

在 MS-dos 提示符下运行:

 scriptgen.bat Arg1 Arg2 Arg3

【讨论】:

    猜你喜欢
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    • 2023-02-17
    相关资源
    最近更新 更多