perl不调用管道参数到可执行文件
我给cmd打电话,比如:perl不调用管道参数到可执行文件,perl,arguments,c-preprocessor,Perl,Arguments,C Preprocessor,我给cmd打电话,比如: perl ScriptGen.pl Target.c %PreProcessorPath%\preproc.exe Arg1 Arg2 > clean.c 我得到的错误意味着Arg1和Arg2没有正确地传递给预处理器 我想通过将目标文件和预处理器路径本身作为perl脚本的参数来调用这个perl脚本,而Arg1 Arg2是perl脚本的参数,preproc可以理解 编辑:有一个 my $cmd = shift @ARGV 在脚本开始分析参数时,脚本会处理这些参
perl ScriptGen.pl Target.c %PreProcessorPath%\preproc.exe Arg1 Arg2 > clean.c
我得到的错误意味着Arg1和Arg2没有正确地传递给预处理器
我想通过将目标文件和预处理器路径本身作为perl脚本的参数来调用这个perl脚本,而Arg1 Arg2是perl脚本的参数,preproc可以理解
编辑:有一个
my $cmd = shift @ARGV
在脚本开始分析参数时,脚本会处理这些参数。这是我的建议:
您可以使用批处理文件
,而不是在应用程序中的单行中使用多个参数
创建一个批处理文件-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
也许你可以努力让你的问题不那么混乱/混乱?看起来您的期望可能与文档中的行为不同,但我们不知道您的期望是什么。@Jackson:请您解释一下
perl
文件参数是target.c
还是preproc.exe
,我们如何获得arg1
和arg2
的perl
文件。如果在批处理文件中运行此操作,请设置预处理路径\prepc.exe的路径,以及具有Arg1
和Arg2
参数的相同exe
。该命令中没有管道OK,perl输入参数是源文件,必须对其进行修改,其余是传递给perl脚本的参数(第一个是到预处理器的路径,接下来的两个是通过perl脚本直接传递给预处理器的参数)Target.c
您的意思是这是源文件